Calcul de l'intervalle de prédiction


9

J'ai les données suivantes situées ici . J'essaie de calculer l'intervalle de confiance à 95% sur la pureté moyenne lorsque le pourcentage d'hydrocarbures est de 1,0. Dans R, je saisis ce qui suit.

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

Cependant, comment puis-je obtenir ce résultat moi-même? J'ai essayé d'utiliser l'équation suivante.

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

Et j'entre ce qui suit dans 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

Mes résultats sont différents de la fonction de prédiction de R. Qu'est-ce que je comprends mal des intervalles de prédiction?


Comment calculez-vous le MSE dans votre code?

J'ai ajouté le calcul au message.
idealistikz

1
comme MMJ vous a suggéré d'essayerpredict(purity.lm, newdata=list(hydro=1.0), interval="prediction", level=.95)
vinux

Réponses:


16

Votre predict.lmcode calcule les intervalles de confiance pour les valeurs ajustées. Votre calcul manuel calcule les intervalles de prédiction pour les nouvelles données. Si vous souhaitez obtenir le même résultat predict.lmque celui obtenu à partir du calcul manuel, passez interval="confidence"à interval="prediction"


1

Bonne réponse de dpel. J'ajouterais que la différence entre l'intervalle de confiance et l'intervalle de prédiction peut être indiquée comme ci-dessous:

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

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

Source Voir diapositive page 5/17 et 11/17

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.