Relação entre o teste de McNemar e a regressão logística condicional

14

Estou interessado na modelagem de dados de resposta binária em observações emparelhadas. Nosso objetivo é fazer inferência sobre a eficácia de uma intervenção pré-pós em um grupo, potencialmente ajustando-se a várias covariáveis ​​e determinando se há modificação de efeito por um grupo que recebeu treinamento particularmente diferente como parte de uma intervenção.

Dados fornecidos do seguinte formulário:

id phase resp
1  pre   1
1  post  0
2  pre   0
2  post  0
3  pre   1
3  post  0

E uma tabela de contingência de informações de resposta emparelhadas:2×2

PreCorrectIncorrectPostCorrectabIncorrectcd

Estamos interessados ​​no teste de hipótese: .H0:θc=1

O teste de McNemar fornece: em (assintoticamente). Este é intuitivo porque, sob a hipótese nula, seria de esperar que uma proporção igual dos pares discordantes ( b e c ) estar favorecendo um efeito positivo ( b ) ou um efeito negativo ( c ). Com a probabilidade de definição de caso positivo definido p = \ frac {b} {b + c} e n = b + c . As chances de observar um par discordante positivo é \ frac {p} {1-p} = \ frac {b} {c} .Q=(bc)2b+cχ12H0bcbcp=bb+cn=b+cp1p=bc

Por outro lado, a regressão logística condicional usa uma abordagem diferente para testar a mesma hipótese, maximizando a probabilidade condicional:

L(X;β)=j=1nexp(βXj,2)exp(βXj,1)+exp(βXj,2)

onde .exp(β)=θc

Então, qual é a relação entre esses testes? Como alguém pode fazer um teste simples da tabela de contingência apresentada anteriormente? Olhando para a calibração dos valores-p das abordagens de clogit e McNemar sob o nulo, você pensaria que eles eram completamente independentes!

library(survival)
n <- 100
do.one <- function(n) {
  id <- rep(1:n, each=2)
  ph <- rep(0:1, times=n)
  rs <- rbinom(n*2, 1, 0.5)
  c(
    'pclogit' = coef(summary(clogit(rs ~ ph + strata(id))))[5],
    'pmctest' = mcnemar.test(table(ph,rs))$p.value
  )
}

out <- replicate(1000, do.one(n))
plot(t(out), main='Calibration plot of pvalues for McNemar and Clogit tests', 
  xlab='p-value McNemar', ylab='p-value conditional logistic regression')

insira a descrição da imagem aqui

AdamO
fonte
É interessante! Os dois métodos devem ter resultados semelhantes de acordo com a teoria. Se eu entendi a pergunta corretamente, a hipótese nula do teste de McNemar é , enquanto a hipótese nula do teste de regressão logística condicional é a razão de chances dentro de um estrato. pb=pcad/bc=1
Randel
Parece que me lembro que é possível parametrizar o teste de McNemar como um teste de odds ratio, então me pergunto como alguém escreveria a probabilidade (probabilidade condicional?) Para esse teste.
19413 AdamO
Não tenho certeza se você quer dizer a versão exata do teste de McNemar. Breslow e Day (1980) , p. 164-166 e pacote exact2x2 podem ser referências.
21413 Randel

Respostas:

4

Desculpe, é um problema antigo, me deparei com isso por acaso.

Há um erro no seu código para o teste mcnemar. Tente com:

n <- 100
do.one <- function(n) {
  id <- rep(1:n, each=2)
  case <- rep(0:1, times=n)
  rs <- rbinom(n*2, 1, 0.5)
  c(
    'pclogit' = coef(summary(clogit(case ~ rs + strata(id))))[5],
    'pmctest' = mcnemar.test(table(rs[case == 0], rs[case == 1]))$p.value
  )
}

out <- replicate(1000, do.one(n))

insira a descrição da imagem aqui

eusebe
fonte
Uau! Obrigado e bem-vindo à comunidade. Só para esclarecer, McNemar trabalha com pares discordantes (?). Esses pares são eliminados do clogit? Não vejo como o id está envolvido no cálculo dos resultados do mcnemar. Talvez gerar uma correlação nelas ajudasse a elucidar o que o clogit está fazendo.
26414 AdamO
2

Existem 2 modelos estatísticos concorrentes. Modelo # 1 (hipótese nula, McNemar): probabilidade correta para incorreta = probabilidade de incorreta para corrigir = 0,5 ou equivalente b = c. Modelo # 2: probabilidade correta para incorreta <probabilidade de incorreta para corrigir ou equivalente b> c. Para o modelo nº 2, usamos o método de máxima verossimilhança e a regressão logística para determinar os parâmetros do modelo que representam o modelo 2. Os métodos estatísticos parecem diferentes porque cada método reflete um modelo diferente.

AMM
fonte
Você está dizendo que o clogit não é um teste bicaudal?
Adamo