Как стандартные ошибки вычисляются для подобранных значений из логистической регрессии?

29

Когда вы прогнозируете подходящее значение из модели логистической регрессии, как рассчитываются стандартные ошибки? Я имею в виду для подогнанных значений , а не для коэффициентов (которые включают информационную матрицу Фишера).

Я только узнал, как получить числа R(например, здесь, в r-help, или здесь, в переполнении стека), но не могу найти формулу.

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

Если бы вы могли предоставить онлайн-источник (желательно на веб-сайте университета), это было бы замечательно.

user2457873
источник

Ответы:

35

Прогноз - это просто линейная комбинация оценочных коэффициентов. Коэффициенты асимптотически нормальны, поэтому линейная комбинация этих коэффициентов также будет асимптотически нормальной. Таким образом, если мы можем получить ковариационную матрицу для оценок параметров, мы можем легко получить стандартную ошибку для линейной комбинации этих оценок. Если я обозначу ковариационную матрицу как и запишу коэффициенты для моей линейной комбинации в векторе как C, то стандартная ошибка просто равна Σ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

Мы видим, что метод «от руки», который я показываю, дает ту же стандартную ошибку, о которой сообщается через predict

Dason
источник
2
У меня есть один связанный вопрос. Когда мы прогнозируем значение и доверительный интервал для линейной регрессии (не логистической), мы включаем дисперсию ошибки / стандартную ошибку. Но логистическая регрессия - нет. Происходит ли это отличие от того факта, что наблюдаемые значения логистической регрессии равны 0 или 1 и что нет смысла оценивать дисперсию ошибки? Я чувствую, что мы должны по крайней мере что-то сделать, но я могу что-то упустить.
user2457873
3
Старый вопрос, но эта ветка помогла мне только сейчас, так что здесь: Логит наблюдает 0 или 1, но он предсказывает вероятность. Когда вы получаете стандартную ошибку подобранного значения, оно находится на шкале линейного предиктора. Вы получаете доверительный интервал вероятности, говоря логит (подходит +/- 1.96 * se.fit)
generic_user
Просто имейте в виду, что здесь используется асимптотическое нормальное приближение, которое может быть очень плохо для логистической модели (поищите на этом сайте феномен Хаусса-Доннера). Для коэффициентов, которые могут быть исправлены, например, профилированием правдоподобия (используется функцией confint в MASS). Это невозможно для линейных предикторов ...
kjetil b halvorsen
2
Это неверно для того, о чем просил ФП; GLM, который вам подходит, использует функцию идентификационной ссылки, а не функцию logit link. Вы должны были бы соответствовать o <- glm(y ~ x, data = dat, family = binomial)вместо этого. Не могли бы вы пересмотреть? Ваше объяснение работает для оценки логарифмической вероятности SE (используя type = "link"опцию), но не SE, когда predictиспользуется type = "response"опция.
Чжэ Чжан