Ir al contenido
σestadistica.ar

Script

Descriptivos y tabla 1

La tabla que abre todo informe: una fila por variable, una columna por grupo, con la comparación al lado. Sale escrita en Markdown, lista para pegar.

Descargar

Proyecto en R y Python · ZIP · 45 KB

En R alcanza con lo que ya trae; en Python hace falta SciPy, y solo para los valores p.

Así sale

VariableTotal (n = 150)Control (n = 75)Tratamiento (n = 75)pPrueba
Edad (años)41,0 (11,8)40,2 (11,6)41,9 (12,1)0,393t de Welch
Ingreso del hogar425.282,9 [308.111,5–697.192,3]416.383,8 [298.462,5–646.336,1]454.648,6 [318.813,4–719.045,3]0,355Mann-Whitney
Puntaje de satisfacción6,83 (1,78)6,27 (1,73)7,39 (1,66)< 0,001t de Welch
Sexo, Mujer79 (53,0%)46 (61,3%)33 (44,0%)0,026Chi-cuadrado

Es la tabla del ejemplo que viene adentro, tal cual la escribe el script. Fijate en la segunda fila: el ingreso salió con mediana y rango intercuartílico, y comparado con Mann-Whitney, mientras que las otras dos numéricas fueron con media y prueba t. Esa decisión la tomó el script solo.

Las tres decisiones que toma

Media o mediana. Con |asimetría| > 1 la variable se informa como mediana con su rango intercuartílico. Es la misma regla que usa la calculadora de descriptivos del sitio, y evita lo de siempre: informar media en una tabla y mediana en otra para la misma variable.

Qué prueba. Sale del tipo, de la forma y de cuántos grupos hay.

VariableCómo se informa2 grupos3 o más
Numérica simétricamedia (DE)t de WelchANOVA
Numérica asimétricamediana [Q1–Q3]Mann-WhitneyKruskal-Wallis
Categórican (%)Chi-cuadradoChi-cuadrado

Cuántos decimales. Uno si el valor llega a 10, dos si es menor. Una media de 41,3 con dos decimales finge una precisión que no hay; una de 0,42 con uno se queda corta.

Los dos idiomas, y por qué importa acá

Los valores p salen de SciPy en Python y de R base en R: son dos implementaciones distintas, escritas por equipos distintos, y el verificador exige que los cinco archivos queden idénticos. Eso obligó a fijar a mano todas las opciones que los dos difieren por omisión: Welch sí, corrección de continuidad en Mann-Whitney no, corrección de Yates en el chi-cuadrado no. Con los valores por omisión, las dos versiones darían números distintos y nadie se enteraría.

Hay un caso en que los dos se comportan distinto y no hay opción que lo arregle: cuando los valores no varían, R falla y SciPy devuelve «nan». Ahí el script no informa prueba y lo dice en una nota.

Sobre los valores p en la tabla 1

Están porque se piden. En un estudio con asignación al azar, comparar los grupos al inicio prueba algo que ya se sabe —que la asignación fue al azar—, y lo que importa es el tamaño de la diferencia. En uno observacional, en cambio, esa comparación sí informa sobre la comparabilidad de los grupos. Si la tabla no los necesita, borrar la columna es una línea.

Cómo está verificado

Corriéndolo: el verificador descomprime lo publicado, lo corre con Python y con R, exige que los cinco archivos sean idénticos y compara cada número y cada celda con una implementación aparte de las mismas definiciones. Prueba además seis bases distintas: sin variable de grupo, con tres grupos y una variable asimétrica, con una variable constante, con una columna sin un solo dato, con una categórica de una sola categoría y con grupos de dos casos. Son 379 comprobaciones, y los doce sabotajes se detectan.