R: lm 関数による重回帰分析
UB3/informatics/r/regression_lm
このページの最終更新日: 2024/09/30広告
R による回帰分析
R では、回帰に以下のような基本関数が用意されている。このページでは、lm 関数を用いた回帰の方法、とくに説明変数が複数ある重回帰分析について説明する。
lsfit |
最小二乗法による回帰 線形回帰の手法のうち、回帰直線とデータの差 (誤差) を |
lm |
線形モデルによる回帰 |
glm |
一般線形モデルによる回帰 |
nls |
Nonlinear least squares の略。関数を定義して非線形の回帰を行う場合に使う (参考ページ)。最小二乗法を使っている。 |
以下のような関連ページもあるので参照のこと。
- lm 関数を用いた単回帰分析
- plot 関数、ggplot 関数: 回帰分析の結果を散布図で表す
- 相関と回帰の違い
- ピアソンの相関
R による線形重回帰: 基本的な方法
線形重回帰では、複数の変数 X を使って Y を予測する。やはり swiss にある出生率 Fertility を Y とし、これを 2 つの変数 Examination と Education がどの程度説明するかを調べてみる。
なお、Examination 変数の 47% が Education で有意に説明されるという結果が得られているため、この 2 つを変数として含めると、
単回帰と同様に
- lm の結果をオブジェクトとして保存する。
複数の x がある場合、lm の基本形は lm(y ~ x1 + x2) である。+ を使っていくらでも x を増やせる。 - そのオブジェクトの詳細を summary 関数で表示する。
具体的なスクリプトは以下の通り。ただし、多くの場合は変数間の交互作用も確認したいので、ページ下の「交互作用がある場合」 のように + でなく * を使うべきだろう。
summary(sfee)
結果は次のようになる。Examination, Education ともに有意であり、この回帰は出生率の 48% を説明する。回帰式は
出生率 = -0.5572 * Examination - 0.5395 * Education + 85.2533
である。なお、例えば切片が有意でなかった場合、回帰式には切片を含めないことになる。
また、重回帰分析においても与えられる決定係数 R2 は一つだけであり、これはモデリングの全体的なフィットの良さを示す値になる。どの変数がどれだけフィットしているかという情報は得られない。
なお、上の書き方では swiss をいちいち指定しているが、これは面倒なので、以下のようにデータをまとめて指定することができる。こちらの方がよく使われるかもしれない。
R による線形重回帰: 交互作用がある場合
一方、Education と Examination の交互作用を見たい場合は、+ の代わりに * を用いる。同じデータで分析すると、このようになる。
- 交互作用の P 値は 0.5277 なので、有意な交互作用はないと言える。
- + を用いた場合に比べて、それぞれの要因の P 値は上がる。Education の P 値が 0.08 になってしまっている。
これを ANOVA に入れると、以下のようなパラメーターを見ることができる。
広告
References
- 71. 回帰分析と重回帰分析. Link: Last access 2020/05/28.
コメント欄
サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。