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łę:
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()
.
źródło
Odpowiedzi:
Po pobraniu danych z towarzyszącej strony internetowej , oto jak bym to zrobił:
Wartości 95% CI oparte na prawdopodobieństwie profilu są uzyskiwane z
Jest to często ustawienie domyślne, jeśli
MASS
pakiet jest automatycznie ładowany. W tym przypadku rozumiemTeraz, 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 dajeWartoś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.
źródło
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).
źródło
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).
źródło