¿Se puede usar chi cuadrado para comparar proporciones?

13

He leído que la prueba de chi cuadrado es útil para ver si una muestra es significativamente diferente de un conjunto de valores esperados.

Por ejemplo, aquí hay una tabla de resultados de una encuesta sobre los colores favoritos de las personas (n = 15 + 13 + 10 + 17 = 55 encuestados totales):

red,blue,green,yellow

15,13,10,17

Una prueba de chi cuadrado me puede decir si esta muestra es significativamente diferente de la hipótesis nula de igual probabilidad de que a las personas les guste cada color.

Pregunta: ¿Se puede realizar la prueba en las proporciones del total de encuestados a quienes les gusta un determinado color? Como abajo:

red,blue,green,yellow

0.273,0.236,0.182,0.309

Donde, por supuesto, 0.273 + 0.236 + 0.182 + 0.309 = 1.

Si la prueba de chi cuadrado no es adecuada en este caso, ¿qué prueba sería? ¡Gracias!

Editar: Intenté la respuesta de @Roman Luštrik a continuación, y obtuve el siguiente resultado, ¿por qué no obtengo un valor p y por qué R dice "La aproximación de Chi-cuadrado puede ser incorrecta"?

> chisq.test(c(0,0,0,8,6,2,0,0),p = c(0.406197174,0.088746395,0.025193306,0.42041479,0.03192905,0.018328576,0.009190708,0))

    Chi-squared test for given probabilities

data:  c(0, 0, 0, 8, 6, 2, 0, 0) 
X-squared = NaN, df = 7, p-value = NA

