Beziehung zwischen McNemars Test und bedingter logistischer Regression

14

Ich interessiere mich für die Modellierung von binären Antwortdaten in gepaarten Beobachtungen. Wir wollen Rückschlüsse auf die Wirksamkeit einer Prä-Post-Intervention in einer Gruppe ziehen, um möglicherweise mehrere Kovariaten auszugleichen und festzustellen, ob eine Gruppe, die im Rahmen einer Intervention ein besonders unterschiedliches Training erhalten hat, eine Effektmodifikation durchführt.

Angegebene Daten der folgenden Form:

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

Und eine Kontingenztabelle mit gepaarten Antwortinformationen:2×2

VorRichtigFalschPostRichtigeinbFalschcd

Uns interessiert der Hypothesentest: .H0:θc=1

McNemar-Test ergibt: unterH0(asymptotisch). Dies ist intuitiv, da wir unter der Null erwarten würden, dass ein gleiches Verhältnis der nicht übereinstimmenden Paare (bundc) einen positiven Effekt (b) oder einen negativen Effekt (c)begünstigt. Mit der Wahrscheinlichkeit einer positiven Falldefinition istp=bdefiniertQ.=(b-c)2b+cχ12H0bcbc undn=b+c. Die Wahrscheinlichkeit, ein positives nicht übereinstimmendes Paar zu beobachten, istpp=bb+cn=b+c .p1-p=bc

Andererseits verwendet die bedingte logistische Regression einen anderen Ansatz, um dieselbe Hypothese zu testen, indem die bedingte Wahrscheinlichkeit maximiert wird:

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

wobei .exp(β)=θc

Wie hängen diese Tests zusammen? Wie kann man einen einfachen Test der oben dargestellten Kontingenztabelle durchführen? Wenn Sie die Kalibrierung von p-Werten aus Clogit und McNemars Ansätzen unter dem Nullpunkt betrachten, würden Sie denken, dass sie völlig unabhängig sind!

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

Bildbeschreibung hier eingeben

AdamO
quelle
pb=pcad/bc=1
Ich erinnere mich anscheinend, dass man den McNemar-Test als Test eines Odds Ratio parametrisieren kann, also frage ich mich, wie man die Wahrscheinlichkeit (bedingte Wahrscheinlichkeit?) Für diesen Test aufschreiben würde.
AdamO
Ich bin mir nicht sicher, ob Sie die genaue Version von McNemar's Test meinen. Breslow und Day (1980) , p. 164-166 und Paket exact2x2 können Referenzen sein.
Randel

Antworten:

4

Entschuldigung, es ist ein altes Problem, ich bin zufällig darauf gestoßen.

In Ihrem Code ist ein Fehler für den mcnemar-Test aufgetreten. Versuche es mit:

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

Bildbeschreibung hier eingeben

Eusebe
quelle
Beeindruckend! Danke und willkommen in der Community. Nur um zu verdeutlichen, arbeitet McNemar an nicht übereinstimmenden Paaren (?). Sind solche Paare aus dem Clogit herausgefallen? Ich verstehe nicht, wie id an der Berechnung der mcnemar-Ergebnisse beteiligt ist. Vielleicht hilft es, eine Korrelation in diesen zu erzeugen, um herauszufinden, was Clogit tut.
AdamO
2

Es gibt zwei konkurrierende statistische Modelle. Modell # 1 (Nullhypothese, McNemar): Wahrscheinlichkeit richtig bis falsch = Wahrscheinlichkeit falsch bis richtig = 0,5 oder Äquivalent b = c. Modell 2: Wahrscheinlichkeit richtig bis falsch <Wahrscheinlichkeit falsch bis richtig oder gleichwertig b> c. Für Modell 2 verwenden wir die Maximum-Likelihood-Methode und die logistische Regression, um die Modellparameter für Modell 2 zu bestimmen. Statistische Methoden sehen unterschiedlich aus, da jede Methode ein anderes Modell widerspiegelt.

AMM
quelle
Sie sagen, Clogit ist kein zweiseitiger Test?
AdamO