Relazione tra il test di McNemar e la regressione logistica condizionale


14

Sono interessato alla modellazione dei dati di risposta binaria in osservazioni accoppiate. Il nostro obiettivo è quello di dedurre l'efficacia di un intervento pre-post in un gruppo, adattandoci potenzialmente per diverse covariate e determinando se vi sia una modifica dell'effetto da parte di un gruppo che ha ricevuto una formazione particolarmente diversa nell'ambito di un intervento.

Dati dati del seguente modulo:

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

E una tabella di contingenza informazioni di risposta accoppiate:2×2

PreCorrettascorrettoInviareCorrettaun'Bscorrettocd

Siamo interessati al test di ipotesi: .H0:θc=1

Il test di McNemar dà: sottoH0(asintoticamente). Questo è intuitivo perché, sotto il nulla, ci aspetteremmo che una proporzione uguale delle coppie discordanti (bec) favorisca un effetto positivo (b) o un effetto negativo (c). Con la probabilità di definizione del caso positivo definitap=bQ=(B-c)2B+c~χ12H0BcBc en=b+c. La probabilità di osservare una coppia discordante positiva èpp=BB+cn=B+c .p1-p=Bc

D'altra parte, la regressione logistica condizionale utilizza un approccio diverso per testare la stessa ipotesi, massimizzando la probabilità condizionale:

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

dove .exp(β)=θc

Quindi, qual è la relazione tra questi test? Come si può fare un semplice test della tabella di contingenza presentata in precedenza? Guardando la calibrazione dei valori di p da clogit e gli approcci di McNemar sotto zero, penseresti che fossero completamente indipendenti!

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')

inserisci qui la descrizione dell'immagine


pB=pcun'd/Bc=1

Mi sembra di ricordare che si può parametrizzare il test di McNemar come test di un odds ratio, quindi mi chiedo come si scriverà la probabilità (probabilità condizionale?) Per quel test.
AdamO,

Non sono sicuro se intendi la versione esatta di McNemar's Test. Breslow and Day (1980) , pag. 164-166 e il pacchetto exact2x2 possono essere riferimenti.
Randel,

Risposte:


4

Scusa, è un vecchio problema, mi sono imbattuto per caso.

C'è un errore nel codice per il test mcnemar. Prova con:

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))

inserisci qui la descrizione dell'immagine


Wow! Grazie e benvenuto nella community. Giusto per chiarire, McNemar lavora su coppie abbinate discordanti (?) Tali coppie vengono eliminate dal clogit? Non vedo come id sia coinvolto nel calcolo dei risultati di mcnemar. Forse generare una correlazione in questi potrebbe aiutare a chiarire cosa sta facendo il clogit.
AdamO,

2

Esistono 2 modelli statistici concorrenti. Modello n. 1 (ipotesi nulla, McNemar): probabilità da corretta a errata = probabilità da errata a corretta = 0,5 o equivalente b = c. Modello n. 2: probabilità da corretta a errata <probabilità da errata a corretta o equivalente b> c. Per il modello n. 2 utilizziamo il metodo della massima verosimiglianza e la regressione logistica per determinare i parametri del modello che rappresentano il modello 2. I metodi statistici sembrano diversi perché ogni metodo riflette un modello diverso.


Stai dicendo che il clogit non è un test a due code?
AdamO,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.