Cálculo do intervalo de previsão


9

Eu tenho os seguintes dados localizados aqui . Estou tentando calcular o intervalo de confiança de 95% sobre a pureza média quando a porcentagem de hidrocarbonetos é 1,0. Em R, insiro o seguinte.

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

No entanto, como posso obter esse resultado pessoalmente? Eu tentei usar a seguinte equação.

sneW=s2(1+1N+(xneW-x¯)2(xEu-x¯)2)

E eu insiro o seguinte em 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

Meus resultados são diferentes da função de previsão de R. O que estou entendendo mal sobre intervalos de previsão?


Como você está calculando o MSE no seu código?

Eu adicionei o cálculo ao post.
Idealistikz

1
como MMJ sugeriu que você deve tentarpredict(purity.lm, newdata=list(hydro=1.0), interval="prediction", level=.95)
vinux

Respostas:


16

Seu predict.lmcódigo está calculando intervalos de confiança para os valores ajustados. O seu cálculo manual está calculando intervalos de previsão para novos dados. Se você deseja obter o mesmo resultado predict.lmobtido no cálculo manual, mude interval="confidence"para interval="prediction"


1

Boa resposta do dpel. Eu acrescentaria que a diferença entre o intervalo de confiança e o intervalo de previsão pode ser declarada como abaixo:

Intervalo de confiança

sneW=s2(1N+(xneW-x¯)2(xEu-x¯)2)

Intervalo de previsão

sneW=s2(1+1N+(xneW-x¯)2(xEu-x¯)2)

Fonte Veja os slides das páginas 5/17 e 11/17

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.