Pruebe si dos distribuciones binomiales son estadísticamente diferentes entre sí

37

Tengo tres grupos de datos, cada uno con una distribución binomial (es decir, cada grupo tiene elementos que son exitosos o fallidos). No tengo una probabilidad pronosticada de éxito, sino que solo puedo confiar en la tasa de éxito de cada uno como una aproximación a la verdadera tasa de éxito. Solo he encontrado esta pregunta , que está cerca pero no parece abordar exactamente el escenario.

Para simplificar la prueba, digamos que tengo 2 grupos (3 pueden ampliarse a partir de este caso base).

  • Ensayos del grupo 1: = 2455n1
  • Grupo 2 ensayos: = 2730n2

  • Grupo 1 exitoso: k1 = 1556
  • Grupo 2 exitoso: k2 = 1671

No tengo una probabilidad de éxito esperada, solo lo que sé de las muestras. Entonces, mi tasa de éxito implícita para los dos grupos es:

  • Tasa de éxito del Grupo 1: p1 = 1556/2455 = 63.4%
  • Grupo 2 tasa de éxito: p2 = 1671/2730 = 61.2%

La tasa de éxito de cada una de las muestras es bastante cercana. Sin embargo, mis tamaños de muestra también son bastante grandes. Si reviso el CDF de la distribución binomial para ver qué tan diferente es de la primera (donde supongo que la primera es la prueba nula) tengo una probabilidad muy pequeña de que se pueda lograr la segunda.

En Excel:

1-BINOM.DIST (1556,2455,61.2%, VERDADERO) = 0.012

Sin embargo, esto no tiene en cuenta ninguna variación del primer resultado, solo supone que el primer resultado es la probabilidad de la prueba.

¿Hay una mejor manera de probar si estas dos muestras de datos son en realidad estadísticamente diferentes entre sí?

Scott
fuente
Otra pregunta que encontré que realmente no ayudó mucho: stats.stackexchange.com/questions/82059/…
Scott
¿Ayuda esta pregunta? stats.stackexchange.com/questions/25299/…
Eric
2
En R, se puede utilizar prop.test: prop.test(c(1556, 1671), c(2455, 2730)).
COOLSerdash
1
Podría hacerse como una de dos muestras (binomial) Prueba de proporciones, o una 2x2 chi-cuadrado
Glen_b -Reinstate Monica
1
Extender el caso base de dos grupos a tres podría ser problemático, porque las pruebas serán interdependientes: necesitará una versión binomial de ANOVA para manejar eso.
whuber

Respuestas:

36

La solución es una simple búsqueda de Google: http://en.wikipedia.org/wiki/Statistical_hypothesis_testing

Por lo tanto, le gustaría probar la siguiente hipótesis nula contra la alternativa dada

H A : p 1p 2H0:p1=p2 versusHA:p1p2

Entonces solo necesita calcular la estadística de prueba que es

z=p^1p^2p^(1p^)(1n1+1n2)

donde . p^=n1p^1+n2p^2n1+n2

Entonces, en su problema, , , yp^1=.634p^2=.612n1=2455n2=2730.

Una vez que calcule la estadística de prueba, solo necesita calcular el valor de región crítica correspondiente para comparar también su estadística de prueba. Por ejemplo, si está probando esta hipótesis con un nivel de confianza del 95%, debe comparar su estadística de prueba con el valor crítico de la región de (para esta prueba de dos colas).zα/2=1.96

Ahora, si entonces puede rechazar la hipótesis nula; de lo contrario, no podrá rechazar la hipótesis nula. z>zα/2

Bueno, esta solución funciona para el caso cuando está comparando dos grupos, pero no se generaliza al caso en el que desea comparar 3 grupos.

Sin embargo, podría usar una prueba de Chi cuadrado para comprobar si los tres grupos tienen proporciones iguales como lo sugiere @Eric en su comentario anterior: "¿Ayuda esta pregunta? Stats.stackexchange.com/questions/25299/ ... - Eric"

Dan
fuente
66
Gracias @Dan. Como muchas veces con Google, conocer el término correcto para buscar es el primer obstáculo. Eché un vistazo a la prueba de chi-cuadrado. El problema allí, como con el lugar donde me quedé atascado por primera vez, es que mi cálculo esperado se basa en la muestra. Por lo tanto, no puedo proporcionar un valor esperado, porque mis muestras se utilizan para determinar ese valor esperado.
Scott
@Scott, si sus proporciones hipotéticas para los tres grupos son que todas son iguales, entonces el valor esperado debería ser 1/3 para cada grupo.
Dan
1
Puede encontrar una explicación relacionada sobre el uso de esta prueba aquí: itl.nist.gov/div898/handbook/prc/section3/prc33.htm (actualmente, la página de Wikipedia no proporciona un ejemplo de recorrido).
wwwilliam
¿Puede alguien ayudarme a probar la desviación estándar de la diferencia entre las dos distribuciones binomiales, en otras palabras, demostrar que:
p^(1p^)(1n1+1n2)=p^1(1p^1)n1+p^2(1p^2)n2
Tanguy
La respuesta a mi pregunta se puede encontrar aquí: stats.stackexchange.com/questions/361015/…
Tanguy
11

