R: 散布図に回帰直線・曲線を追加する
UB3/informatics/r/r_plot_line
このページの最終更新日: 2024/09/30広告
概要と使用するデータ
このページでは、R の plot 関数を使った散布図に、回帰直線を追加する方法をまとめる。ただし、全体的に ggplot を使った方がきれいな散布図が簡単に書けるので、ggplot のページ も参照のこと。
内容的には、以下のようなページと関連が深い。
- 相関分析と回帰分析の違い
- 回帰分析の概要
- 最小二乗法による線形回帰
- lm 関数を使った 単回帰 および 重回帰
データには、trees という 組み込みのデータセット を用いる。31 本の木について、胴回り Girth、高さ Height、容積 Volume を調べたデータである。
Volume と Height について散布図を作ってみる。
plot(trees$Volume,trees$Height)
これに回帰曲線を加えていく。線形回帰の場合には、追加するのは直線になる。このページでは、直線・曲線という表現にしている。
lines を使うか、curve を使って add="TRUE" とする方法もある。機会があれば追加。
abline() 関数で回帰直線・曲線を加える
さまざまな方法がある。もっとも簡単なのは abline() 関数を使う方法である。
- 変数 X および Y の散布図を plot(A, B) で作成。
- ここに追加する直線・曲線の式は lm() 関数を使った回帰分析で算出する。reg1 = lm(Y ~ X) のようにして、lm の結果を reg1 に保存する。
- abline(reg1) で、散布図に回帰曲線が追加される。なお、ここで summary(reg1) とすると、回帰分析の結果を見ることができる。
回帰式を加える
summary(reg1) の結果から、この回帰は以下の式で表されることがわかる。回帰は有意であるが、adjusted R2 は 0.3358 と低い。このあたりの詳しい説明は、ページ上のリンクから lm() 関数を使った単回帰を参照 のこと。
Height = 0.23190 x Volume + 69.00336
この式をプロットに追加したい場合、式を自分で作って、プロットに文字を記入する text() 関数または mtext() を使用するという形をとる。あまりスマートではない気がする。
mtext はグラフの枠を基準にしてテキストの位置を決める。text は x と y の座標指定で決める。詳細は このページ に。
あとはこの応用で、reg1 から係数を取り出したり、数値を 2 桁程度に丸めたりなどの方法があるが、とりあえずは基本の考えのみまとめた。
広告
References
コメント欄
サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。