Dlaczego istnieje różnica pomiędzy ręcznym obliczeniem regresji logistycznej 95% przedziału ufności a użyciem funkcji confint () w R?


34

Drodzy wszyscy - zauważyłem coś dziwnego, czego nie potrafię wyjaśnić, prawda? Podsumowując: ręczne podejście do obliczania przedziału ufności w modelu regresji logistycznej oraz funkcja R confint()dają różne wyniki.

Przechodziłem przez regresję logistyczną stosowaną przez Hosmer & Lemeshow (2. edycja). W trzecim rozdziale znajduje się przykład obliczenia ilorazu szans i 95% przedziału ufności. Za pomocą R mogę łatwo odtworzyć model:

Call:
glm(formula = dataset$CHD ~ as.factor(dataset$dich.age), family = "binomial")

Deviance Residuals: 
   Min      1Q  Median      3Q     Max  
-1.734  -0.847  -0.847   0.709   1.549  

Coefficients:
                             Estimate Std. Error z value Pr(>|z|)    
(Intercept)                   -0.8408     0.2551  -3.296  0.00098 ***
as.factor(dataset$dich.age)1   2.0935     0.5285   3.961 7.46e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 136.66  on 99  degrees of freedom
Residual deviance: 117.96  on 98  degrees of freedom
AIC: 121.96

Number of Fisher Scoring iterations: 4

Kiedy jednak obliczam przedziały ufności parametrów, otrzymuję inny przedział niż podany w tekście:

> exp(confint(model))
Waiting for profiling to be done...
                                 2.5 %     97.5 %
(Intercept)                  0.2566283  0.7013384
as.factor(dataset$dich.age)1 3.0293727 24.7013080

Hosmer i Lemeshow sugerują następującą formułę:

mi[β^1±z1-α/2)×SE^(β^1)]

i obliczają przedział ufności dla as.factor(dataset$dich.age)1(2,9; 22,9).

Wydaje się to proste w R:

# upper CI for beta
exp(summary(model)$coefficients[2,1]+1.96*summary(model)$coefficients[2,2])
# lower CI for beta
exp(summary(model)$coefficients[2,1]-1.96*summary(model)$coefficients[2,2])

daje taką samą odpowiedź jak książka.

Jednak jakieś przemyślenia na temat tego, dlaczego confint()wydaje się dawać różne wyniki? Widziałem wiele przykładów ludzi confint().


1
Czy miałbyś coś przeciwko dodaniu dokładnego odniesienia do literatury Hosmer & Lemeshow? Od dłuższego czasu szukałem sugestii w ich puplications i książkach, ale jeszcze jej nie znalazłem.
— DavidR

Odpowiedzi:


36

Po pobraniu danych z towarzyszącej strony internetowej , oto jak bym to zrobił:

chdage <- read.table("chdage.dat", header=F, col.names=c("id","age","chd"))
chdage$aged <- ifelse(chdage$age>=55, 1, 0)
mod.lr <- glm(chd ~ aged, data=chdage, family=binomial)
summary(mod.lr)

Wartości 95% CI oparte na prawdopodobieństwie profilu są uzyskiwane z

require(MASS)
exp(confint(mod.lr))

Jest to często ustawienie domyślne, jeśli MASSpakiet jest automatycznie ładowany. W tym przypadku rozumiem

                2.5 %     97.5 %
(Intercept) 0.2566283  0.7013384
aged        3.0293727 24.7013080

Teraz, gdybym chciał porównać z 95% CI CI (opartymi na asymptotycznej normalności), takim jak ten, który obliczyłeś ręcznie, użyłbym confint.default()zamiast tego; to daje

                2.5 %     97.5 %
(Intercept) 0.2616579  0.7111663
aged        2.8795652 22.8614705

Wartości CI Wald są dobre w większości sytuacji, chociaż oparte na prawdopodobieństwie profilu mogą być przydatne w przypadku złożonych strategii próbkowania. Jeśli chcesz zrozumieć, jak działają, oto krótkie omówienie głównych zasad: Przedziały ufności według metody prawdopodobieństwa profilu, z zastosowaniem w epidemiologii weterynaryjnej . Możesz także zajrzeć do książki MASY Venables i Ripleya, § 8.4, s. 220–221.


25

Kontynuacja: przedziały ufności profilu są bardziej wiarygodne (wybór odpowiedniego punktu odcięcia dla prawdopodobieństwa wiąże się z założeniem asymptotycznym (dla dużej próby), ale jest to założenie znacznie słabsze niż założenie kwadratowej powierzchni prawdopodobieństwa leżące u podstaw przedziałów ufności Walda). O ile mi wiadomo, nie ma argumentów za statystykami Walda w przedziałach ufności profilu, z wyjątkiem tego, że statystyki Walda są znacznie szybsze do obliczenia i mogą być „wystarczająco dobre” w wielu okolicznościach (ale czasami bardzo daleko: spójrz na Haucka- Efekt Donnera).


2
Dzięki za to i za sugestię, żebym sprawdził efekt Haucka-Donnera. W podręcznikach efekt nie jest zbytnio traktowany, ale wydaje się bardzo ważny!
— Andrew,

18

Wierzę, że jeśli przejrzysz plik pomocy dla confint (), zobaczysz, że budowany przedział ufności jest przedziałem „profilowym” zamiast przedziału ufności Wald (twoja formuła z HL).


5
Ahh To odpowiada na pytanie. Prowadzi to jednak do następnego - który jest preferowany?
— Andrew,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.