Teste exato de Fisher em dados pareados

9

Dado casos com câncer de pulmão e controles correspondentes (sem câncer de pulmão) (correspondência baseada em idade, sexo, etc.). Para tentar encontrar evidências entre o efeito do fumo no câncer de pulmão, usei o teste exato de Fisher na tabela de contingência. No entanto, isso não levou em consideração que os controles e casos foram correspondidos. 404040

Então, eu me perguntei se existe uma maneira de usar o teste exato de Fisher que leva em consideração a correspondência entre os dois grupos.

Gert
fonte

Respostas:

8

Você precisa do teste de McNemar ( http://en.wikipedia.org/wiki/McNemar%27s_test , http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3346204/ ). A seguir, um exemplo:

1300 pts e 1300 controles correspondentes são estudados. O status de fumante é apresentado da seguinte forma:

             Normal   
           |no  |yes|
Cancer|No  |1000|40 |
      |Yes |200 |60 |

Cada entrada da tabela mostra informações sobre um CASE-CONTROL PAIR: 1000 significa em 1000 pares de casos-controle, nem um fumante. 40 é o número de pares caso-controle em que o controle era fumante e o paciente com câncer não, e assim por diante. O código R a seguir pode ser usado para gerar esta tabela e fazer o teste de McNemar.

mat = as.table(rbind(c(1000, 40), c( 200, 60) ))
colnames(mat) <- rownames(mat) <- c("Nonsmoker", "Smoker")
names(dimnames(mat)) = c("Cancer", "Normal")
mat
#                  Normal
#              Nonsmoker Smoker
# Cancer
#  Nonsmoker      1000     40
#  Smoker          200     60


mcnemar.test(mat)

#        McNemar's Chi-squared test with continuity correction
#
#data:  mat
#McNemar's chi-squared = 105.34, df = 1, p-value < 2.2e-16

O teste de McNemar também é usado para avaliar o efeito de uma intervenção em uma variável de resultado binário. O par de resultados antes e depois é apresentado e testado como acima.

Edit: exemplo de extensão fornecido por @gung, se o status de fumante estiver listado no mydf do quadro de dados da seguinte maneira:

pairID  cancer  control
1       1       1
2       1       1
3       1       0
...

O teste de McNemars pode ser realizado com os seguintes comandos R:

> tt = with(mydf, table(cancer, control))
> tt
      control
cancer 0 1
     0 5 1
     1 3 2

> mcnemar.test(tt)

        McNemar`s Chi-squared test with continuity correction

data:  tt
McNemar`s chi-squared = 0.25, df = 1, p-value = 0.6171
rnso
fonte
Qual teste você usa para vários controles por caso, digamos 10 controles por caso?
EXpander # 13/15
Isso mereceria uma pergunta e discussão separadas. Acho que é possível emparelhar cada caso com a média de seus controles e, em seguida, o teste de McNemar.
rnso
5

Você está certo de que o teste exato de Fisher é inadequado para seus dados. Você precisará reformular sua tabela de contingência. A nova tabela será para pares e , portanto, parecerá ter metade do número de dados representados (no seu caso, 40 em vez de 80). Por exemplo, imagine que seus dados tenham esta aparência (cada conjunto de assuntos emparelhados está em sua própria linha e 1indica um fumante):

cancer  control
1       1
1       1
1       0
1       0
1       0
0       1
0       0
0       0
0       0
0       0
0       0

Então sua tabela de contingência antiga pode ter sido:

       cancer  control
smoker 5       3
non    6       8

Sua nova tabela de contingência ficará assim:

            control
cancer    smoker  non           
  smoker  2       3
  non     1       5

A primeira tabela de contingência soma 22 (o número total de sujeitos em seu estudo), mas a segunda tabela de contingência soma 11 (o número de pares correspondentes).

Com seus dados representados dessa maneira, o que você está interessado é se as proporções marginais são as mesmas. O teste para isso é o teste de McNemar . Eu expliquei o teste de McNemar aqui e aqui .

- Reinstate Monica
fonte
11
Observe que o teste de McNemar para dados dicotômicos é equivalente ao teste de sinal. Portanto, o OP pode usar teste de sinal (com permutação ou teste de significância de Monte Carlo, se necessário).
ttnphns
11
@ttnphns, discuto isso nos tópicos vinculados, onde explico o teste de McNemar em detalhes.
gung - Restabelece Monica
1

não deve ser necessário usar um teste emparelhado. a correspondência das populações verifica que a distribuição de covaraítas (idade, ...) é a mesma nas duas populações para que não "distorça" a imagem.

o teste compara as médias das populações, de modo que não é necessário emparelhar indivíduos. isso é necessário apenas para medições "repetidas", por exemplo, comparando menas antes e após o tratamento da mesma população.

tikacp
fonte
0

Sim e não:

provavelmente o seu caso se enquadra no caso de Pearce (2015) : o ponto no artigo é que as variáveis ​​usadas para selecionar o controle devem ser controladas no estudo e não no teste. Isso pode ser difícil devido ao N = 80.

Espero que esta ajuda :)

Giovanni Iacopetti
fonte