A way of thinking

筆者個人の思考過程です。意見には個人差があります。

予測の信頼区間と回帰線の信頼区間

概念としては,林さんのこのブログが便利なのですが,で,結局両方ともどうやって計算しているの,というのを確かめる機会があったので,以下にメモとして。ここを参考にしただけなので,本サイトを読んでもらった方が良いです。しかし,予測の信頼区間が回帰直線の(平均値の)誤差と,誤差分布の標準誤差を合わせたものから出しているとは。勉強になりました(まぁ考えれば当たり前ではありますが)。

####
# データの "BOD-TOC.txt"
# http://takehiko-i-hayashi.hatenablog.com/entry/20110204/1296773267
# から拝借しています。
BOD2TOC.data <- read.table("BOD-TOC.txt",sep=",")
TOC <- BOD2TOC.data$TOC
BOD <- BOD2TOC.data$BOD
plot(BOD,TOC,type="p",xlim=c(0,6),ylim=c(0,6),lty=2,ylab="",xlab="")


# モデル
res.lm <- lm(TOC ~ BOD)
# 結果のさまりー
summary(res.lm)


# BOD 3 のときの回帰直線の(平均値の)信頼区間
predict(res.lm, new=data.frame(BOD=c(3)), interval="confidence")
# BOD 3 のときの予測の値の信頼区間
predict(res.lm, new=data.frame(BOD=c(3)), interval="prediction")


# se.fitとした結果をCにいれる
C <- predict(res.lm, new=data.frame(BOD=c(3)), se.fit=T)


# 回帰線の信頼区間の上限
C$fit + C$se.fit * qt(0.975, C$df)


# 予測値の信頼区間の上限
C$fit+sqrt(C$se.fit^2+C$residual.scale^2)*qt(0.975,C$df)


# 上のpredictの出力結果と比べると一致しているのがわかります。