lybxkl/empirical-research-pipeline

Transforma cualquier material de investigación (PDF, Word, Excel, CSV, texto, web, entrevistas, imágenes, exportaciones de bases de datos, etc.) en conjuntos de datos auditables, modelos estadísticos, gráficos de nivel de publicación y manuscritos finales listos para enviar.

¿Qué es empirical-research-pipeline?

Esta habilidad (skill) para agentes de IA (como Claude Code, Cursor, Codex) proporciona un pipeline completo y riguroso para llevar a cabo investigaciones empíricas desde materiales en bruto hasta manuscritos publicables. Está diseñada para manejar una amplia variedad de formatos de datos (PDF, Word, Excel, CSV, texto, web, imágenes, etc.) y cubre cada etapa del proceso: desde la auditoría de archivos y la deduplicación por contenido, hasta la codificación de variables con evidencia textual, la creación de conjuntos de datos (CSV/SAV), la ejecución de análisis estadísticos (descriptivos, regresiones logísticas/OLS), la generación de gráficos de nivel de publicación (a 600 dpi) y el ensamblaje final de documentos Word/PDF con una verificación de consistencia numérica. Su fuerza radica en su estricto sistema de 'compuertas' (gates) que garantizan la integridad y trazabilidad de los datos en cada paso, desde la definición del alcance (scope.md) hasta la verificación final de calidad (QA). Es ideal para investigadores, analistas de datos o científicos sociales que necesitan transformar materiales diversos en análisis reproducibles y artículos listos para publicación, ahorrando tiempo y asegurando la coherencia entre tablas, figuras y texto.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/lybxkl/SPSS-Style-Charting-Skill/tree/HEAD/empirical-research-pipeline

Installed? Explore more Investigación y análisis de datos skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Pipeline de Investigación Empírica

Convierte un "montón de materiales desordenados" en un "flujo de muestra verificable + datos codificados/trazables + modelos reproducibles + gráficos y manuscritos listos para enviar". Este skill no está limitado por disciplina, idioma o formato de archivo; los documentos judiciales son solo un ejemplo de "codificación de texto". Los cuestionarios, entrevistas, noticias, documentos de políticas, registros experimentales, datos abiertos, páginas web y exportaciones de bases de datos también son aplicables.

Los números, nombres de archivo, rutas y valores de variables de ejemplo en este repositorio/paquete son marcadores de posición ficticios y no contienen ningún material real, datos codificados, datos SPSS o manuscritos finales.

Cuándo usar

  • El usuario proporciona una carpeta con una mezcla de PDF, Word, Excel, CSV, texto, páginas web, entrevistas, imágenes o escaneos, y solicita organizar, codificar, analizar estadísticamente, crear gráficos o redactar un artículo.
  • Ya existen datos CSV/SPSS y se necesita limpiar, fusionar, agregar nuevos materiales, corregir el criterio de la muestra o re-ejecutar modelos.
  • Se necesitan estadísticas descriptivas, comparaciones entre grupos, regresiones, heterogeneidad, robustez o evaluaciones predictivas para cuestionarios, entrevistas, experimentos, observaciones, datos públicos, etc.
  • Se necesita convertir la parte empírica en un documento Word/PDF donde las cifras, tablas y el texto del cuerpo sean consistentes.
  • El usuario dice "necesito hacer lo mismo con materiales similares otra vez" y desea reutilizar el mismo flujo de trabajo.

Tipos de materiales y límites de procesamiento

MaterialProcesamiento nativoNotas
PDFCapa de texto, número de páginas, número de caracteres, número de imágenes, estado de cifradoLos escaneos requieren OCR primero; los PDF basados en imágenes se marcarán como image_only
DOCX / ODT / PPTXPárrafos, tablas, texto de diapositivasLos formatos antiguos .doc/.ppt deben convertirse primero
XLSX / XLSMHojas de cálculo, texto de celdas; solo lecturaLos archivos .xls deben convertirse primero; se recomienda instalar openpyxl
CSV / TSV / JSON / JSONLCampos, número de filas, codificación, valores faltantes; auditoría de calidad de datos tabularesLas hojas de codificación saltarán las tablas e irán directamente a auto_stats
TXT / MD / HTML / XML / YAML / RTFExtracción de texto plano; eliminación de etiquetas HTMLEl contenido de páginas web es utilizable; los scripts/estilos se eliminarán
Imágenes (PNG/JPG/TIFF, etc.)Listado de archivos; dimensiones/número de páginasRequieren OCR primero, luego codificación; este skill no incluye OCR
Audio/VideoListado de archivosRequieren transcripción/extracción de fotogramas primero, luego codificación; este skill no incluye ASR
Archivos comprimidosListado de archivosDescomprimir primero; la auditoría marcará como unsupported
Formatos desconocidos/propietariosListado de archivosConvertir o exportar a uno de los formatos anteriores primero

