EZRで ggplot2 を使って95%信頼区間と回帰式付き回帰直線を描く方法。
EZRで回帰直線に95%信頼区間を描きたい場合どうするか?
ggplot2 を使うと簡単・きれいに描ける。
ggplot で回帰直線を書く方法 ggplot2 とは?
ggplot2 とは、簡単にきれいなグラフが描けるRの高性能なパッケージである。
ggplot2はEZRにインストールされているので、library()ですぐに呼び出せる。
もしインストールされていなかったら、install.packages("ggplot2")
でインストールする。
ggplot で回帰直線を描いてみる
以下のスクリプトをRスクリプト窓に書く。
3つのパートから構成されている。
- ggplot()
- geom_point()
- geom_smooth()
これらを+(プラス)でつないでいく、ちょっと変わった記法である。
library(ggplot2)
ggplot(data=GCSF_CD34, aes(x=WBC.entry, y=LogCD34perBW))+
geom_point()+
geom_smooth(method=lm, se=TRUE)
ggplot()のカッコ内は、データの指定とX軸、Y軸の指定である。
geom_point()は、散布図を描かせる指令。
geom_smooth()は、平滑線を描かせる指令で、method=lmは直線回帰、se=TRUEは信頼区間を表示する指定。
信頼区間は、特に指定しなければ95%である。
以下が結果。
デザイン性に優れたグラフがあっという間に描ける。
ggplot で書いた回帰直線の見た目を変更する
theme_bw()を加えると、白黒のシンプルな見た目になる。
ggplot(data=GCSF_CD34, aes(x=WBC.entry, y=LogCD34perBW))+
geom_point()+
geom_smooth(method=lm, se=TRUE)+
theme_bw()
theme_classic()だと、X軸、Y軸だけになる。
ggplot(data=GCSF_CD34, aes(x=WBC.entry, y=LogCD34perBW))+
geom_point()+
geom_smooth(method=lm, se=TRUE)+
theme_classic()
geom_smooth()内にcolor=”black”で指定すると黒に変えられる。
ほかの色も英語で指定すればその色に変わる。
ggplot(data=GCSF_CD34, aes(x=WBC.entry, y=LogCD34perBW))+
geom_point()+
geom_smooth(method=lm, se=TRUE, color="black")+
theme_classic()
信頼区間のグレーを少し薄くするためには、geom_smooth()内にaes()でfill=’confidence’というふうにfillを指定する。
そしてscale_fill_manual()で、lightgrayに変更する。
そうすると少し薄いグレーに変わる。
ggplot(data=GCSF_CD34, aes(x=WBC.entry, y=LogCD34perBW))+
geom_point()+
geom_smooth(method=lm, color="black",
aes(fill='confidence'), show.legend=FALSE)+
scale_fill_manual('Interval', values='lightgray')+
theme_classic()
信頼区間を塗りつぶさず、限界を線で表示する方法はわからなかった。
ggplot で書いた回帰直線の式をグラフ内に書き入れる
例えば、グラフ内に回帰式を書き入れたい場合、どうするか?
まず単回帰を行っておく。
#####線形回帰(単回帰、重回帰)#####
library(aod, pos=18)
RegModel.1 <- lm(LogCD34perBW~WBC.entry, data=GCSF_CD34)
次に、以下のように回帰式をequationとして定義する。
equation <- sprintf(
"italic(Y) == %.3g + %.3g * italic(X)",
coef(RegModel.1)[1], coef(RegModel.1)[2]
)
%.3g の部分は、次のcoef(RegModel.1)[1])(切片の推定値)とcoef(RegModel.1[2])(傾きの推定値)を順番に代入する意味で、3gは有効数字3桁にするという意味合い。
最後に、先ほどまでのスクリプトの最後に一行を書き足す。
+でつなぐのを忘れずに。
ggplot(data=GCSF_CD34, aes(x=WBC.entry, y=LogCD34perBW))+
geom_point()+
geom_smooth(method=lm, color="black",
aes(fill='confidence'), show.legend=FALSE)+
scale_fill_manual('Interval', values='lightgray')+
theme_classic()+
annotate("text", x=5000, y=1.0, label=equation, parse=TRUE)
X軸が5000、Y軸が1.0の座標に、回帰式を書き入れるためのスクリプト。
parse=TRUEは、数学表現であることの指示。
グラフを表示させるとこのようになる。
まとめ
EZRで95%信頼区間付きの回帰直線を描くには、ggplot2を使うとよい。
簡単にきれいな図が描ける。
参考サイト
RPubs – Confidence and Prediction intervals for Linear Regression
ggplot2: きれいなグラフを簡単に合理的に – Heavy Watal
ggplot2をインストールし美しいグラフを作るまでの基礎知識【入門編】
5.9 Adding Annotations with Model Coefficients | R Graphics Cookbook, 2nd edition
コメント