Warning message:
In chisq.test(c(0, 0, 0, 8, 6, 2, 0, 0), p = c(0.406197174, 0.088746395,  :
  Chi-squared approximation may be incorrect
hpy
fuente
1
En el segundo caso, ¿asume que conoce el tamaño total de la muestra? ¿O no?
cardenal
@ cardinal: sí, sé el tamaño total de la muestra.
hpy
3
luego simplemente multiplique las proporciones por el tamaño total de la muestra para transformarlas en una tabla de recuentos, y aplique el chi-sq. método correspondiente a su primer ejemplo.
Aaron
Sospecho que está preguntando sobre la prueba de "bondad de ajuste" (usando el chi cuadrado). El uso de lo cual se explicó a continuación. Saludos, Tal
Tal Galili

Respuestas:

7

Corrígeme si me equivoco, pero creo que esto se puede hacer en R usando este comando

> chisq.test(c(15,13,10,17))

    Chi-squared test for given probabilities

data:  c(15, 13, 10, 17) 
X-squared = 1.9455, df = 3, p-value = 0.5838

Esto supone proporciones de 1/4 cada una. Puede modificar los valores esperados a través del argumento p. Por ejemplo, cree que las personas pueden preferir (por cualquier razón) un color sobre el otro (s).

> chisq.test(c(15,13,10,17), p = c(0.5, 0.3, 0.1, 0.1))

    Chi-squared test for given probabilities

data:  c(15, 13, 10, 17) 
X-squared = 34.1515, df = 3, p-value = 1.841e-07
Roman Luštrik
fuente
2
Sospecho que estás viendo esto debido a algunos recuentos bajos de células (algunos libros que he leído sugieren un mínimo de 5 por celda). ¿Quizás alguien más conocedor del tema pueda intervenir?
Roman Luštrik
1
Observe también que puede obtener un valor p si hace que la última probabilidad sea mayor que cero (pero la advertencia aún permanece).
Roman Luštrik
1
Ott & Longnecker (Introducción a los métodos estadísticos y análisis de datos, 5ª edición) afirman, en la página 504, que cada celda debe tener al menos cinco, para usar la aproximación cómodamente.
Roman Luštrik
1
@penyuan: Deberías haber mencionado que tienes bastantes conteos cero. Roman tiene razón, usar un Chi-cuadrado en este caso simplemente no funciona por las razones que mencionó.
Joris Meys
1
@penyuan: agregué una respuesta que te da algunas opciones.
Joris Meys
6

Usando la información adicional que proporcionó (dado que algunos de los valores son 0), es bastante obvio por qué su solución no devuelve nada. Por un lado, tienes una probabilidad de que sea 0, entonces:

  • en la solución de Henry es 0 para al menos un iei
  • en la solución de probabilística es 0 para al menos un inpi

Lo que hace que las divisiones sean imposibles. Ahora decir que significa que es imposible tener ese resultado. Si es así, también podría borrarlo de los datos (ver comentario de @cardinal). Si quiere decir altamente improbable, una primera 'solución' podría ser aumentar esa probabilidad 0 con un número muy pequeño.p=0

Dado:

X <- c(0,0,0,8,6,2,0,0)
p <- c(0.406197174,0.088746395,0.025193306,0.42041479,0.03192905,0.018328576,0.009190708,0)

Podrías hacerlo :

> p2 <- p + 1e-6
> chisq.test(X,p2)

        Pearson's Chi-squared test

data:  X and p2 
X-squared = 24, df = 21, p-value = 0.2931

Pero este no es un resultado correcto. En cualquier caso, se debe evitar el uso de la prueba de chi-cuadrado en estos casos límite. Un mejor enfoque es utilizar un método de arranque, calcular un estadístico de prueba adaptado y comparar el de la muestra con la distribución obtenida por el arranque.

En el código R esto podría ser (paso a paso):

# The function to calculate the adapted statistic.
# We add 0.5 to the expected value to avoid dividing by 0
Statistic <- function(o,e){
    e <- e+0.5
    sum(((o-e)^2)/e)
}

# Set up the bootstraps, based on the multinomial distribution
n <- 10000
bootstraps <- rmultinom(n,size=sum(X),p=p)

# calculate the expected values
expected <- p*sum(X)

# calculate the statistic for the sample and the bootstrap
ChisqSamp <- Statistic(X,expected)
ChisqDist <- apply(bootstraps,2,Statistic,expected)

# calculate the p-value
p.value <- sum(ChisqSamp < sort(ChisqDist))/n
p.value

Esto proporciona un valor p de 0, que está mucho más en línea con la diferencia entre lo observado y lo esperado. Eso sí, este método supone que sus datos se extraen de una distribución multinomial. Si esta suposición no se cumple, el valor p tampoco se cumple.

Joris Meys
fuente
1
pi=0iipi=0pi=1/6i61,,10
@cardinal: acabo de describir los datos, donde el valor esperado es 0 pero el observado no tiene que ser. Es lo que OP nos dio (aunque pensándolo bien, en realidad suena bastante irrealista). Por lo tanto, agregar un poco al valor p para hacerlo altamente improbable en lugar de imposible ayudará, pero incluso entonces el chi-cuadrado es inválido en este caso debido a la gran cantidad de celdas de la tabla con conteos menores a 5 (como lo demuestra el código). Agregué la consideración en mi respuesta, gracias por el puntero.
Joris Meys
pi=0
4

1E(xi)

ψ=ixilog(xinpi)

xiii{red, blue, green, yellow}n55pipi=pj

χ2=i(xinpi)2npi2ψ

fi=xin

ψ=nifilog(fipi)
χ2=ni(fipi)2pi

ψψpi1piψ

H1H2piψ1ψ2exp(ψ1ψ2)H2H1exp(12χ1212χ22)

H2ψ2=χ22=0

χ22npi<10ψ

probabilidadislogica
fuente
1
Estoy bastante seguro de que las frecuencias esperadas no pueden ser superiores a 10. :)
cardenal
@cardinal: me alegro de que esta fuera tu objeción, porque significa que el resto de mi respuesta debe haber sido buena :).
probabilityislogic
Wow, espero no tener fama de ser tan quisquilloso / gruñón.
cardenal
1
ψ2ψχ2χ22ψ0χ22ψχ2
cardenal
χ22ψ
3

Sí, puede probar la hipótesis nula: "H0: prop (rojo) = prop (azul) = prop (verde) = prop (amarillo) = 1/4" utilizando una prueba de chi cuadrado que compara las proporciones de la encuesta (0.273 , ...) a las proporciones esperadas (1/4, 1/4, 1/4, 1/4)


fuente
Solo para confirmar, ¿también funcionará con las proporciones esperadas que son desiguales entre sí?
hpy
44
la prueba no tendrá sentido a menos que conozca el tamaño completo de la muestra. Las proporciones de 1.0 / 0.0 / 0.0 / 0.0 significan cosas muy diferentes si provienen de una muestra de tamaño 1 en lugar de una muestra de tamaño 100.
Aaron
Sí, sé el tamaño total de la muestra.
hpy
2

El estadístico de prueba para la prueba de chi-cuadrado de Pearson es

i=1n(OiEi)2Ei

oi=Oinei=Einn=i=1nOi is the sample size and i=1nei=1, then the test statistic is is equal to

ni=1n(oiei)2ei

so a test of the significance of the observed proportions depends on the sample size, much as one would expect.

Henry
fuente