"Cualquier material" no significa que "cualquier binario se pueda analizar directamente". Este skill incluirá primero todos los archivos en la auditoría y conciliación de la muestra; los formatos que no se puedan leer directamente se marcarán claramente y se proporcionará una ruta de conversión, sin omitirlos silenciosamente.

Seis reglas estrictas

  1. Auditar primero, luego codificar/modelar. No comience las estadísticas hasta que sepa el número de archivos, el número de archivos legibles, los duplicados, los campos faltantes y las razones de exclusión.
  2. Deduplicar por contenido, no por nombre de archivo. Es común tener el mismo nombre con contenido diferente o el mismo contenido con nombres diferentes; use al menos MD5 y luego verifique con títulos/campos clave/muestras de texto.
  3. Una fila = una unidad de análisis. Los documentos, entrevistados, casos, instituciones, regiones-año o respuestas de cuestionarios deben estar fijados al inicio del proyecto; si hay unidades mixtas, explíquelo en las limitaciones.
  4. Cada valor codificado/extraído debe tener evidencia. Si el texto original no lo menciona, registre NA/No registrado, no asuma 0 por defecto; las declaraciones negativas, sugerencias de otros o paráfrasis no pueden considerarse hechos finales.
  5. La N de la muestra descriptiva ≠ la N de la muestra del modelo. Cada modelo debe reportar su propia N y condiciones de filtrado; el cuerpo del texto, las tablas, las figuras y el resumen deben usar el mismo conjunto de criterios.
  6. Asociación ≠ causalidad. Use "asociación/correspondencia/más probable" y no "causa/lleva a/prueba que es efectivo".

Resumen del flujo de trabajo

0 Alcance y pregunta → 1 Auditoría de materiales/datos → 2 Acuerdo de codificación/extracción → 3 Conjunto de datos
                                      ↓
                         7 Verificación final ← 6 Ensamblaje del manuscrito ← 5 Gráficos nivel publicación ← 4 Análisis estadístico

Cada etapa tiene una "compuerta" (gate). Si no se pasa la compuerta, no se avanza a la siguiente etapa.


Etapa 0: Alcance y pregunta

Primero, escriba una página scope.md que contenga al menos:

  • Pregunta de investigación, mecanismo teórico y contribución esperada.
  • Tipo y fuente de los materiales: base de datos, estrategia de búsqueda/marco de muestreo, rango de tiempo, idioma, región.
  • Unidad de análisis: un documento/un entrevistado/un caso/una institución/un cuestionario.
  • Criterios de inclusión/exclusión: tiempo, tipo, idioma, número de palabras, duplicados, ilegibles, campos clave faltantes.
  • Lista de variables esperadas y su rol: variable dependiente, variable independiente principal, variables de mecanismo/mediación/moderación, variables de control.
  • Forma de los datos: texto, tablas, mixto; si se necesita codificación manual, escalas de cuestionario, grupos experimentales o datos secundarios.

Compuerta: Poder decir en una oración cuántos materiales se pierden en cada paso de "material original → material legible → muestra dentro del alcance → muestra de análisis" y por qué.


Etapa 1: Auditoría de materiales y datos (debe ejecutarse primero)

1A Auditoría a nivel de archivo

Ejecute scripts/audit_corpus.py:

python scripts/audit_corpus.py --root "directorio_de_materiales" --out-dir "output/audit" --min-chars 100

Escanea todos los tipos compatibles de forma predeterminada, no es necesario especificar --ext uno por uno; use --list-ext para ver la lista completa. Produce:

ArchivoPropósito
corpus_audit.csvExtensión, tipo, bytes, páginas/tablas, caracteres, imágenes, MD5, estado, error de cada archivo
corpus_summary.jsonResumen legible por máquina
corpus_duplicates.csvGrupo de duplicados, sugerencias de conservación/eliminación
corpus_report.mdInforme en chino listo para pegar en el registro del proyecto

Máquina de estados (cada archivo debe caer en una categoría):

