Неправильные стандартные отклонения для прогнозов в predict.lm в R?

При следующей настройке, почему в обоих случаях получаются одинаковые стандартные отклонения, а именно: 1,396411?

Регрессия:

CopierDataRegression <- lm(V1~V2, data=CopierData1)

Интервалы:

X6 <- data.frame(V2=6)
predict(CopierDataRegression, X6, se.fit=TRUE, interval="confidence", level=0.90)
predict(CopierDataRegression, X6, se.fit=TRUE, interval="prediction", level=0.90)

Оба дают одинаковый результат для se.fit.

Правильные стандартные отклонения для прогнозов можно получить с помощью следующего кода:

z <- predict(CopierDataRegression, X6, se.fit=TRUE)
sqrt(z$se.fit^2 + z$residual.scale^2),

но я не понимаю, почему в этой формуле добавляется остаточное стандартное отклонение при вычислении стандартных ошибок, может ли кто-нибудь это объяснить?

Данные:

CopierData1 <- structure(list(V1 = c(20L, 60L, 46L, 41L, 12L, 137L, 68L, 89L, 
          4L, 32L, 144L, 156L, 93L, 36L, 72L, 100L, 105L, 131L, 127L, 57L, 
          66L, 101L, 109L, 74L, 134L, 112L, 18L, 73L, 111L, 96L, 123L, 
          90L, 20L, 28L, 3L, 57L, 86L, 132L, 112L, 27L, 131L, 34L, 27L, 
          61L, 77L), V2 = c(2L, 4L, 3L, 2L, 1L, 10L, 5L, 5L, 1L, 2L, 9L, 
          10L, 6L, 3L, 4L, 8L, 7L, 8L, 10L, 4L, 5L, 7L, 7L, 5L, 9L, 7L, 
          2L, 5L, 7L, 6L, 8L, 5L, 2L, 2L, 1L, 4L, 5L, 9L, 7L, 1L, 9L, 2L, 
          2L, 4L, 5L)), .Names = c("V1", "V2"),
          class = "data.frame", row.names = c(NA, -45L))

person HeyJane    schedule 07.10.2017    source источник
comment
Похоже, что одна функция выдает оценку в пространстве коэффициентов/параметров, а другая — в пространстве данных.   -  person IRTFM    schedule 07.10.2017
comment
для следующего человека :) --- связанный дубликат имеет очень подробный ответ на основную математику. Если вы просто хотите знать, что вы видите с помощью se.fit --- да, в основном всегда отображается стандартная ошибка для уверенности, и нет, нет другого встроенного значения для стандартной ошибки для прогноза. И нет, это не совсем понятно обычному пользователю.   -  person Mike M    schedule 18.02.2021


Ответы (1)


Вы должны учитывать ошибку в оценке из-за выборки и шумового члена, когда делаете прогноз. Доверительный интервал учитывает только первое. См. ответ здесь.

Кроме того, они не дают такого же результата для границ:

> predict(CopierDataRegression, X6, 
+         se.fit=TRUE, interval="confidence", level=0.90)$fit
       fit      lwr     upr
1 89.63133 87.28387 91.9788
> predict(CopierDataRegression, X6, 
+         se.fit=TRUE, interval="prediction", level=0.90)$fit
       fit      lwr      upr
1 89.63133 74.46433 104.7983

se.fit дает вам только ошибку прогнозируемого среднего, а не sd термина ошибки, как описано в ?predict.lm:

se.fit стандартная ошибка предсказанных средних значений

residual.scale остаточные стандартные отклонения

person Benjamin Christoffersen    schedule 07.10.2017
comment
Это моя точка зрения. Вот почему я пишу: Почему при следующей настройке получаются одинаковые стандартные отклонения в обоих случаях, а именно: 1,396411? - person HeyJane; 08.10.2017
comment
Извините, я отвечал на ... Я не понимаю, почему в этой формуле добавляется остаточное стандартное отклонение при вычислении стандартных ошибок, может кто-нибудь объяснить это? - person Benjamin Christoffersen; 08.10.2017
comment
Я отредактировал свой ответ, чтобы уточнить, что представляет собой элемент se.fit возвращаемого объекта. Он должен быть одинаковым независимо от аргумента interval. - person Benjamin Christoffersen; 08.10.2017
comment
Я просто не вижу, какую новую информацию вы добавляете к тому, что я написал. Очевидно, я знаю разницу между предсказанием и оценкой. Я думаю, что пакет R должен дать другой ответ для se.fit при выборе между прогнозом или доверительными интервалами, как я задавал вопрос. Второй вопрос заключается в том, как можно добавить остаточное стандартное отклонение и может ли кто-нибудь показать это математически. - person HeyJane; 08.10.2017