Teste de McNemar
O teste de McNemar compara duas medidas binárias feitas nos mesmos sujeitos, antes/depois, dois avaliadores, dois testes diagnósticos, diferentemente do teste qui-quadrado de independência, que assume grupos independentes. É o equivalente para dados categóricos do teste t pareado: ambos aproveitam o pareamento para obter um teste mais poderoso e mais apropriado do que tratar as duas medidas como amostras independentes.
Por que não o teste qui-quadrado comum?
Com dados pareados, um teste qui-quadrado de independência padrão estaria errado. Ele assume que os dois conjuntos de observações são independentes, o que é falso por design aqui, são literalmente as mesmas 100 pessoas pesquisadas duas vezes. Aplicar qui-quadrado a dados pareados como se fossem duas amostras independentes ignora a correlação dentro de cada par e dá um resultado inválido.
O layout 2x2 para dados binários pareados
As respostas antes/depois de cada sujeito caem exatamente em uma de quatro células, e apenas duas delas realmente importam:
| Depois: Sim | Depois: Não | |
|---|---|---|
| Antes: Sim | \(a\) | \(b\) |
| Antes: Não | \(c\) | \(d\) |
O teste de McNemar usa apenas os pares discordantes, \(b\) (mudou de Sim para Não) e \(c\) (mudou de Não para Sim). Os pares concordantes \(a\) e \(d\) (pessoas que não mudaram) não trazem nenhuma informação sobre se a mudança é assimétrica, então eles saem completamente do teste.
\[H_0: b = c \text{ (na popula\c{c}\~{a}o)} \qquad H_1: b \neq c\]
Estatística do teste, com correção de continuidade (o padrão usual):
\[\chi^2 = \frac{(|b-c|-1)^2}{b+c}\]
Sem correção de continuidade:
\[\chi^2 = \frac{(b-c)^2}{b+c}\]
Sob \(H_0\), ambas as versões seguem uma distribuição \(\chi^2\) com 1 grau de liberdade.
Exemplo resolvido
Uma pesquisa antes/depois com os mesmos eleitores é o cenário clássico em que tratar as duas medidas como independentes distorceria gravemente o que realmente mudou:
Os mesmos 100 eleitores são pesquisados antes e depois de assistir a um debate, perguntando se apoiam o Candidato A:
| Depois: Sim | Depois: Não | Total | |
|---|---|---|---|
| Antes: Sim | 45 | 25 | 70 |
| Antes: Não | 5 | 25 | 30 |
| Total | 50 | 50 | 100 |
Pares discordantes: \(b=25\) (apoiava antes, se opôs depois, perdeu apoio) e \(c=5\) (se opunha antes, apoiou depois, ganhou apoio). Os 45 apoiadores constantes e os 25 opositores constantes, as células concordantes \(a\) e \(d\), não têm nenhum papel no teste em si.
Sem correção:
\[\chi^2 = \frac{(25-5)^2}{25+5} = \frac{400}{30} = 13{,}333\]
\(gl=1\), \(p = 0{,}000261\).
Com correção de continuidade:
\[\chi^2 = \frac{(|25-5|-1)^2}{30} = \frac{361}{30} = 12{,}033\]
\(gl=1\), \(p = 0{,}000523\).
Decisão: rejeitamos \(H_0\) em qualquer nível convencional, qualquer que seja a versão usada. O debate produziu uma mudança líquida significativa no apoio, especificamente um deslocamento contra o Candidato A, já que muito mais eleitores migraram de apoiar para se opor (25) do que o inverso (5), ainda que os totais marginais (70 vs. 50 de apoio antes, mas apenas 50 vs. 50 depois) pudessem, à primeira vista, sugerir algo menos dramático do que o que o pareamento revela.

Quando há poucos pares discordantes
Como todo o teste se apoia apenas em \(b\) e \(c\), uma contagem discordante pequena quebra a aproximação qui-quadrado da mesma forma que ocorre com o teste qui-quadrado comum:
⚠️ O teste de McNemar precisa de pares discordantes suficientes para ser válido
Com um número pequeno de pares discordantes (regra prática comum: \(b+c < 25\)), a aproximação qui-quadrado é pouco confiável, assim como o problema de frequências esperadas pequenas do teste qui-quadrado comum. Nesse caso, use a versão binomial exata: sob \(H_0\), \(b \sim \text{Binomial}(b+c, 0{,}5)\), e o valor-p exato vem diretamente da distribuição binomial em vez da aproximação qui-quadrado. mcnemar.test() não fornece essa versão exata diretamente, use binom.test(b, b+c, p = 0.5) sobre as contagens discordantes quando \(b+c\) for pequeno.
Estendendo além de 2 categorias: o teste de Stuart-Maxwell
Quando a variável pareada tem mais de duas categorias, não apenas Sim/Não, a generalização do teste de McNemar é o teste de Stuart-Maxwell, ou o teste de simetria de Bowker para o caso geral \(r \times r\). Ele testa se a tabela completa é simétrica em relação à sua diagonal. Isso não é abordado em profundidade aqui, mas vale saber que o nome existe para quando um resultado pareado tem três ou mais categorias.
Executando o teste em R
mcnemar.test() recebe a tabela 2x2 diretamente, e a versão binomial exata acima precisa apenas das duas contagens discordantes:
tab <- matrix(c(45, 25, 5, 25), nrow = 2, byrow = TRUE,
dimnames = list(Before = c("Yes","No"), After = c("Yes","No")))
mcnemar.test(tab) # with continuity correction (default)
mcnemar.test(tab, correct = FALSE)
# Exact binomial version for small discordant counts
binom.test(25, 25 + 5, p = 0.5)
💡 McNemar vs. qui-quadrado vs. teste t pareado: qual usar
Dois grupos independentes, resultado categórico: use o teste qui-quadrado de independência. Mesmos sujeitos medidos duas vezes, resultado categórico/binário: use o teste de McNemar, este post. Mesmos sujeitos medidos duas vezes, resultado contínuo/numérico: use o teste t pareado. O fio comum entre os três: sempre que as observações forem pareadas ou combinadas por design, use um método que aproveite esse pareamento, nunca trate dados pareados como se viessem de grupos independentes.