EstadoSignificado¿Entra en análisis?
validSe puede abrir, tiene suficiente texto/datosSí
metadataArchivos de sistema como ._*, .DS_StoreNo
hiddenArchivos/directorios ocultosNo, a menos que el usuario confirme
unsupportedFormato desconocido, comprimido, Office antiguo, falta de analizadorNo, convertir/descomprimir primero
quarantinedUbicado en directorio _duplicates u otros directorios omitidosNo, ya es una copia aislada
zero_byte0 bytesNo
corruptNo se puede abrir, archivo dañadoNo
encryptedProtegido con contraseña/permisosNo, a menos que se pueda descifrar
textlessTiene páginas/celdas pero texto insuficienteNo, verificar si está vacío o necesita reexportación
image_onlyImagen/escaneo, sin capa de textoDisponible después de OCR
mediaAudio/videoTranscripción/extracción de fotogramas primero

La duplicación no es un status independiente: los archivos con contenido idéntico siguen siendo valid, pero se marcan con dup_group/dup_role como keeper/duplicado; unique_valid_files en el informe ya deduce las copias.

Debe manejar cada elemento:

  • ._*, .DS_Store: metadatos de macOS, no son materiales de investigación; se cuentan como "archivos no materiales", no como muestra. Los ._* legibles se marcarán en la columna de error, requieren confirmación manual.
  • Archivos/directorios ocultos se registran como hidden; las extensiones no listadas como unsupported; los directorios _duplicates como quarantined. Ninguno de los tres entra en la muestra, pero deben aparecer en el total y el informe.
  • 0 bytes, no se puede abrir, cifrado, texto insuficiente: se registran como zero_byte / corrupt / encrypted / textless; PDF de imagen como image_only.
  • Las estadísticas de nivel superior/año solo cuentan muestras únicas (valid y no copia); no incluya metadatos, archivos dañados o copias duplicadas en la estructura de la muestra.
  • Copias duplicadas: agrupar por MD5; conservar la que tenga "identificador/año en el nombre de archivo, ruta más corta, texto completo", mover las demás a _duplicates/, no eliminar directamente.
  • Nombres de archivo truncados, puntos al final, rutas demasiado largas: comunes en Windows; leer con Python y registrar en el informe, no contar manualmente con el explorador.
  • Mismo nombre y diferente contenido, texto idéntico pero metadatos/configuración de exportación diferentes (MD5 diferente): se debe verificar manualmente mediante títulos/campos clave/muestras de texto, no solo confiar en MD5 para deduplicación automática.

Luego ejecute scripts/dedupe_corpus.py para generar el plan de deduplicación:

python scripts/dedupe_corpus.py --audit "output/audit/corpus_audit.csv" --root "directorio_de_materiales" --out-dir "output/audit" --apply

Compuerta: sample_flow.md debe poder conciliar:

Número de archivos originales (incluye .DS_Store/archivos sin extensión)
- Archivos de metadatos/ocultos
- No compatibles/requieren conversión (unsupported)
- Directorios aislados como _duplicates (quarantined)
- 0 bytes/dañados/cifrados/texto insuficiente
= Número de materiales legibles
- Fuera de alcance (tiempo/tipo/idioma)
= Número de materiales válidos
- Copias duplicadas
= Número de muestras únicas (según unique_valid_files)
- Variables clave faltantes/no se pueden codificar
= Número de muestras de análisis

Cada modelo tendrá su propia N, no use una sola N para todo.

1B Auditoría de calidad de datos tabulares

Si los materiales son datos CSV/Excel/SPSS, primero realice una verificación a nivel de campo, luego codifique/modelice:

  • Número de filas, columnas, tipo de cada columna (numérico/categórico/texto/fecha), tasa de valores faltantes, número de valores únicos.
  • Si la clave primaria/ID es única; filas duplicadas; múltiples registros para la misma unidad.
  • Inconsistencias ortográficas en los valores de variables categóricas (mezcla "Sí/No/1/0/TRUE"); rango de fechas.
  • Rango de variables continuas, valores atípicos, truncamiento en P99, necesidad de transformación log.
  • Preguntas inversas de escalas de cuestionarios, división de opciones múltiples, consistencia de unidades.
  • Codificación (UTF-8-SIG/GB18030), separador decimal, validez de nombres de variables SPSS.

csv_to_spss_syntax.py limpiará nombres de variables ilegales/duplicados y generará un .sps; auto_stats.py proporcionará estadísticas descriptivas, pruebas entre grupos y correlaciones para detectar problemas de datos, pero no reemplaza los modelos formales.

Compuerta: Poder explicar el origen, tipo, manejo de valores faltantes, manejo de valores atípicos y el modelo final al que pertenece cada columna.


Etapa 2: Acuerdo de codificación/extracción

