Examen binomial de dos proporciones exactas de muestra en R (y algunos valores p extraños)


23

Estoy tratando de resolver la siguiente pregunta:

El jugador A ganó 17 de 25 juegos, mientras que el jugador B ganó 8 de 20: ¿hay una diferencia significativa entre ambas proporciones?

Lo que hay que hacer en R que viene a la mente es lo siguiente:

> prop.test(c(17,8),c(25,20),correct=FALSE)

    2-sample test for equality of proportions without continuity correction

data:  c(17, 8) out of c(25, 20)
X-squared = 3.528, df = 1, p-value = 0.06034
alternative hypothesis: two.sided
95 percent confidence interval:
 -0.002016956  0.562016956
sample estimates:
prop 1 prop 2 
  0.68   0.40 

Entonces, esta prueba dice que la diferencia no es significativa al nivel de confianza del 95%.

Como sabemos que prop.test()solo se está usando una aproximación, quiero que las cosas sean más exactas usando una prueba binomial exacta, y lo hago en ambos sentidos:

> binom.test(x=17,n=25,p=8/20)

    Exact binomial test

data:  17 and 25
number of successes = 17, number of trials = 25, p-value = 0.006693
alternative hypothesis: true probability of success is not equal to 0.4
95 percent confidence interval:
 0.4649993 0.8505046
sample estimates:
probability of success 
                  0.68 

> binom.test(x=8,n=20,p=17/25)

    Exact binomial test

data:  8 and 20
number of successes = 8, number of trials = 20, p-value = 0.01377
alternative hypothesis: true probability of success is not equal to 0.68
95 percent confidence interval:
 0.1911901 0.6394574
sample estimates:
probability of success 
                   0.4 

Ahora esto es extraño, ¿no? ¡Los valores p son totalmente diferentes cada vez! En ambos casos, ahora los resultados son (altamente) significativos, pero los valores p parecen saltar de manera bastante casual.

Mis preguntas

  1. ¿Por qué son los valores de p que diferente cada vez?
  2. ¿Cómo realizar una prueba binomial exacta de dos proporciones muestrales en R correctamente?

3
Aunque la función R es diferente ( prop.testvs chisq.test), el mismo concepto subyacente está en esta pregunta . Está ejecutando tres pruebas diferentes con diferentes "hipótesis nulas" en cada uno de sus tres ejemplos.
Affine

Respuestas:


26

Si está buscando una prueba 'exacta' para dos proporciones binomiales, creo que está buscando la prueba exacta de Fisher . En R se aplica así:

> fisher.test(matrix(c(17, 25-17, 8, 20-8), ncol=2))
    Fisher's Exact Test for Count Data
data:  matrix(c(17, 25 - 17, 8, 20 - 8), ncol = 2)
p-value = 0.07671
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
  0.7990888 13.0020065
sample estimates:
odds ratio 
  3.101466 

La fisher.testfunción acepta un objeto matriz de los 'éxitos' y 'fracasos' de las dos proporciones binomiales. Como puede ver, sin embargo, la hipótesis de dos lados todavía no es significativa, lamento decirlo. Sin embargo, la prueba exacta de Fisher generalmente solo se aplica cuando el recuento de células es bajo (generalmente esto significa 5 o menos, pero algunos dicen 10), por lo tanto, su uso inicial prop.testes más apropiado.

Con respecto a sus binom.testllamadas, está malinterpretando la llamada. Cuando corres, binom.test(x=17,n=25,p=8/20)estás probando si la proporción es significativamente diferente de una población donde la probabilidad de éxito es 8/20 . Del mismo modo, binom.test(x=8,n=20,p=17/25)dice que la probabilidad de éxito es 17/25, razón por la cual estos valores p difieren. Por lo tanto, no estás comparando las dos proporciones en absoluto.


2
Gracias, acepté tu respuesta. Cuando dices prop.test es "más apropiado", ¿qué quieres decir exactamente? El resultado más exacto es (literalmente) dado por la prueba exacta de Fisher, ¿no es así?
vonjd

44
Esto es realmente algo que se debate entre los estadísticos y no tengo una respuesta absoluta. Históricamente, evitaste el de Fisher porque se vuelve muy complejo desde el punto de vista computacional, pero las computadoras lo evitan. En términos generales, sin embargo, la prueba exacta de Fisher es conservadora y si sus números son lo suficientemente grandes, prop.testes más probable que la estadística de chi-cuadrado (que es lo que calcula) no cometa un error de tipo II.
cdeterman

El punto crucial para mí son las diferentes semánticas de prop.testy fisher.test: la primera se llama como prop.test(matrix(c(17, 8, 25, 20), ncol=2))(que da el número de éxitos en la primera columna y la cantidad de pruebas en la segunda columna), mientras que la segunda se llama como fisher.test(matrix(c(17, 25-17, 8, 20-8), ncol=2))(que da el número de éxitos y fallas ); porque la fisher.testtransposición tampoco parece cambiar el resultado.
krlmlr

Una alternativa más poderosa también está disponible para las pruebas 2x2 - en.wikipedia.org/wiki/Barnard%27s_test
Hamy

4

