Расчет прогнозируемого интервала


9

У меня есть следующие данные, расположенные здесь . Я пытаюсь рассчитать 95% доверительный интервал для средней чистоты, когда процент углеводородов равен 1,0. В R я ввожу следующее.

> predict(purity.lm, newdata=list(hydro=1.0), interval="confidence", level=.95)
   fit      lwr      upr
1 89.66431 87.51017 91.81845

Тем не менее, как я могу получить этот результат сам? Я попытался использовать следующее уравнение.

sNевесзнак равноs2(1+1N+(ИксNевес-Икс¯)2Σ(Икся-Икс¯)2)

И я ввожу следующее в R.

> SSE_line = sum((purity - (77.863 + 11.801*hydro))^2)
> MSE = SSE_line/18
> t.quantiles <- qt(c(.025, .975), 18)
> prediction = B0 + B1*1
> SE_predict = sqrt(MSE)*sqrt(1+1/20+(mean(hydro)-1)^2/sum((hydro - mean(hydro))^2))
> prediction + SE_predict*t.quantiles
[1] 81.80716 97.52146

Мои результаты отличаются от функции предсказания R. Что я неправильно понимаю в интервалах прогнозирования?


Как вы рассчитываете MSE в своем коде?

Я добавил расчет в пост.
idealistikz

1
как MMJ предложил вам попробоватьpredict(purity.lm, newdata=list(hydro=1.0), interval="prediction", level=.95)
Vinux

Ответы:


16

Ваш predict.lmкод рассчитывает доверительные интервалы для установленных значений. Ваша рука вычисляет интервалы прогнозирования для новых данных. Если вы хотите получить тот же результат, predict.lmчто и при расчете руки, измените interval="confidence"на interval="prediction"


1

Хороший ответ от dpel. Я бы добавил, что разницу между доверительным интервалом и интервалом прогнозирования можно указать, как показано ниже:

sNевесзнак равноs2(1N+(ИксNевес-Икс¯)2Σ(Икся-Икс¯)2)

sNевесзнак равноs2(1+1N+(ИксNевес-Икс¯)2Σ(Икся-Икс¯)2)

Источник См слайд страницы 5/17 и 11/17

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.