2.1 Codificación de texto

  1. Primero, escriba una instancia de assets/codebook-template.md: cada variable debe tener definición, valores, regla de juicio, ubicación de la evidencia, ejemplo positivo, ejemplo negativo, regla de valor faltante.
  2. Use scripts/make_coding_sheet.py para extraer el texto completo y oraciones de evidencia candidatas, generando una hoja de codificación; solo proporciona fragmentos de evidencia, no hace el juicio final por usted.
    • --profile generic predeterminado: adecuado para entrevistas, noticias, políticas, informes, páginas web, actas de reuniones, etc.
    • --profile legal: extrae candidatos para tribunal, número de caso, provincia, causa; use solo al procesar documentos judiciales chinos.
    • Los archivos tabulares como CSV/TSV/JSON/XLSX se omitirán y se indicará que sigan el flujo de estadísticas; las imágenes/audio/video indicarán que se haga OCR/transcripción primero.
  3. Durante la codificación manual/LLM, cada registro debe guardar al menos una oración de evidencia *_ev; las codificaciones sin oración de evidencia se consideran incompletas.
  4. Seleccione un 10%–15% de los materiales para codificación por dos personas/dos rondas, reporte la tasa de concordancia o Cohen's κ; resuelva las discrepancias primero, luego modifique el codebook.
  5. Congele el codebook antes de la codificación completa; los cambios posteriores deben registrar la versión y el alcance del impacto.

2.2 Cuestionarios/escalas/extracción estructurada

  • Primero, cree un diccionario de variables a nivel de ítem: número de ítem, enunciado, valores, preguntas inversas, códigos de valor faltante.
  • Divida las preguntas de opción múltiple/clasificación en columnas 0/1 o múltiples columnas; las puntuaciones totales de escalas deben verificar primero la fiabilidad (α/ω) y las dimensiones.
  • Las preguntas abiertas se pueden codificar temáticamente primero, luego convertir a variables de conteo/categóricas; no trate la frecuencia de palabras directamente como un tema.
  • La clave primaria, la unidad y el campo de tiempo de los datos tabulares deben poder rastrearse hasta el archivo original.

Compuerta: Seleccione aleatoriamente 10 registros; debe poder rastrear completamente desde valor codificado → oración de evidencia/campo original → texto original/fila original; de lo contrario, vuelva a la tabla de codificación para corregir las reglas.

Consulte references/02-coding-protocol.md para más detalles.


Etapa 3: Conjuntos de datos

Se recomienda un conjunto de tres archivos:

  • data/coded.jsonl: Detalles de codificación por material + fragmentos de evidencia, fácil de rastrear.
  • data/analysis.csv: Tabla ancha para análisis, una fila por unidad de análisis.
  • data/analysis.sav: Abierto directamente en SPSS, con etiquetas de variable/valor.

Debe incluir las siguientes columnas de marcado:

ColumnaSignificado
in_scopeSi está dentro del alcance de la investigación (tiempo, tipo, región, idioma)
in_analysisSi entra en las estadísticas descriptivas (excluye los que no se pueden codificar / tienen valores clave faltantes)
model1_sample, etc.Marcador de muestra para cada modelo; no use in_analysis en su lugar
dup_groupID del grupo de duplicados; 0 para la copia conservada, 1 para la copia
exclusion_reasonRazón de exclusión, para facilitar la escritura del flujo de la muestra

Use scripts/csv_to_spss_syntax.py para generar .sps, evitando errores de tipo de columna al escribir GET DATA manualmente. Si el CSV contiene valores de texto binarios como "Sí/No", "Presente/Ausente", "Apoya/No apoya", el script agregará automáticamente RECODE ... ('Sí'=1) ('No'=0) INTO *_num; use la columna numérica directamente para Logística; agregue --no-recode si no es necesario.

Compuerta: El número de filas de CSV, el número de filas de JSONL, el número de filas de SAV y el número de muestras únicas en sample_flow.md deben coincidir; el N de cada modelo debe poder recalcularse a partir de las condiciones de filtrado.


Etapa 4: Análisis estadístico y extensiones

Primero, escriba el plan de análisis, luego mire los resultados. De forma predeterminada, haga una combinación de "análisis principal + descriptivo + bivariado + multivariado + diagnóstico + heterogeneidad + robustez", no solo ejecute un modelo principal.

Primero, ejecute el script de detección automática para generar estadísticas descriptivas, pruebas entre grupos, correlaciones y modelos univariados:

python scripts/auto_stats.py --data data/analysis.csv --config assets/chart_config.example.json --out output/analysis_pack

