Jak obliczane są standardowe błędy dla dopasowanych wartości z regresji logistycznej?


29

Kiedy przewidujesz dopasowaną wartość z modelu regresji logistycznej, w jaki sposób obliczane są standardowe błędy? Mam na myśli dopasowane wartości , a nie współczynniki (które obejmują matrycę informacji Fishera).

Dowiedziałem się tylko, jak uzyskać liczby R(np. Tutaj na r-help lub tutaj na Stack Overflow), ale nie mogę znaleźć wzoru.

pred <- predict(y.glm, newdata= something, se.fit=TRUE)

Gdybyś mógł podać źródło online (najlepiej na stronie uniwersyteckiej), byłoby fantastycznie.

Odpowiedzi:


35

Prognoza jest po prostu liniową kombinacją oszacowanych współczynników. Współczynniki są asymptotycznie normalne, więc liniowa kombinacja tych współczynników również będzie asymptotycznie normalna. Jeśli więc możemy uzyskać macierz kowariancji dla oszacowań parametrów, możemy łatwo uzyskać błąd standardowy dla liniowej kombinacji tych oszacowań. Jeśli oznaczę macierz kowariancji jako i napiszę współczynniki dla mojej kombinacji liniowej w wektorze jako C, wówczas błąd standardowy wynosi po prostu ΣCCΣC

# Making fake data and fitting the model and getting a prediction
set.seed(500)
dat <- data.frame(x = runif(20), y = rbinom(20, 1, .5))
o <- glm(y ~ x, data = dat)
pred <- predict(o, newdata = data.frame(x=1.5), se.fit = TRUE)

# To obtain a prediction for x=1.5 I'm really
# asking for yhat = b0 + 1.5*b1 so my
# C = c(1, 1.5)
# and vcov applied to the glm object gives me
# the covariance matrix for the estimates
C <- c(1, 1.5)
std.er <- sqrt(t(C) %*% vcov(o) %*% C)

> pred$se.fit
[1] 0.4246289
> std.er
          [,1]
[1,] 0.4246289

Widzimy, że metoda „ręcznie”, którą pokazuję, daje ten sam błąd standardowy, co zgłoszony za pośrednictwem predict


2
Mam jedno powiązane pytanie. Kiedy przewidujemy wartość i przedział ufności dla regresji liniowej (nie logistycznej), uwzględniamy wariancję błędu / błąd standardowy. Ale regresja logistyczna nie. Czy ta różnica wynika z faktu, że zaobserwowane wartości regresji logistycznej wynoszą 0 lub 1 i że oszacowanie wariancji błędu nie ma sensu? Czuję, że powinniśmy przynajmniej coś zrobić, ale coś może mi brakować.
user2457873,

3
Stare pytanie, ale ten wątek pomógł mi teraz, więc oto: Logit obserwuje 0 lub 1, ale przewiduje prawdopodobieństwo. Kiedy pojawi się błąd standardowy dopasowanej wartości, jest to na skali predyktora liniowego. Dostajesz przedział ufności na prawdopodobieństwo rozmawiając LOGIT (Fit +/- 1,96 * se.fit)
generic_user

Pamiętaj tylko, że używa to asymptotycznego normalnego ok, co może być dość złe dla modelu logistycznego (wyszukaj na tej stronie zjawisko Haussa-Donnera). W przypadku współczynników, którym można zaradzić, na przykład profilując prawdopodobieństwo (używane przez funkcję confint w MASS). To nie jest możliwe dla predyktorów liniowych ...
kjetil b halvorsen

2
Jest to niepoprawne w stosunku do tego, o co poprosił PO; dopasowany GLM używa funkcji łącza tożsamości, a nie funkcji łącza logit. Zamiast tego powinieneś mieć formę o <- glm(y ~ x, data = dat, family = binomial). Czy mógłbyś to poprawić? Twoje wyjaśnienie służy do oszacowania logarytmicznej szansy na SE (przy użyciu type = "link"opcji), ale nie na SE, kiedy używasz predicttej type = "response"opcji.
Zhe Zhang
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.