次のコードは、見栄えの良い回帰プロットを生成します。コードに沿った私のコメントは、すべてを明確に説明するべきです。コードはvalue
、model
をあなたの質問に使用します。
## all date you are interested in, 4 years with observations, 10 years for prediction
all_date <- seq(as.Date("2012-12-31"), by="1 year", length.out = 14)
## compute confidence bands (for all data)
pred.c <- predict(model, data.frame(date=all_date), interval="confidence")
## compute prediction bands (for new data only)
pred.p <- predict(model, data.frame(date=all_date[5:14]), interval="prediction")
## set up regression plot (plot nothing here; only set up range, axis)
ylim <- range(range(pred.c[,-1]), range(pred.p[,-1]))
plot(1:nrow(pred.c), numeric(nrow(pred.c)), col = "white", ylim = ylim,
xaxt = "n", xlab = "Date", ylab = "prediction",
main = "Regression Plot")
axis(1, at = 1:nrow(pred.c), labels = all_date)
## shade 95%-level confidence region
polygon(c(1:nrow(pred.c),nrow(pred.c):1), c(pred.c[, 2], rev(pred.c[, 3])),
col = "grey", border = NA)
## plot fitted values/lines
lines(1:nrow(pred.c), pred.c[, 1], lwd = 2, col = 4)
## add 95%-level confidence bands
lines(1:nrow(pred.c), pred.c[, 2], col = 2, lty = 2, lwd = 2)
lines(1:nrow(pred.c), pred.c[, 3], col = 2, lty = 2, lwd = 2)
## add 95%-level prediction bands
lines(4 + 1:nrow(pred.p), pred.p[, 2], col = 3, lty = 3, lwd = 2)
lines(4 + 1:nrow(pred.p), pred.p[, 3], col = 3, lty = 3, lwd = 2)
## add original observations on the plot
points(1:4, rev(value), pch = 20)
## finally, we add legend
legend(x = "topleft", legend = c("Obs", "Fitted", "95%-CI", "95%-PI"),
pch = c(20, NA, NA, NA), lty = c(NA, 1, 2, 3), col = c(1, 4, 2, 3),
text.col = c(1, 4, 2, 3), bty = "n")

JPEGは、コードによって生成された:あなたはプロットから見ることができるようにあなたが予測をしようとして、
- 自信バンドが広く育つ
jpeg("regression.jpeg", height = 500, width = 600, quality = 100)
## the above code
dev.off()
## check your working directory for this JPEG
## use code getwd() to see this director if you don't know
観察されたデータから遠ざかります。
- 予測間隔は信頼区間よりも広い。
あなたはpredict.lm()
が内部的信頼/予測区間を計算する方法についての詳細をお知りになりたい場合はは、How does predict.lm() compute confidence interval and prediction interval?を読み、そこに私の答え。
visreg
パッケージの単純な使用のアレックスのデモのおかげで、しかし、私はまだRベースを使用することを好む。あなたが値に興味があるなら
可能な複製[スロープの95%信頼区間を計算する方法Rの線形回帰モデル](http://stackoverflow.com/questions/15180008/how-to-calculate-the-95-confidence-interval-for-the-slope-in-a-linear- regressio) – majom
これは上記のものと重複していません。 OPは信頼区間ではなく信頼区間を求めていた。 – Alex
@ Zheyuan Li私はそれがそれと重複しているとは思わないでしょう。最初に、用語は奇妙に使用されます。もし誰かがそれを探して、正しい言葉を使っているなら、彼はおそらくそれを見つけられません。第二に、ここでは、他の答えに言及されていない線形回帰の特別な場合があります。驚いたことに(私にとっても)、あなたは ''信頼バンド線形回帰 'を探すと良い結果を得られません。だから私はその質問がうまくいくと思う。しかし、私はまた、これにはたくさんの解決策があると確信しています。しかし、あなたがそれらを見つけることができない場合、彼らはどのように役立つことができますか? – Alex