Esto produce descriptives.csv, group_tests.csv, binary_rates.csv, correlations.csv, univariate_models.csv, univariate_skipped.csv y analysis_pack.md, que se utilizan para descubrir variables que merecen un modelado adicional; el modelo final aún se estima según las especificaciones predefinidas en SPSS/R/Stata, no use los valores p de la detección automática para seleccionar variables.

El script identifica automáticamente el tipo de variable de resultado:

  • 0/1 → Resultado binario (Logístico/OR).
  • Numérico continuo → Resultado continuo (OLS/media+IC), para multicategórico use Kruskal–Wallis para pruebas entre grupos.
  • Multicategórico → Resultado categórico, use Chi-cuadrado/V de Cramér para pruebas entre grupos; las variables independientes multicategóricas entrarán en OLS/Logit univariado como variables dummy y se reportarán como variable_nivel.
  • Los resultados multicategóricos en sí mismos no se convierten en Logit binario; el modelo principal debe usar Logit multinomial o combinar categorías primero.
  • Las etiquetas de texto comunes como "Sí/No", "Presente/Ausente", "Apoya/No apoya" se asignan automáticamente a 0/1; otros textos binarios deben especificar la clase positiva usando el elemento de configuración outcome_map.
  • Los modelos univariados con separación completa o estimación inestable se escribirán en univariate_skipped.csv, sin dar OR enormes falsos.
  • Si la columna de resultado está completamente faltante, no hay filas después del filtrado, o filter_query está mal escrito, el script falla directamente con un error.

Como mínimo, incluya:

  • Estadísticas descriptivas: N, proporción/media, tasa de resultado, intervalo de Wilson del 95% para cada grupo.
  • Modelo principal: Logística binaria / OLS / Logit multinomial, especificando la variable dependiente, la categoría de referencia, las variables independientes principales y las variables de control.
  • Modelos de mecanismo/moderación: términos de interacción, pendientes simples o valores predichos por grupo.
  • Robustez: reemplazar la variable dependiente, reemplazar la muestra, agregar/eliminar variables de control, antes/después de la deduplicación.
  • Diagnóstico: multicolinealidad, separación completa, celdas con tamaño de muestra insuficiente, calibración/discriminación.
  • Heterogeneidad: por categoría/región/año/grupo.
  • Análisis exploratorios posibles: PCA, análisis de correspondencia, clustering, ROC/calibración predictiva; marcar como "exploratorio".

La tabla de resultados debe incluir al menos: coeficiente/OR, IC del 95%, p, N, indicadores de ajuste, descripción de la categoría de referencia. Cada modelo debe tener su propia fila N.

Escriba los análisis realizados y omitidos en analysis_manifest.md (plantilla en references/08-analysis-expansion.md), no solo reporte resultados significativos.

Consulte references/03-analysis-spss.md para plantillas de sintaxis SPSS y normas de interpretación; consulte references/08-analysis-expansion.md para la lista de análisis extendidos.

Compuerta: Cualquier OR/β debe poder rastrearse en tres pasos desde analysis.sps → archivo de salida → tabla; analysis_manifest.md debe explicar por qué se hizo o no cada análisis y cuántas muestras tuvo; el texto del cuerpo no debe contener conclusiones causales como "el texto mencionaba cierta situación" que se convierten en "en realidad se produjo cierto efecto".


Etapa 5: Gráficos de nivel de publicación (por defecto, hacer una vista panorámica, no solo dibujar 8 gráficos)

Primero, ejecute scripts/auto_chart_pack.py para generar un paquete de gráficos panorámicos, luego seleccione las figuras principales del cuerpo, las figuras del apéndice y los gráficos de modelo que necesitan complementarse:

python scripts/auto_chart_pack.py \
  --data data/analysis.csv \
  --config assets/chart_config.example.json \
  --out output/chart_pack --tiff

No es necesario modificar el script para resultados continuos/multicategóricos: la variable de resultado cambiará automáticamente a gráficos de "distribución de resultados + media/composición por grupo"; los resultados de texto también pueden usar outcome_map para especificar la codificación. --coef admite columnas metric (OR/HR/RR/beta) y n, el gráfico de forest escribirá N según el tamaño de la muestra del modelo; --pred admite etiquetas 0/1 o "Sí/No", las predicciones constantes/categoría única omitirán ROC/PR/calibración y explicarán el motivo. term_labels puede asignar nombres de términos de modelo como lv3 a chino. Los gráficos de pesas de dos proporciones requieren dos columnas 0/1 especificadas con dumbbell en config. Cuando haya columnas de tiempo de seguimiento y evento, use --survival-time, --survival-event (se puede agregar --survival-group) para generar curvas de Kaplan–Meier.

