予測間隔の計算


9

ここに次のデータがあります。炭化水素のパーセンテージが1.0の場合、平均純度の95%信頼区間を計算しようとしています。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)

そして、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 2013

回答:


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を参照

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.