library(ggplot2)
データはmtcars を使います。 x軸をwt、 y軸をmpgにしてとりあえずグラフを書いてみます。
str(mtcars)
## 'data.frame': 32 obs. of 11 variables:
## $ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
## $ cyl : num 6 6 4 6 8 6 8 4 4 6 ...
## $ disp: num 160 160 108 258 360 ...
## $ hp : num 110 110 93 110 175 105 245 62 95 123 ...
## $ drat: num 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
## $ wt : num 2.62 2.88 2.32 3.21 3.44 ...
## $ qsec: num 16.5 17 18.6 19.4 17 ...
## $ vs : num 0 0 1 1 0 1 0 1 1 1 ...
## $ am : num 1 1 1 0 0 0 0 0 0 0 ...
## $ gear: num 4 4 4 3 3 3 3 4 4 4 ...
## $ carb: num 4 4 1 1 2 1 4 2 2 4 ...
g <- ggplot(data = mtcars, aes(x = wt, y = mpg))
g + geom_point() + geom_smooth(method = "lm")
とりあえず、それっぽい図が作成されました。この塗りつぶされている部分はConfidence Inteval で日本語なら信頼区間に相当します。
じゃあ予測区間はどのようになるのかな、となるとggplot Prediction interval には対応していないらしく、自分で計算してやる必要があるみたいです。
https://groups.google.com/forum/#!topic/ggplot2/hkv9_RGmw_o
fit <- lm(mpg ~ wt, data = mtcars)
new_mtcars <- cbind(mtcars, predict(fit, interval = "prediction")) #このアラームはなんだろう?w
## Warning in predict.lm(fit, interval = "prediction"): predictions on current data refer to _future_ responses
head(new_mtcars)
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
## fit lwr upr
## Mazda RX4 23.28261 16.92894 29.63628
## Mazda RX4 Wag 21.91977 15.59072 28.24882
## Datsun 710 24.88595 18.48644 31.28546
## Hornet 4 Drive 20.10265 13.78568 26.41962
## Hornet Sportabout 18.90014 12.57806 25.22223
## Valiant 18.79325 12.47021 25.11630
これで推定値 (wt にたいするmpg)が追加されました。グラフ化してみましょう。
g <- ggplot(data = new_mtcars, aes(x = wt, y = mpg))
g + geom_ribbon(aes(ymin = lwr, ymax = upr), alpha = 0.2, fill = 'green') +
geom_point() +
geom_smooth(method = "lm")
緑色に塗られてる部分がPrediction(予測区間) 、灰色のがConfidence(信頼区間) の区間です。 信頼区間、予測区間みたいなのは引数levelに 0.90 とか与えてやればよいです。デフォルトは0.95 みたいです。