Por defecto, cubre 7 grupos, aproximadamente 40–55 gráficos: alrededor de 44 para binarios, alrededor de 51 con entrada de modelo; alrededor de 42 para continuos, alrededor de 41 para multicategóricos. El número variará según los tipos de columna, valores faltantes y elementos omitidos; el número real está determinado por chart_manifest.csv.

  • A Calidad de datos: tasa de valores faltantes, distribución de muestras por categoría/año/región, tasa de incidencia de variables binarias.
  • B Univariado: distribución de resultados (binario/continuo/multicategórico procesado por separado, Q-Q para resultados continuos), composición de tratamientos (barras + anillo), distribución numérica, composición de categorías.
  • C Bivariado: categoría × resultado, etapa × resultado, mapa de calor/apilado de categoría × etapa, diferencias regionales/de nivel de revisión, mapa de calor de correlaciones, ajuste de dispersión, gráfico de burbujas; para resultados continuos use media+IC95%, para resultados multicategóricos use gráficos de composición apilada dentro del grupo.
  • D Multivariado: violín/diagrama de caja, matriz de dispersión, gráfico de pesas, scree plot/biplot/mapa de calor de cargas de PCA, dendrograma de clustering jerárquico (Ward), MDS clásico.
  • E Temporal: tendencia de la tasa de resultados/media, gráfico de control 3σ, tamaño de la muestra, apilado/área de composición por etapa; para resultados multicategóricos, agregue tendencia de composición de categorías de resultados.
  • F Diagnóstico del modelo: gráfico de forest, ROC, calibración, distribución de predicciones, matriz de confusión, curva PR, Lift por decil (requiere --coef / --pred); Kaplan–Meier (requiere columna de seguimiento).
  • G Apéndice: análisis de correspondencia, Pareto.

Estrategia de creación de gráficos:

  • Al menos 2 gráficos por hallazgo principal: gráfico de resultado principal + gráfico de robustez/diagnóstico/heterogeneidad.
  • 7–10 gráficos en el cuerpo, 20–50 en el apéndice; no hay límite superior en el número de gráficos.
  • Cada gráfico debe responder primero a "¿qué pregunta responde?"; si no hay pregunta, no se dibuja.
  • Use references/07-chart-atlas.md para seleccionar el tipo, cubriendo los gráficos avanzados comunes de SPSS: barras agrupadas/apiladas/100% apiladas, líneas/áreas, histograma, diagrama de caja/violín, barras de error, dispersión/burbujas, matriz de dispersión, Pareto, ROC, calibración, Kaplan-Meier (cuando haya datos de supervivencia), scree plot, cargas de factores, dendrograma de clustering, análisis de correspondencia, MDS, gráfico de control, etc.
  • Cada gráfico se escribe en chart_manifest.csv: número de figura, pregunta, tipo, variables, N, nota de figura, ruta de archivo.
  • La semántica de color debe ser uniforme en todo el manuscrito: la misma etapa/misma categoría usa el mismo color en cada gráfico.
  • Las notas de figura deben incluir N, fuente de datos, configuración del modelo, categoría de referencia; los gráficos exploratorios (PCA/CA/clustering) deben indicar "exploratorio" en la nota de la figura.

Use scripts/pubfig.py para unificar el estilo:

from pubfig import set_style, save_fig, wilson_ci, forest_plot
set_style()  # 15 cm de ancho de caja, fuente Song/Times New Roman, 600 dpi

Puntos clave de las normas:

  • Ancho físico de 15 cm (ancho del cuerpo A4 dentro de 15.4 cm), tamaño de fuente 7.2–8.5 pt.
  • Fuente Song para chino, Times New Roman para occidental; incrustación de fuentes en PDF (Type 42).
  • Sin título dentro de la figura; el título y la nota de la figura se colocan en Word.
  • Salida simultánea de PNG 600 dpi, PDF vectorial, TIFF LZW (con --tiff).
  • Las barras de error indican IC del 95%; el punto sólido en el gráfico de forest = significativo, punto hueco = no significativo.
  • Las variables continuas sesgadas se transforman con log10 o se truncaron con P99, y se indica en la etiqueta del eje/nota de la figura.

Compuerta: Cada gráfico en chart_manifest.csv tiene pregunta, N, nota de figura, archivo; las figuras principales del cuerpo y las del apéndice no se repiten; el ancho incrustado de las figuras en PDF ≥ 3000 px (aproximadamente 600 dpi para un ancho de 15 cm); la nota de la figura, la figura y la referencia en el cuerpo deben estar completas.

