El Test de McNemar es una prueba estadística no paramétrica fundamental en la investigación clínica y epidemiológica. Se utiliza para analizar la diferencia entre proporciones cuando los datos provienen de muestras pareadas.
Su principal aplicación es en diseños de tipo: - Antes y después: Se mide una característica en los mismos sujetos antes y después de una intervención (ej. un tratamiento, un programa educativo). - Casos y controles pareados: Cada caso con una enfermedad se empareja con uno o más controles sanos que comparten características clave (ej. edad, sexo). - Concordancia diagnóstica: Se compara la clasificación de dos pruebas diagnósticas aplicadas a los mismos individuos.
La pregunta clave que responde el test es: ¿Ha ocurrido un cambio o una diferencia significativa en la proporción de una característica dicotómica entre las dos mediciones/condiciones pareadas?
A diferencia del test Chi-cuadrado de independencia, que compara proporciones en grupos independientes, el Test de McNemar se enfoca en los pares discordantes. Estos son los sujetos que cambian de categoría entre la primera y la segunda medición.
Los resultados se organizan en una tabla de contingencia 2x2 de la siguiente manera:
| Condición 2: Positivo (+) | Condición 2: Negativo (-) | Total (Condición 1) | |
|---|---|---|---|
| Condición 1: Positivo (+) | a | b | a + b |
| Condición 1: Negativo (-) | c | d | c + d |
| Total (Condición 2) | a + c | b + d | n |
P(b) = P(c).P(b) ≠ P(c)).El estadístico de prueba se calcula únicamente con los pares discordantes (b y c) y sigue una distribución Chi-cuadrado (χ²) con 1 grado de libertad.
Fórmula (con corrección de continuidad de Yates):
\[\chi^2 = \frac{(|b - c| - 1)^2}{b +
c}\] La corrección -1 se usa para mejorar la
aproximación cuando el número de pares discordantes (b+c) es
pequeño.
Un equipo de psicólogos clínicos quiere evaluar la eficacia de una nueva terapia breve para tratar el insomnio. Para ello, reclutan a 120 pacientes. Se evalúa la presencia de insomnio clínico (Sí/No) en cada paciente antes de iniciar la terapia y después de 6 semanas de tratamiento.
Objetivo: Determinar si la terapia produjo un cambio estadísticamente significativo en la proporción de pacientes con insomnio.
| Después: Sin Insomnio | Después: Con Insomnio | Total (Antes) | |
|---|---|---|---|
| Antes: Con Insomnio | 55 (c) | 30 (a) | 85 |
| Antes: Sin Insomnio | 15 (d) | 20 (b) | 35 |
| Total (Después) | 70 | 50 | 120 |
Identificamos los pares discordantes: - b = 20 (Pacientes que empeoraron: pasaron de “Sin Insomnio” a “Con Insomnio”) - c = 55 (Pacientes que mejoraron: pasaron de “Con Insomnio” a “Sin Insomnio”)
Aplicamos la fórmula: \[\chi^2 = \frac{(|20 - 55| - 1)^2}{20 + 55}\] \[\chi^2 = \frac{(|-35| - 1)^2}{75}\] \[\chi^2 = \frac{(35 - 1)^2}{75}\] \[\chi^2 = \frac{34^2}{75}\] \[\chi^2 = \frac{1156}{75} \approx 15.41\]
Comparamos nuestro valor calculado (15.41) con el valor crítico de la distribución Chi-cuadrado con 1 grado de libertad para un nivel de significancia α = 0.05. El valor crítico es 3.84.
Dado que 15.41 > 3.84, rechazamos la hipótesis nula.
Conclusión: Existe evidencia estadística suficiente para concluir que la terapia cognitivo-conductual produjo un cambio significativo en la presencia de insomnio. El número de pacientes que mejoraron (55) es significativamente mayor que el número de pacientes que empeoraron (20).
Ahora, realizaremos el mismo análisis en R.
El paso más importante es construir la matriz correctamente. La
función matrix() en R se llena por columnas por
defecto.
# Creamos la matriz 2x2 con los datos del ejemplo
# La estructura es:
# Después(Sí) Después(No)
# Antes(Sí) a b
# Antes(No) c d
# Pero en nuestro problema, "Sí" es "Con Insomnio" y "No" es "Sin Insomnio"
# Lo que R espera:
# Después(+) Después(-)
# Antes(+) 30 55
# Antes(-) 20 15
# Lo ingresamos por columnas: c(a, c, b, d) -> c(30, 20, 55, 15)
datos_insomnio <- matrix(c(30, 20, 55, 15),
nrow = 2,
dimnames = list(
"Antes" = c("Con Insomnio", "Sin Insomnio"),
"Después" = c("Con Insomnio", "Sin Insomnio")
))
# Imprimimos la matriz para verificar que esté correcta
cat("Tabla de Contingencia en R:\n")## Tabla de Contingencia en R:
## Después
## Antes Con Insomnio Sin Insomnio
## Con Insomnio 30 55
## Sin Insomnio 20 15
Usamos la función mcnemar.test(). Por defecto, aplica la
corrección de continuidad.
# Ejecutar el test
resultado_test <- mcnemar.test(datos_insomnio)
# Mostrar los resultados
cat("\nResultados del Test de McNemar en R:\n")##
## Resultados del Test de McNemar en R:
##
## McNemar's Chi-squared test with continuity correction
##
## data: datos_insomnio
## McNemar's chi-squared = 15.413, df = 1, p-value = 8.638e-05
Como el p-valor (≈ 0.000086) es mucho menor que el nivel de significancia estándar (α = 0.05), rechazamos la hipótesis nula. La conclusión es la misma: el cambio observado es estadísticamente significativo. La terapia fue efectiva en reducir el insomnio en la muestra estudiada.