データ分析法・第6回「回帰分析(2):重回帰分析」
授業情報
| 項目 | 内容 |
|---|---|
| 科目 | データ分析法 |
| 回数 | 第6回 |
| テーマ | 回帰分析(2):重回帰分析 |
| 日付 | (未記入) |
1. 重回帰分析とは
単回帰分析は1つの説明変数から目的変数を予測したが、2つ以上の説明変数から予測式を立てるのが重回帰分析(multiple regression analysis)。
- を**偏回帰係数(partial regression coefficient)**という。他の説明変数の影響を除いた上での、その説明変数と目的変数の関係を表す(偽相関係数の「偽」と同じ発想)
- 回帰式の説明力は**重決定係数(multiple determination coefficient)**で表す
例題①:3変数から賃貸アパートの家賃を予測(mreg1.csv)
25件の賃貸アパートデータを元に、部屋面積(area)・駅からの距離(foot:徒歩分)・築年数(age)の3変数を説明変数として家賃(rent)を予測。
2. Rによる重回帰分析(lm()関数)
2-1. 回帰式の確認
x <- read.csv("mreg1.csv") # 列名: rent, area, foot, age
lm(x$rent ~ x$area + x$foot + x$age) # y ~ x1 + x2 + x3 の形で指定
- 結果:切片(a) = 4.324、面積(b1) = 0.203、徒歩(b2) = −0.049、築年数(b3) = −0.033
- 回帰式:家賃(y) = 4.324 + 0.203×面積 − 0.049×徒歩 − 0.033×築年数
係数の解釈
- 面積が1m²広くなると約2千円(10m²で約2万円)家賃が上がる
- 駅から徒歩1分遠くなると約490円家賃が安くなる
- 築年数1年古くなると約330円家賃が安くなる
2-2. 結果の詳細(summary)
result <- lm(x$rent ~ x$area + x$foot + x$age)
summary(result)
- 各偏回帰係数の有意確率、重決定係数(Multiple R-squared)、**自由度調整済み決定係数(Adjusted R-squared)**を確認できる
- 例題①:有意な偏回帰係数は面積のみ。R² = 0.878、Adjusted R² = 0.861
💡 重決定係数の注意点:不要な変数でも説明変数の数が増えると重決定係数は大きくなるため、変数数で調整した自由度調整済み決定係数も併せて確認するとよい
3. 標準偏回帰係数(変数の標準化)
説明変数ごとに単位が異なるため、偏回帰係数の値をそのまま比較するのは意味がない。説明変数・目的変数を**標準化(Z得点化:平均0、標準偏差1)することで単位の影響を除去し、比較可能にしたものを標準偏回帰係数(standard partial regression coefficient)**という。標準化後の切片は常に0になる。
z <- scale(x) # 全変数をZ得点に変換
z <- data.frame(z) # データフレーム化
result2 <- lm(z$rent ~ z$area + z$foot + z$age) # 標準化データで重回帰分析
summary(result2)
結果(標準偏回帰係数):面積 = 0.913、徒歩 = −0.089、築年数 = −0.098
→ 絶対値が大きいほど、目的変数への影響が強い
💡 データフレーム(data.frame)とは、R言語でデータのセットを格納するための行列。
パス図(path diagram)
重回帰分析の結果は、標準偏回帰係数と有意性、重決定係数を記入したパス図で示すことが多い。
4. 多重共線性(multicollinearity)
説明変数同士の相関が高いと、両方を説明変数として使う必要がない(=重複している)という問題が生じる。これを**多重共線性(マルチコリニアリティ)**という。
4-1. 分散拡大要因(VIF)
多重共線性の指標として**分散拡大要因(Variance Inflation Factor; VIF)**が使われる。
- 一般に VIF ≥ 10 で多重共線性が疑われ、どちらか一方を除外するのが望ましい
- 基準を VIF ≥ 5 とするケースや、VIF ≤ 2 が望ましいとする指摘もある
4-2. RでのVIF算出(carパッケージ)
Rの標準関数にVIFはないため、carパッケージを使用する(インストール時は大量の依存ファイルを読み込むため時間がかかる場合がある)。
library(car)
result <- lm(x$rent ~ x$area + x$foot + x$age)
vif(result) # VIFの算出
- 例題①:面積 = 1.023、徒歩 = 1.035、築年数 = 1.054(いずれも低く、多重共線性の心配はない)
- VIFは元データでも標準化データ(z)でも同じ値になる
5. 練習問題:J1リーグの勝ち点予測(mreg2.csv)
得点・失点・ホーム観客動員(平均、百人)・総年俸(億円)から勝ち点を予測。
| 項目 | 値 |
|---|---|
| 回帰式 | 勝ち点 = 56.267 + 0.765×得点 − 0.891×失点 + 0.205×観客動員 − 0.272×総年俸 |
| 重決定係数(R²) | 0.953 |
| 自由度調整済み決定係数 | 0.940 |
分散拡大要因(VIF)と標準偏回帰係数
| 説明変数 | VIF | 標準偏回帰係数 |
|---|---|---|
| 得点 | 1.382 | 0.653 |
| 失点 | 1.150 | −0.694 |
| 観客動員 | 1.906 | 0.116 |
| 総年俸 | 2.550 | −0.060 |
(p<.01)
6. 復習用例題:興行収入の予測(mregr1.csv)
邦画25作品の広告費・封切上映館数・平均満足度から興行収入を予測する重回帰分析。
| 項目 | 値 |
|---|---|
| 重決定係数(R²) | 0.881 |
| 自由度調整済み決定係数 | 0.867 |
| 切片 | -19.345 |
| 説明変数 | 偏回帰係数 | 標準偏回帰係数 | VIF |
|---|---|---|---|
| 広告費 | 0.763 | 0.450 | 2.550 |
| 上映館数 | 0.295 | 0.452 | 2.612 |
| 満足度 | 6.728 | 0.153 | 1.387 |
7. 参考:WebClass小テスト(第6回)
JLPGAツアー成績(mregtest1.csv)から平均ストロークを予測。有意確率が5%を超える説明変数は除外して再分析する手順を実践(ドライビングディスタンスとフェアウェイキープ率を除外)。
| 項目 | 値 |
|---|---|
| 重決定係数(R²) | 0.890 |
| 自由度調整済み決定係数 | 0.888 |
| 切片 | 47.386 |
| パーオン率の偏回帰係数(標準) | -0.117(-0.565) |
| 平均パット数の偏回帰係数(標準) | 17.855(0.608) |
※有意でなかったドライビングディスタンス・FWキープ率は除外(偏回帰係数・標準偏回帰係数・VIFは0として解答)。
まとめ
- 重回帰分析:2つ以上の説明変数から目的変数を予測。Rでは
lm(y ~ x1 + x2 + x3) - 偏回帰係数:他の説明変数の影響を除いた上での影響度。単位が違うので直接比較不可
- 標準偏回帰係数:
scale()で標準化してもう一度分析すれば比較可能になる - 重決定係数 vs 自由度調整済み決定係数:変数が増えると前者は見かけ上向上するため、後者も合わせて確認
- 多重共線性:説明変数同士の相関が高い問題。
library(car)のvif()で確認し、VIF ≥ 10(もしくは5)なら変数を検討