Consulte references/04-figures-publication.md y references/07-chart-atlas.md para más detalles.


Etapa 6: Ensamblaje del manuscrito

Requisitos de formato de Word:

  • Las figuras, los títulos de figuras y las notas de figuras deben configurarse como "Mantener con el siguiente párrafo" para evitar que el título de la figura quede en una página separada.
  • Las filas de las tablas no deben dividirse entre páginas; los encabezados de las tablas deben repetirse en las páginas siguientes.
  • La nota de la tabla/figura va debajo de la tabla/figura; primero se da la N, luego las reglas de significancia.
  • Cuando se cita por primera vez una figura/tabla en el texto, el número debe coincidir con el archivo (Figura 1, Tabla 1, Figura complementaria 1).
  • La N y los porcentajes en el resumen, el cuerpo, las tablas, las figuras y el apéndice deben ser todos de la misma fuente; la N de chart_manifest.csv se escribirá en la nota de la figura.

Al exportar Word a PDF, Word comprime las figuras de 600 dpi a aproximadamente 200 dpi. Use scripts/export_pdf_hires.py para exportar y luego rellenar las figuras originales:

python scripts/export_pdf_hires.py --docx "manuscript.docx" --out-pdf "manuscript.pdf" --figure-map "figure_map.json"

Compuerta: El número de páginas del PDF, el número de figuras y el número de títulos de figuras coinciden; el ancho incrustado de cada figura ≥ 3000 px; las tablas no tienen filas/encabezados rotos.

Consulte references/05-manuscript-assembly.md para más detalles.


Etapa 7: Verificación final

Ejecute:

python scripts/qa_outputs.py --docx "manuscript.docx" --pdf "manuscript.pdf" --figures "figures" --data "data/analysis.csv" --audit "output/audit/corpus_audit.csv" --manifest "output/chart_pack/chart_manifest.csv" --strict

Luego repase manualmente con references/06-qa-checklist.md. El enfoque no es el formato, sino:

  • Cada número en el flujo de la muestra debe coincidir.
  • Las copias duplicadas deben eliminarse de la muestra de análisis, o reportar explícitamente el impacto de no eliminarlas.
  • Cada N en el texto debe coincidir con la tabla/figura/modelo correspondiente.
  • Las figuras y el texto deben decir lo mismo, no "la figura sube, el texto dice que baja".
  • Los números de las notas de las figuras en el PDF deben poder reconocer formatos como "Figura 1:", "Fig. 1.", "Table 1:", etc.; la verificación de baja resolución solo mira las imágenes lo suficientemente grandes; los CSV vacíos fallarán directamente con un error.
  • Las variables de codificación teórica deben explicar su origen en la sección de métodos, no escribirse como si se hubieran medido directamente de los materiales originales.
  • Las conclusiones deben usar "asociación/correspondencia", no lenguaje causal.

Lista de scripts

Los siguientes comandos asumen que el directorio actual es el directorio raíz del skill; si se ejecuta desde el directorio del proyecto, reemplace scripts/ con la ruta absoluta del skill.

ScriptPropósito
scripts/audit_corpus.pyEscanea cualquier directorio de materiales: estado del archivo, texto/páginas, MD5, duplicados, distribución de formatos, sugerencias de año
scripts/dedupe_corpus.pyGenera un plan de deduplicación basado en los resultados de la auditoría; --apply mueve a _duplicates/
scripts/make_coding_sheet.pyExtrae el texto completo y oraciones de evidencia de palabras clave de PDF/Word/PPT/HTML/texto; solo extrae campos de tribunal/número de caso con --profile legal
scripts/text_extract.pyExtracción de texto genérico y verificación de archivos (PDF/DOCX/ODT/PPTX/XLSX/HTML/texto/imágenes/audio/video)
scripts/analysis_utils.pyFunciones compartidas internas: filtrado de muestra, identificación de tipo de resultado, codificación de etiquetas binarias; importado por los scripts de estadísticas/gráficos automáticos
scripts/csv_to_spss_syntax.pyGenera sintaxis SPSS GET DATA a partir de los encabezados de CSV; limpia nombres de variables ilegales/duplicados y escribe etiquetas de variable
scripts/auto_stats.pyEstadísticas descriptivas automáticas, pruebas entre grupos, correlaciones, modelos univariados (variables independientes multicategóricas como dummies), verificación de separación completa
scripts/auto_chart_pack.pyGenera automáticamente entre 40 y 55 gráficos de calidad de datos/distribución/bivariados/clustering/temporal/diagnóstico de modelo/supervivencia y manifest según el rol de la columna
scripts/pubfig.pyEstilo unificado para gráficos de publicación, Wilson CI, forest plot, mapa de calor, violín, ROC/PR, PCA, MDS, clustering, KM, gráfico de control, etc. (más de 30 tipos de gráficos)
scripts/export_pdf_hires.pyWord→PDF y rellena las figuras originales de 600 dpi
scripts/qa_outputs.pyVerifica la resolución de las figuras en PDF, el número de tablas/figuras en docx, datos vacíos, claves duplicadas, N/notas de figura/rutas en manifest