Hay una diferencia entre dos muestras y una muestra en comparación con una hipótesis conocida. Entonces, si alguien lanza una moneda 100 veces y obtiene caras 55 veces y la hipótesis es una moneda justa, frente a dos personas que lanzan una moneda de imparcialidad desconocida y una obtiene caras 55 veces y la otra 45 veces. En el primer caso, simplemente está tratando de identificar si la aleta parece estar lanzando una moneda justa. En el último, está buscando ver si están lanzando monedas de la misma justicia. Puedes ver cómo si estás mirando a cada jugador contra una probabilidad conocida (45 contra 50 y 55 contra 50) es diferente de compararlos entre sí (45 contra 55).


2

La sintaxis de binom.testes su éxito dentro de una serie de ensayos en comparación con una estimación puntual de la población . Aunque lo ingresó como p = 8/20, el cálculo es como si fuera una verdad absoluta dada por Dios 0.4 con una variación cero a su alrededor. O es como si estuvieras comparando las 17 victorias del jugador A de 25 con los hipotéticos 8 billones de victorias del jugador B de 20 billones de juegos. Sin embargo, prop.testcompara la proporción de 17/25 con toda su varianza potencial con la proporción de 8/20 con toda su propia varianza. En otras palabras, la varianza alrededor de 0.7 (estimación de 17/25) y la varianza alrededor de 0.4 pueden desangrarse entre sí con una p = 0.06 resultante.


Entonces esto significaría que la forma correcta de resolver la pregunta original es prop.test(c(17,8),c(25,20),correct=FALSE), ¿verdad?
vonjd

1
Si, eso es correcto. Si desea orientación sobre si debería tener correct = FALSEvs vs correct = TRUE, le sugiero que lea las siguientes estadísticas.stackexchange.com
Farrel

2

Primero, sugeriría que desea hacer una corrección de continuidad, ya que está estimando una distribución discreta con una distribución continua (chi-cuadrado).

En segundo lugar, es importante tener claro cómo se llevó a cabo el "experimento". ¿El número de juegos que jugó cada persona se determinó de antemano (o en la lengua vernácula de la industria, fijado por diseño)? Si es así, y suponiendo que los resultados de cada jugador son independientes del otro, se trata del producto de 2 distribuciones binomiales. Si, en cambio, la cantidad de juegos era libre de variar (por ejemplo, la cantidad de juegos que jugó cada persona eran variables, en función de la cantidad de juegos que cada uno podía completar en un período de tiempo fijo), entonces se trata de un Multinomial o distribución de Poisson.

En el segundo caso, la prueba de chi-cuadrado (o lo que es lo mismo, una prueba z de diferencia en proporciones) es apropiada, pero en el primer caso no lo es. En el primer caso, realmente necesita calcular el producto exacto de cada posible resultado binomial para cada jugador, y sumar estas probabilidades para todas las ocurrencias que sean iguales o menores que la probabilidad binomial conjunta de los resultados que se observaron (es simplemente el producto de los 2 binomios porque los resultados de cada jugador son independientes de los resultados del otro jugador).

Primero reconozca que el propósito central de cualquier prueba de hipótesis es calcular cuán "raro" o inusual es el resultado específico que ha observado, en comparación con todos los demás resultados posibles. Esto se calcula calculando la probabilidad del resultado que ha observado, dada la suposición de que la hipótesis nula es verdadera, sumada junto con todos los demás resultados posibles de igual o menor probabilidad.

Ahora se repite que lo que queremos decir con "cuán raro" es "cuán baja es la probabilidad de observar el resultado obtenido en comparación con todos los demás resultados posibles". Bueno, la probabilidad del resultado específico que hemos observado es 0.0679 * 0.0793 = 0.005115. Ahora considere un resultado alternativo específico: ciertamente es posible que el jugador A podría haber ganado 7 de sus 20 juegos y el jugador B podría haber ganado 13 de sus 25 juegos. La probabilidad de este resultado es 0.004959. Tenga en cuenta que esto es MENOR que la probabilidad de nuestro resultado observado, por lo que debe incluirse en el valor p. Pero observe nuevamente: si decide qué resultados incluir en su suma en función de si la diferencia en las proporciones excede a la diferencia en las proporciones en nuestro resultado observado, ¡esta probabilidad se excluirá! ¿Por qué? Porque la diferencia en proporciones para este resultado específico es menor que la diferencia en proporciones para nuestro resultado observado. Pero este no es el enfoque adecuado: ¡debemos preocuparnos por la probabilidad de este resultado específico y si es igual o menor que la probabilidad del resultado que hemos observado!

Una buena explicación formal de esto se puede encontrar aquí:

http://data.princeton.edu/wws509/notes/c5.pdf

Tenga en cuenta específicamente la declaración en la página 9 de que "si el margen de la fila es fijo y el esquema de muestreo es binomial, entonces debemos usar el modelo binomial del producto, porque no podemos estimar la distribución conjunta de las dos variables sin más información".


Para el código R que calcula la suma de las probabilidades binomiales conjuntas que tienen una probabilidad igual o menor de ocurrir en comparación con la probabilidad del resultado observado, vea la respuesta a la siguiente publicación relacionada: stats.stackexchange.com/questions/213295/…
user221943
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.