72 votos

Advertencia en R - La aproximación de Chi-cuadrado puede ser incorrecta

Tengo datos que muestran los resultados del examen de acceso a bombero. Estoy probando la hipótesis de que los resultados del examen y la etnia no son mutuamente independientes. Para probar esto, corrí una prueba de chi-cuadrado de Pearson en R. Los resultados muestran lo que esperaba, pero dio una advertencia de que " In chisq.test(a) : Chi-squared approximation may be incorrect ."

> a
       white black asian hispanic
pass       5     2     2        0
noShow     0     1     0        0
fail       0     2     3        4
> chisq.test(a)

    Pearson's Chi-squared test

data:  a
X-squared = 12.6667, df = 6, p-value = 0.04865

Warning message:
In chisq.test(a) : Chi-squared approximation may be incorrect

¿Alguien sabe por qué ha dado un aviso? ¿Es porque estoy utilizando un método incorrecto?

6 votos

Nunca te fíes de un resultado con tan pocas medidas. Cuando tengas cientos de personas en cada columna, entonces podrás tener cierta confianza en tus resultados. Aun así, el resultado podría deberse más al barrio o a la riqueza que a la propia carrera.

63voto

Zizzencs Puntos 1358

La advertencia se debe a que muchos de los valores esperados serán muy pequeños y, por tanto, las aproximaciones de p pueden no ser correctas.

En R puede utilizar chisq.test(a, simulate.p.value = TRUE) para utilizar la simulación de los valores p.

Sin embargo, con tamaños de celda tan pequeños, todas las estimaciones serán pobres. Podría ser bueno simplemente probar el aprobado frente al suspenso (eliminando los "no presentados"), ya sea con chi-cuadrado o con regresión logística. De hecho, como está bastante claro que la calificación de aprobado/reprobado es una variable dependiente, la regresión logística podría ser mejor.

1 votos

Lo que realmente simulate.p.value = TRUE cuando se añade a chisq.test ?

2 votos

Utiliza simulaciones para encontrar el valor p

8 votos

Tenga en cuenta que simulate.p.value = TRUE utiliza la simulación condicionado a los marginales por lo que es realmente una versión de la prueba exacta de Fisher.

33voto

AdamSane Puntos 1825

El problema es que la aproximación chi-cuadrado a la distribución de la estadística de la prueba se basa en que los recuentos se distribuyen de forma aproximadamente normal. Si muchos de los recuentos esperados son muy pequeños, la aproximación puede ser pobre.

Tenga en cuenta que el actual La distribución del estadístico chi-cuadrado para la independencia en las tablas de contingencia es discreta, no continua.

La categoría noshow contribuirá en gran medida al problema; una cosa a considerar es fusionar noshow y fail. Seguirá recibiendo la advertencia, pero no afectará tanto a los resultados y la distribución debería ser bastante razonable (la regla que se aplica antes de la advertencia es demasiado estricta).

Pero en cualquier caso, si está dispuesto a condicionar los márgenes (como se hace cuando se ejecuta la prueba exacta de Fisher) se puede tratar el problema muy fácilmente en R; establezca el simulate.p.value argumento para TRUE entonces no se depende de la aproximación chi-cuadrado a la distribución de la estadística de la prueba.

0 votos

¿podría explicarme por qué " la aproximación chi-cuadrado a la distribución del estadístico de la prueba se basa en que los recuentos se distribuyan aproximadamente de forma normal"? No entiendo cómo puede ser esto cierto si se tiene, por ejemplo, una tabla de contingencia 2x2. ¿Cómo pueden estar los recuentos distribuidos (aproximadamente) de forma normal? ¿Cómo es posible que los recuentos de blancos, negros, hispanos y asiáticos estén distribuidos normalmente? ¿Se refiere a que sean ligeramente iguales? ¿Y cómo se relaciona esto con esta pregunta? stats.stackexchange.com/questions/141407/

0 votos

La distribución multivariada del recuento variables aleatorias tiene que ser aproximadamente normal (aunque será degenerado). El conjunto de recuentos observados es sólo un solo vector-observación de esta normal multivariante -- no se puede juzgar la distribución a partir de una observación. Para hacer la evaluación a la que me refiero tienes que basarte en los supuestos; es razonablemente fácil hacerlo para las celdas individuales (es decir, la distribución marginal para una celda dada, bajo la nula). Parece que estás combinando los recuentos en las celdas, pero eso no tiene sentido porque todos provienen de distribuciones diferentes

0 votos

En primer lugar, ¡gracias por tomarse el tiempo! Entonces, ¿dices que los recuentos "hacia abajo" de la tabla de contingencia deberían ser (degeneradamente) normales multivariantes, si miramos muchas observaciones? ¿No significaría esto que los recuentos de cada celda individual deberían ser normales también, y también los recuentos "hacia los lados" de la tabla de contingencia (asumo que esto es lo que quieres decir con "a través")? Por ejemplo, una celda con un valor esperado de 5 debería tener una distribución normal en torno a 5, ¿no? Así que si una celda a través tiene valor esperado 40, esta celda debe ser normalmente distribuido en torno a 40, y en conjunto una normal multivariable de media 5 y 40, ¿no?

18voto

Alan Puntos 7273

Para recuentos tan pequeños, se podría utilizar la prueba exacta de Fisher:

> fisher.test(a)

        Fisher's Exact Test for Count Data

data:  a 
p-value = 0.02618
alternative hypothesis: two.sided

5voto

Consulte la sección "Supuestos" de Prueba de chi-cuadrado de Pearson artículo.

En pocas palabras, cuando los recuentos en cualquiera de las celdas de su tabla son inferiores a 5, entonces uno de los supuestos está roto. Creo que a eso se refiere el mensaje de error. En el artículo enlazado también puedes encontrar sobre la corrección que se puede aplicar.

8 votos

Hay dos problemas con su regla general de menos de cinco cuentas. El primero es que la afirmación correcta se refiere al esperado en lugar de los recuentos reales. La segunda es que es demasiado severa. El $\chi^2$ La aproximación suele funcionar bien incluso cuando una pequeña proporción de recuentos esperados es inferior a cinco. En este caso, en el que todos los marginales de las columnas son cinco o menos, es obvio que cada El recuento esperado es pequeño, por lo que se aconseja ser cauteloso. Además, la corrección mencionada en el artículo de la Wikipedia sólo se aplica en el caso de un DF; este caso tiene 6 DF.

1voto

Sadiaz Puntos 121

Su pregunta principal habla del tamaño de la muestra, pero veo que se comparan más de dos grupos. Si el valor p de la prueba es 0,05 o menos, sería difícil interpretar los resultados. Por lo tanto, comparto un breve script que utilizo en tales situaciones:

# Load the required packages:
library(MASS) # for chisq
library(descr) # for crosstable

CrossTable(a$exam_result, a$ethnicity
       fisher = T, chisq = T, expected = T,
       prop.c = F, prop.t = F, prop.chisq = F, 
       sresid = T, format = 'SPSS')

Este código generará tanto el Chi-cuadrado de Pearson como el Chi-cuadrado de Fisher. Produce los recuentos así como las proporciones de cada una de las entradas de la tabla. Basado en las puntuaciones de los residuos estandarizados o valores z, es decir,

sresid

Si está fuera del rango |1,96|, es decir, menos de -1,96 o más de 1,96, entonces es significativo p < 0,05. El signo indicaría entonces si está relacionado positiva o negativamente.

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