Bueno, parece que hice un hash de esto. Permítanme intentar explicar esto nuevamente, de una manera diferente y veremos si puede ayudar a aclarar las cosas.
La forma tradicional de explicar la prueba de McNemar frente a la prueba de chi-cuadrado es preguntar si los datos están "emparejados" y recomendar la prueba de McNemar si los datos están emparejados y la prueba de chi-cuadrado si los datos están "no emparejados". He descubierto que esto genera mucha confusión (¡este hilo es un ejemplo!). En lugar de esto, he descubierto que es más útil enfocarse en la pregunta que está tratando de hacer y usar la prueba que coincida con su pregunta. Para hacer esto más concreto, veamos un escenario inventado:
Usted camina alrededor de una conferencia de estadísticas y por cada estadístico que conoce, registra si son de los EE. UU. O el Reino Unido. También registra si tienen presión arterial alta o presión arterial normal.
Aquí están los datos:
mat = as.table(rbind(c(195, 5),
c( 5, 195) ))
colnames(mat) = c("US", "UK")
rownames(mat) = c("Hi", "Normal")
names(dimnames(mat)) = c("BP", "Nationality")
mat
# Nationality
# BP US UK
# Hi 195 5
# Normal 5 195
En este punto, es importante determinar qué pregunta queremos hacer con nuestros datos. Hay tres preguntas diferentes que podríamos hacer aquí:
- Lo que se quiere saber si las variables categóricas
BP
y Nationality
están asociados o independientes;
- Podríamos preguntarnos si la presión arterial alta es más común entre los estadísticos de EE. UU. Que entre los estadísticos del Reino Unido;
Finalmente, podríamos preguntarnos si la proporción de estadísticos con presión arterial alta es igual a la proporción de estadísticos estadounidenses con los que hablamos. Esto se refiere a las proporciones marginales de la tabla. Estos no se imprimen por defecto en R, pero podemos obtenerlos de esta manera (tenga en cuenta que, en este caso, son exactamente iguales):
margin.table(mat, 1)/sum(mat)
# BP
# Hi Normal
# 0.5 0.5
margin.table(mat, 2)/sum(mat)
# Nationality
# US UK
# 0.5 0.5
Como dije, el enfoque tradicional, discutido en muchos libros de texto, es determinar qué prueba usar en función de si los datos están "emparejados" o no. Pero esto es muy confuso, ¿esta tabla de contingencia está "emparejada"? Si comparamos la proporción con presión arterial alta entre los estadísticos de EE. UU. Y el Reino Unido, está comparando dos proporciones (aunque de la misma variable) medidas en diferentes grupos de personas. Por otro lado, si desea comparar la proporción con presión arterial alta con la proporción US, está comparando dos proporciones (aunque de diferentes variables) medidas en el mismo grupo de personas. Estos datos son ambos"emparejado" y "no emparejado" al mismo tiempo (aunque con respecto a diferentes aspectos de los datos). Esto lleva a la confusión. Para tratar de evitar esta confusión, argumento que debes pensar en términos de qué pregunta estás haciendo. Específicamente, si quieres saber:
- Si las variables son independientes: use la prueba de ji cuadrado.
- Si la proporción con presión arterial alta difiere según la nacionalidad: utilice la prueba z para la diferencia de proporciones.
- Si las proporciones marginales son las mismas: use la prueba de McNemar.
Alguien podría estar en desacuerdo conmigo aquí, argumentando que debido a que la tabla de contingencia no está "emparejada", la prueba de McNemar no puede usarse para probar la igualdad de las proporciones marginales y que la prueba de chi-cuadrado debería usarse en su lugar. Dado que este es el punto de discusión, intentemos ambos para ver si los resultados tienen sentido:
chisq.test(mat)
# Pearson's Chi-squared test with Yates' continuity correction
#
# data: mat
# X-squared = 357.21, df = 1, p-value < 2.2e-16
mcnemar.test(mat)
# McNemar's Chi-squared test
#
# data: mat
# McNemar's chi-squared = 0, df = 1, p-value = 1
50 % = 50 %
Probemos con otro ejemplo:
mat2 = as.table(rbind(c(195, 195),
c( 5, 5) ))
colnames(mat2) = c("US", "UK")
rownames(mat2) = c("Hi", "Normal")
names(dimnames(mat2)) = c("BP", "Nationality")
mat2
# Nationality
# BP US UK
# Hi 195 195
# Normal 5 5
margin.table(mat2, 1)/sum(mat2)
# BP
# Hi Normal
# 0.975 0.025
margin.table(mat2, 2)/sum(mat2)
# Nationality
# US UK
# 0.5 0.5
97.5 % ≫ 50 %
chisq.test(mat2)
# Pearson's Chi-squared test
#
# data: mat2
# X-squared = 0, df = 1, p-value = 1
mcnemar.test(mat2)
# McNemar's Chi-squared test with continuity correction
#
# data: mat2
# McNemar's chi-squared = 178.605, df = 1, p-value < 2.2e-16
Esta vez, la prueba de ji cuadrado da un valor p de 1, lo que significa que las proporciones marginales son tan iguales como pueden ser. Pero vimos que las proporciones marginales obviamente no son iguales, por lo que este resultado no tiene ningún sentido a la luz de nuestros datos. Por otro lado, la prueba de McNemar arroja un valor p de aproximadamente 0. En otras palabras, es extremadamente improbable obtener datos con proporciones marginales tan lejos de la igualdad como estos, si realmente son iguales en la población. Dado que nuestras proporciones marginales observadas están lejos de ser iguales, este resultado tiene sentido.
El hecho de que la prueba de ji al cuadrado arroje resultados que no tienen sentido dados nuestros datos sugiere que hay algo malo en usar la prueba de ji al cuadrado aquí. Por supuesto, el hecho de que la prueba de McNemar proporcionó resultados razonables no prueba que sea válida, puede que haya sido una coincidencia, pero la prueba de ji cuadrado es claramente incorrecta.
Veamos si podemos analizar el argumento de por qué la prueba de McNemar podría ser la correcta. Usaré un tercer conjunto de datos:
mat3 = as.table(rbind(c(190, 15),
c( 60, 135) ))
colnames(mat3) = c("US", "UK")
rownames(mat3) = c("Hi", "Normal")
names(dimnames(mat3)) = c("BP", "Nationality")
mat3
# Nationality
# BP US UK
# Hi 190 15
# Normal 60 135
margin.table(mat3, 1)/sum(mat3)
# BP
# Hi Normal
# 0.5125 0.4875
margin.table(mat3, 2)/sum(mat3)
# Nationality
# US UK
# 0.625 0.375
51.25 %62,5 %
prop.test(x=c(205, 250), n=c(400, 400))
# 2-sample test for equality of proportions with continuity correction
#
# data: c(205, 250) out of c(400, 400)
# X-squared = 9.8665, df = 1, p-value = 0.001683
# alternative hypothesis: two.sided
# 95 percent confidence interval:
# -0.18319286 -0.04180714
# sample estimates:
# prop 1 prop 2
# 0.5125 0.6250
(Para usar prop.test()
para probar las proporciones marginales, tuve que ingresar los números de 'éxitos' y el número total de 'pruebas' manualmente, pero puedes ver desde la última línea de la salida que las proporciones son correctas). Esto sugiere que es poco probable que obtenga proporciones marginales tan lejos de la igualdad si fueran realmente iguales, dada la cantidad de datos que tenemos.
¿Es válida esta prueba? Aquí hay dos problemas: la prueba cree que tenemos 800 datos, cuando en realidad solo tenemos 400. Esta prueba tampoco tiene en cuenta que estas dos proporciones no son independientes, en el sentido de que se midieron en las mismas personas.
% BP alto: 190 + 15400% EE. UU .: 190 + 60400
1904001560 60π= .5bajo el nulo. Esa fue la idea de McNemar. De hecho, la prueba de McNemar es esencialmente una prueba binomial de si las observaciones tienen la misma probabilidad de caer en esas dos celdas:
binom.test(x=15, n=(15+60))
# Exact binomial test
#
# data: 15 and (15 + 60)
# number of successes = 15, number of trials = 75, p-value = 1.588e-07
# alternative hypothesis: true probability of success is not equal to 0.5
# 95 percent confidence interval:
# 0.1164821 0.3083261
# sample estimates:
# probability of success
# 0.2
En esta versión, solo se utilizan las observaciones informativas y no se cuentan dos veces. El valor p aquí es mucho más pequeño, 0.0000001588, que a menudo es el caso cuando se tiene en cuenta la dependencia en los datos. Es decir, esta prueba es más poderosa que la prueba z de diferencia de proporciones. Podemos ver además que la versión anterior es esencialmente la misma que la prueba de McNemar:
mcnemar.test(mat3, correct=FALSE)
# McNemar's Chi-squared test
#
# data: mat3
# McNemar's chi-squared = 27, df = 1, p-value = 2.035e-07
Si la no identidad es confusa, la prueba de McNemar típicamente, y en R, cuadra el resultado y lo compara con la distribución de chi-cuadrado, que no es una prueba exacta como el binomio anterior:
(15-60)^2/(15+60)
# [1] 27
1-pchisq(27, df=1)
# [1] 2.034555e-07
Por lo tanto, cuando desea verificar que las proporciones marginales de una tabla de contingencia sean iguales, la prueba de McNemar (o la prueba binomial exacta calculada manualmente) es correcta. Utiliza solo la información relevante sin usar ilegalmente ningún dato dos veces. No solo 'sucede' para producir resultados que tengan sentido de los datos.
Sigo creyendo que intentar averiguar si una tabla de contingencia está "emparejada" no es útil. Sugiero usar la prueba que coincida con la pregunta que está haciendo de los datos.