En R la respuesta se calcula como:

fisher.test(rbind(c(1556,2455-1556), c(1671,2730-1671)), alternative="less")
David Makovoz
fuente
8
¿Consideraría escribir un poco más que proporcionar la función R? Nombrar la función no ayuda a comprender el problema y no todos usan R, por lo que no sería de ayuda para ellos.
Tim
1
Esta es la respuesta estadística más exacta y funciona para pequeñas cantidades de observaciones (consulte lo siguiente: itl.nist.gov/div898/handbook/prc/section3/prc33.htm ).
Andrew Mao
1
Prueba exacta de los pescadores en.wikipedia.org/wiki/Fisher's_exact_test
Keith
3

Solo un resumen:

Las respuestas de Dan y Abaumann sugieren probar bajo un modelo binomial donde la hipótesis nula es un modelo binomial único unificado con su media estimada a partir de los datos empíricos. En teoría, sus respuestas son correctas, pero necesitan una aproximación mediante la distribución normal, ya que la distribución del estadístico de prueba no sigue exactamente la distribución normal. Por lo tanto, solo es correcto para un gran tamaño de muestra.

Pero la respuesta de David indica una prueba no paramétrica usando la prueba de Fisher. La información está aquí: https://en.wikipedia.org/wiki/Fisher%27s_exact_test Y se puede aplicar a muestras pequeñas pero difíciles de calcular para muestras grandes.

Qué prueba usar y cuánto confía en su valor p es un misterio. Pero siempre hay sesgos en cualquier prueba para elegir.

Dr_Hope
fuente
2
1/ /2
1
Para este caso, creo que podría usar el método de Dan pero calcular el valor p de forma exacta (binomial) y de forma aproximada (normal Z> Φ − 1 (1 − α / 2) Z> Φ − 1 (1 − α / 2) y Z <Φ − 1 (α / 2)) para comparar si están lo suficientemente cerca.
Dr_Hope
1

Z=p1^p2^p^(1p^)(1/n1+1/n2)p^=n1p1^+n2p2^n1+n2

Z>Φ1(1α/2)Z<Φ1(α/2)

abaumann
fuente
1

En Python, statsmodels tiene una función llamada proportions_ztest. Aquí hay un ejemplo de su uso:

import statsmodels.api as sm
import numpy as np
import rpy2.robjects.packages as rpackages
import rpy2.robjects as robjects
rstats = rpackages.importr('stats')

s1 = 1556
n1 = 2455

s2 = 1671
n2 = 2730

# manual calculation
p1 = s1 / n1
p2 = s2 / n2
p = (s1 + s2) / (n1 + n2)

z = (p1 - p2) / (p*(1-p)*((1/n1)+(1/n2)))**0.5

# using R in Python with rpy2
rmatrix = robjects.r.matrix(robjects.IntVector([s1, n1-s1, s2,n2-s2]), nrow=2)
fisher_test = rstats.fisher_test(rmatrix, alternative="two.sided")

zscore, pval = sm.stats.proportions_ztest([s1, s2], [n1, n2], alternative='two-sided')

print('Manual calculation of z: {:.6f}'.format(z))
print('Z-score from statsmodels: {:.6f}'.format(zscore))
print('R pvalue from fisher.test: {:.6f}'.format(fisher_test[0][0]))
print('Statsmodels pvalue: {:.6f}'.format(pval))

Esto imprime:

Manual calculation of z: 1.610825
Z-score from statsmodels: 1.610825
R pvalue from fisher.test: 0.108268
Statsmodels pvalue: 0.107218
Jarad
fuente
-1

Publicación original: la respuesta de Dan es realmente incorrecta, para no ofender a nadie. Una prueba z solo se usa si sus datos siguen una distribución normal estándar. En este caso, sus datos siguen una distribución binomial, por lo tanto, use una prueba de ji cuadrado si su muestra es grande o la prueba de Fisher si su muestra es pequeña.

Editar: Mi error, disculpas a @Dan. Una prueba z es válida aquí si sus variables son independientes. Si este supuesto no se cumple o se desconoce, una prueba z puede ser inválida.

Ryan
fuente
3
χ2
Si crees en el CLT, entonces la distribución normal existe comúnmente.
Ryan
2
@ Ryan Bueno, creo en el CLT pero no dice nada sobre n = 30 o n = 300 o n = 5000. En realidad, no obtiene la normalidad a menos que de alguna manera logre tener tamaños de muestra infinitos, o de alguna manera haya comenzado con la normalidad. Las preguntas sobre cuán cerca estamos de la normalidad cuando tomamos promedios no son abordadas por el CLT ... (Podemos considerar esas preguntas pero no usamos el CLT para averiguar si la aproximación es buena).
Glen_b -Reinstate Monica