7 votos

¿Es el test de chi cuadrado apropiado con muchos recuentos pequeños en una tabla de 5x2?

Tengo dos poblaciones de muestra, A y B, que son independientes.

             A    B
Ethnicity_1  1    2
Ethnicity_2  3    0
Ethnicity_4  1    0
Ethnicity_5  3    8
Ethnicity_6  15   12

Para determinar si existe una diferencia estadísticamente significativa entre la composición de las muestras (con una hipótesis nula suponiendo que las dos muestras son iguales), es la prueba correcta para realizar una tabla de contingencia chi-cuadrado:

scipy.stats.chi2_contingency

O, dado que los tamaños son pequeños, es la prueba exacta de Fisher más apropiada - como parece ser la prueba exacta de Fisher en scipy no puede soportar mesas más grandes que 2x2.

1 votos

Esos recuentos son muy pequeños. 1 enfoque es simular la distribución de su estadística de prueba. Yo tengo R (que espero sea autoexplicativo y fácil de adaptar a Python) en mi respuesta aquí: ¿Cómo simular la eficacia del tratamiento en R?

0 votos

Supongo que la segunda parte de la pregunta es que ChiSquared/Fishers en una tabla de contingencia es la forma correcta de comparar los dos para decir si hay una diferencia en la composición de las dos poblaciones?

0 votos

Me parece bien utilizar la prueba de Fisher aquí, pero es algo controvertida (véase Dada la potencia de los ordenadores hoy en día, ¿hay alguna razón para hacer una prueba de chi-cuadrado en lugar de la prueba exacta de Fisher? ). La cuestión es si quieres condicionar en ambos marginales, sólo en uno, o en ninguno (ver mi respuesta enlazada arriba).

10voto

jldugger Puntos 7490

La solución depende íntimamente de cómo se hayan recogido y resumido los datos. Esta respuesta le lleva a través de un proceso de reflexión sobre los datos, el análisis de los mismos, la reflexión sobre los resultados y mejorar la prueba hasta que se logre algún tipo de conocimiento. A lo largo del camino desarrollamos y comparamos cinco variantes del $\chi^2$ prueba.


La prueba de Fisher no es aplicable porque tienes dos muestras independientes. Suponiendo que haya decidido de antemano el tamaño de cada muestra, los recuentos de las columnas ("marginales") son efectivamente fijos, como se supone en esa prueba. Pero (supongo) no tenía un control predeterminado sobre el número total de cada etnia que se observaría, por lo que los recuentos de filas (sus marginales) son no arreglado. Esto es contrario a lo que supone la prueba de Fisher.

(La prueba de Fisher sí se aplicaría si estos datos hubieran surgido de una única colección de $45$ sujetos que fueron divididos al azar por el experimentador en dos grupos de tamaño predeterminado $23$ y $22$ como se suele hacer en los experimentos controlados).

La prueba de Chi-cuadrado

En estos datos el recuento total es $45$ para $5\times 2=10$ entradas de la tabla, produciendo un recuento medio de $4.5$ repartidos en dos columnas de totales más o menos iguales ( $23$ y $22$ ). Esto está empezando a entrar en el rango en el que las reglas generales sugieren la $\chi^2$ que no es más que un número que mide la discrepancia entre las dos distribuciones étnicas, puede tener una $\chi^2$ distribución. Empecemos, pues, por calcular el estadístico y su valor p asociado. (Estoy utilizando R para estos cálculos).

x <- cbind(A=c(1,3,1,3,15), B=c(2,0,0,8,12))
chisq.test(x)

La salida es

X-cuadrado = 6,9206, df = 4, valor p = 0,1401

junto con una advertencia de que "la aproximación Chi-cuadrado puede ser incorrecta". Es justo. Pero como el valor p reportado no es extremo -por lo que no estamos llegando muy lejos en las colas de la distribución de la estadística- podemos esperar que este valor p sea bastante preciso. Veamos.

Simulación del valor P de Chi-cuadrado

Una forma de comprobarlo es simular la verdadera distribución del $\chi^2$ estadística. R ofrece una prueba "Monte Carlo".

chisq.test(x, simulate.p.value=TRUE, B=1e5)

Utilizando $100,000$ iteraciones (y repitiendo eso varias veces), esta prueba reporta un valor p consistentemente cerca de $0.130$ : razonablemente cercano al valor p original de $0.1401$ .

(Si estoy leyendo el R código fuente de chisq.test correctamente, en cada iteración de Monte-Carlo calcula un $\chi^2$ estadística que compara los datos simulados con las estimaciones obtenidas a partir de los datos originales (y no con las estimaciones obtenidas a partir de los marginales de los datos simulados, como se realiza en un $\chi^2$ prueba). Es difícil ver cómo esto es directamente aplicable a la hipótesis original. La página web R El manual nos remite a Hope, A. C. A. (1968) A simplified Monte Carlo significance test procedure. J. Roy. Statist. Soc. B 30 , 582-598. No encuentro en ese documento ninguna justificación para lo que R en particular, el documento utiliza pruebas independientes de cada muestra simulada para evaluar la bondad del ajuste para las distribuciones continuas, mientras que el R El software lleva a cabo una serie de dependiente pruebas para evaluar la independencia entre muestras que implican distribuciones discretas).

Profundización

Otro enfoque consiste en realizar un bootstrap de la prueba. Este procedimiento utiliza los datos para estimar los parámetros bajo la hipótesis nula (que las dos muestras proceden de la misma población) y, a continuación, replica repetidamente el proceso de recogida de datos extrayendo nuevos valores según esa distribución. Al estudiar la distribución de $\chi^2$ estadísticas que surgen, podemos ver dónde está el $\chi^2$ y decidir si es lo suficientemente extremo como para justificar el rechazo de la hipótesis nula.

