Розрахунок інтервалу прогнозування


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

Однак як я можу отримати цей результат сам? Я намагався використати таке рівняння.

snew=s2(1+1N+(xnewx¯)2(xix¯)2)

І я вводжу наступне в Р.

> 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. Я додам, що різницю між довірчим інтервалом та інтервалом прогнозування можна вказати як нижче:

Інтервал довіри

snew=s2(1N+(xnewx¯)2(xix¯)2)

Інтервал прогнозу

snew=s2(1+1N+(xnewx¯)2(xix¯)2)

Джерело Див. Сторінку слайдів 5/17 та 11/17

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.