Związek między testem McNemara a warunkową regresją logistyczną

14

Interesuje mnie modelowanie danych odpowiedzi binarnej w sparowanych obserwacjach. Naszym celem jest wnioskowanie o skuteczności interwencji poprzedzającej post w grupie, potencjalnie dostosowując się do kilku zmiennych towarzyszących i ustalając, czy istnieje modyfikacja efektu przez grupę, która przeszła szczególnie różne szkolenie w ramach interwencji.

Biorąc pod uwagę dane o następującej formie:

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

Oraz tablica zdarzeń 2)×2) informacji o sparowanej odpowiedzi:

PrzedPoprawnyBłędnyPocztaPoprawnyzabBłędnydore

Interesuje nas test hipotezy: .H.0:θdo=1

Test McNemara daje: poniżejH0(asymptotycznie). Jest to intuicyjne, ponieważ poniżej wartości zerowej spodziewalibyśmy się, że równa część niezgodnych par (bic) będzie sprzyjać pozytywnemu efektowi (Q=(b-do)2)b+doχ12)H.0bdo ) lub negatywnemu efektowi ( c ). Przy zdefiniowanym prawdopodobieństwie pozytywnej definicji przypadkubdo , an=b+cp=bb+don=b+do . Szanse na zaobserwowanie dodatniej niezgodnej pary wynoszą .p1-p=bdo

Z drugiej strony warunkowa regresja logistyczna wykorzystuje inne podejście do testowania tej samej hipotezy, maksymalizując prawdopodobieństwo warunkowe:

L.(X;β)=jot=1nexp(βXjot,2))exp(βXjot,1)+exp(βXjot,2))

gdzie .exp(β)=θdo

Jaki jest zatem związek między tymi testami? Jak wykonać prosty test tabeli awaryjności przedstawionej wcześniej? Patrząc na kalibrację wartości p z clogit i podejść McNemara poniżej zera, można by pomyśleć, że były one całkowicie niezwiązane!

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

wprowadź opis zdjęcia tutaj

AdamO
źródło
pb=pcad/bc=1
Wydaje mi się, że pamiętam, że można sparametryzować test McNemara jako test ilorazu szans, więc zastanawiam się, w jaki sposób można by napisać prawdopodobieństwo (prawdopodobieństwo warunkowe?) Dla tego testu.
AdamO,
Nie jestem pewien, czy masz na myśli dokładną wersję testu McNemara. Breslow i Day (1980) , s. 1 164-166 i pakiet exact2x2 mogą być referencjami.
Randel

Odpowiedzi:

4

Przepraszamy, to stary problem, natknąłem się na to przez przypadek.

W kodzie jest błąd w teście Mcnemar. Spróbuj z:

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

wprowadź opis zdjęcia tutaj

eusebe
źródło
Łał! Dziękujemy i witamy w społeczności. Dla wyjaśnienia, McNemar działa na niezgodnych parach dopasowanych (?) Czy takie pary są usuwane z zapchania? Nie rozumiem, w jaki sposób id bierze udział w obliczaniu wyników Mcnemar. Być może wygenerowanie w nich korelacji pomogłoby wyjaśnić, co robi clogit.
AdamO,
2

Istnieją 2 konkurujące modele statystyczne. Model nr 1 (hipoteza zerowa, McNemar): prawdopodobieństwo poprawne do niepoprawnego = prawdopodobieństwo niepoprawnego do poprawienia = 0,5 lub równoważne b = c. Model # 2: prawdopodobieństwo poprawne do nieprawidłowego <prawdopodobieństwo niepoprawnego do poprawnego lub równoważne b> c W przypadku modelu nr 2 używamy metody największej wiarygodności i regresji logistycznej, aby określić parametry modelu reprezentujące model 2. Metody statystyczne wyglądają inaczej, ponieważ każda metoda odzwierciedla inny model.

AMM
źródło
Mówisz, że clogit nie jest testem dwustronnym?
AdamO