Documentos de referencia

ArchivoCuándo leerlo
references/01-corpus-audit.mdAl comenzar la auditoría, encontrar duplicados/dañados/escaneos/múltiples formatos
references/02-coding-protocol.mdAl diseñar variables, escribir codebook, hacer pruebas de fiabilidad
references/03-analysis-spss.mdAl configurar modelos, escribir sintaxis SPSS, interpretar OR
references/04-figures-publication.mdAl dibujar gráficos, elegir colores, exportar archivos para envío
references/05-manuscript-assembly.mdAl dar formato en Word, exportar PDF, manejar notas de figura
references/06-qa-checklist.mdAl revisar elemento por elemento antes del envío/entrega
references/07-chart-atlas.mdAl seleccionar tipos de gráficos, correspondientes a gráficos avanzados de SPSS, determinar la cantidad de gráficos
references/08-analysis-expansion.mdAl decidir qué análisis adicionales ejecutar además del modelo principal y cómo registrar lo que se hace/no se hace

Plantillas

  • assets/scope-template.md: Alcance de la investigación, criterios de inclusión/exclusión, esqueleto del flujo de la muestra.
  • assets/codebook-template.md: Esqueleto del manual de codificación de variables.
  • assets/figure-spec-template.md: Notas de figura y tabla de especificaciones de creación de gráficos.
  • assets/figure_map.example.json: Ejemplo de mapeo de figuras para rellenar en PDF desde Word.
  • assets/delivery-checklist.md: Lista de verificación de entrega.
  • assets/coding-keywords.json: Diccionario de palabras clave reemplazable (ejemplo de marcador de posición genérico).
  • assets/chart_config.example.json: Rol de columna, etiquetas, filtro de muestra de análisis (filter_query) de ejemplo.
  • assets/analysis-manifest-template.md: Lista de análisis principal/extensiones/elementos omitidos.

Los puntos de fallo más comunes

  1. Tomar el número de archivos en la carpeta directamente como el tamaño de la muestra. Primero debe restar los metadatos, archivos dañados, duplicados, formatos no compatibles y fuera de alcance.
  2. Deduplicar solo por nombre de archivo. Un mismo contenido a menudo tiene múltiples versiones como "con identificador/sin identificador", "- copia", "(2)".
  3. Usar la N de las estadísticas descriptivas y la N del modelo indistintamente. Los modelos tienen valores faltantes y condiciones de filtrado, por lo que la N siempre es menor.
  4. Considerar que "el material menciona cierta situación" significa que "realmente ocurrió cierto resultado". Esto es una asociación textual, no un efecto causal.
  5. El PDF exportado desde Word se ve bien, pero las figuras en realidad solo tienen 200 dpi. Debe rellenar y verificar el ancho de la imagen incrustada.
  6. Solo dibujar una figura del resultado principal. Las figuras de distribución, heterogeneidad, robustez y diagnóstico no se dibujan, y el usuario tiene que preguntar repetidamente.
  7. Tratar el contenido de las referencias/apéndices como material principal. El tipo de documento, el tipo de informe, la navegación web, etc., deben juzgarse por el título/estructura del texto, no solo por palabras clave en todo el texto.
  8. Tratar los resultados de texto "Sí/No" como una variable continua. Use outcome_map para especificar la clase positiva, o codifique como 0/1 en el CSV; el script no adivinará la dirección positiva/negativa.
  9. La auditoría solo cuenta un formato específico y omite silenciosamente otros archivos. Todos los archivos deben tener un estado; total_files debe poder conciliarse con el explorador de archivos.
  10. Meter datos tabulares en la codificación de texto. CSV/Excel van directamente al flujo de auto_stats/SPSS; la codificación de texto es adecuada para documentos, entrevistas, páginas web y otros materiales no estructurados.

Skills relacionados