Los marginales de las filas nos permiten estimar las proporciones relativas de cada etnia bajo la hipótesis nula: Ethnicity_1 se observó $(2+1)/45$ del tiempo, etc. Cada iteración de bootstrap extrae dos muestras independientes de esta distribución hipotética, una de tamaño $23$ y otro de tamaño $22$ y calcula el $\chi^2$ para estas dos muestras.

Cuando lo intentas, se topará con un fenómeno muy interesante: porque las etnias 2 y 3 se observaron raramente, en muchas muestras simuladas no se observan en absoluto. Esto hace imposible calcular un $\chi^2$ ¡estadística basada en las cinco etnias! (Sería necesario dividir por cero.) ¿Qué hacer?

  1. Podrías simplemente calcular el $\chi^2$ estadística basada en las etnias realmente observadas, incluso cuando sólo aparecen tres o cuatro diferentes entre las dos muestras. Cuando hago esto con $10,000$ iteraciones, obtengo un valor p de $0.086$ .

  2. Se podría calcular el $\chi^2$ sólo en las simulaciones en las que se observaron las cinco etnias. Esta vez calculo un valor p de $0.108$ . (Menos de $60\%$ de todas las simulaciones incluían las cinco etnias).

Conclusiones

Hemos obtenido un rango de valores p de $0.086$ a través de $0.140$ Algunos son más legítimos que otros. (El valor p de la prueba exacta de Fisher de $0.119$ por cierto, entra dentro de este rango). Si su criterio para un resultado significativo es más estricto que $8.6\%$ no hay ningún problema: no rechazará la hipótesis nula y, por tanto, no tendrá que preocuparse de qué pruebas son realmente aplicables. Pero si su criterio se encuentra dentro de este rango (como $10\%$ ), entonces la elección de la prueba es importante.

Como han demostrado claramente los esfuerzos de simulación anteriores, la prueba que se debe utilizar depende de su aplicación. ¿Sabe que sólo cinco etnias podría ¿se han observado? ¿O está siguiendo sólo las etnias que aparecen en sus muestras? Por el desfase en la numeración entre el 2 y el 4, supongo que Ethnicity_3 podría ser posible, pero no se ha observado. Por ello, si se opta por utilizar un $\chi^2$ basado en estadísticas sólo en las etnias observadas entonces se encuentra en la situación (1) y debe informar de un valor p de $0.086$ . Si hubiera recogido los datos de otra manera -por ejemplo, aumentando el tamaño de la muestra hasta que apareciera al menos uno de cada etnia en el conjunto de datos-, entonces sería más apropiado un enfoque comparable al de (2). La clave es reproducir fielmente todos los detalles de su procedimiento de muestreo real dentro de la simulación para obtener una representación honesta de la distribución de su estadística de prueba.


Planificación de estudios de seguimiento

Cabe destacar que, incluso si se considera que esta gama de resultados es irrelevante -se tomaría la misma decisión a pesar de ello-, la elección de la prueba puede suponer una gran diferencia si se planea realizar más experimentos con la esperanza de demostrar un efecto. Bajo esta suposición, al utilizar un valor p de $0.086$ (y adoptando un umbral de significación de $0.05$ ) se necesitaría un conjunto de datos de aproximadamente $(Z_{0.05}/Z_{0.086})^2 = 1.45$ veces mayor que el actual, mientras que utilizando un valor p de $0.140$ que querría recoger $2.32$ veces más datos, lo que costará $60\%$ más que hacer.

(El " $Z_{*}$ "son cuantiles de una distribución Normal estándar, invocada aquí como una aproximación a una $\chi^2$ análisis de potencia y tamaño de la muestra. No se trata de hacer un análisis de potencia exacto, sino sólo de observar que se necesitan relativamente pocos datos adicionales para bajar un valor p que se acerque a $0.05$ a continuación $0.05$ -- ¡suponiendo que el efecto sea real! -- comparado con la cantidad de datos necesarios para bajar un valor p que está lejos de $0.05$ a continuación $0.05$ .)

4voto

user67887 Puntos 11

La regla de los 50 años es que una prueba exacta de Fisher es más apropiada cuando los recuentos esperados caen por debajo de 5 o 10 (dependiendo de sus grados de libertad). Sus datos tienen tamaños de muestra demasiado pequeños para que una prueba de chi-cuadrado sea precisa (aunque esto se considera generalmente una regla bastante conservadora y la gente discute). Fisher concibió la prueba como 2 x 2 porque cualquier cosa más grande es demasiado difícil de hacer a mano, pero se puede hacer con una simulación monte carlo.

Algunos paquetes estadísticos (R, stata, spss) tienen una función preparada para hacer esto. Es importante que el trabajo se realice en scipy?

Una buena discusión de las tablas de contingencia más grandes que 2 x 2: Prueba exacta de Fisher en tablas de contingencia mayores de 2x2

Algunas preguntas similares: (En R) Prueba exacta de Fisher en tabla de contingencia 3x2

(En Stata) Prueba exacta de Fisher o prueba de chi-cuadrado

(En SPSS) Prueba exacta de Fisher en tablas de contingencia mayores de 2x2

0 votos

Gracias. ¿Pero la exacta de Fisher (o similar) es la forma correcta de evaluar la diferencia entre las dos poblaciones?

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X