重回帰分析を1から ─ 偏回帰係数・多重共線性・残差診断のすべて
統計検定 2 級の核心、重回帰分析。単回帰との違い、偏回帰係数の意味、多重共線性の VIF 診断、残差プロットによるモデル妥当性チェックまでを実例付きで。
現実のデータで「 に効くのは 1 つの だけ」ということは、ほぼありません。家賃なら駅徒歩・面積・築年数・階数。営業成績なら経験年数・担当地域・教育レベル。重回帰分析 は、これら複数の要因を同時にモデル化する道具です。
モデル ─ 線形性は同じ、変数の数だけ違う
を仮定。最小二乗法でパラメータを推定する点は単回帰と同じですが、解の形は 行列で書く 必要があります。
正規方程式 ─ 行列で書くと一発
は デザイン行列(各行が観測、各列が説明変数。最初の列に切片用の 1 を入れる)。 が逆行列を持たない(完全多重共線性 = 列が線形従属)と推定不能。
偏回帰係数の正しい意味
(面積)が意味するのは「他の変数(駅徒歩など)を固定したまま 面積を 1 m² 増やしたとき、家賃が平均 0.18 万円(1,800 円)上がる」。単回帰の係数(他変数を無視した平均効果)とは別物です。
決定係数 R² の落とし穴
重回帰では「変数を増やせば は 必ず 上がる」という性質があります。意味のないランダム変数を追加しても、 は減りません。これが「変数を増やせば見かけ上のフィットが良くなる」問題。
自由度調整済み R²
は説明変数の数。意味のない変数を増やすと は 逆に下がる ので、モデル選択に使えます。
多重共線性 ─ VIF で診断
「他の説明変数で を回帰したときの 」から計算。VIF が 5〜10 を超えると「危険」と扱う慣例があります。多重共線性が強いと:
- 個々の係数の標準誤差が爆発する
- 個別 t 検定では有意でないのに、全体 F 検定では有意になる
- 係数の符号が直感と逆になる(suppressor effect)
片方を消せば、もう片方の係数は安定します。多重共線性は データの問題 ではなく モデル設計の問題。意味的に重複する変数があれば 1 つに絞る、PCA で次元削減する、リッジ回帰で正則化する、などの対処法があります。
残差診断 ─ 4 つの仮定をチェック
- 線形性: 残差 vs 予測値プロットで「ランダム雲」 → OK / 曲線パターン → 線形性違反
- 等分散性: ラッパ型 → 不均一分散 → 変換または WLS
- 正規性: Q-Q プロットで直線 → OK / 両端ズレ → 裾の厚薄
- 独立性: 時系列データなら Durbin-Watson 統計量 が 2 から離れたら自己相関
外れ値 vs てこ比 vs Cook の距離
- 外れ値: がモデルから外れる(標準化残差で診断)
- てこ比: が他のデータから離れている( で診断)
- Cook の距離: 観測 を抜くと係数がどれだけ動くか(総合指標、 で要注意)
外れ値は「捨てるもの」ではなく「説明するもの」。データ入力ミスなら除外、自然な観測なら残してロバスト回帰や変数変換で対応。これが研究の信頼性を保つ鉄則です。
Python で実装
まとめ
- 重回帰の係数は「他の変数を固定したときの効果」
- は変数を増やすと必ず上がる → で補正
- VIF で多重共線性をチェック、5〜10 超えは要注意
- 残差プロット・Cook の距離でモデル妥当性を確認
関連リンク
- [2 級教科書 3.3 重回帰分析](/textbook/grade-2#ch3-sec3)
- [3.4 残差診断](/textbook/grade-2#ch3-sec4)
- [ブログ: ANOVA](/blog/anova-explained)
本気で AI エンジニアを目指すなら ─ 関連スクール
以下は当サイトと提携しているスクールの紹介です。リンク経由でのお申込で運営費を支援できます(読者の皆様の追加負担はありません)。
関連記事
- 2026-05-02統計検定対策分散分析(ANOVA)の直感 ─ なぜ t 検定を3回やってはいけないのか3 群以上の平均比較で多重比較問題を避けるための分散分析。F 統計量の意味、平方和の分解、Tukey HSD まで、2 級受験者向けに直感重視で解説。
- 2026-05-02統計検定対策ベイズ統計の直感 ─ 事前分布・尤度・事後分布の関係を1から頻度主義と対比しながら、ベイズの定理がなぜ強力なのかを段階的に解説。共役分布・MAP推定・MCMCまで、準1級受験者が最初に押さえるべき5つの軸。
- 2026-05-03統計検定対策重回帰分析の多重共線性 ─ VIF で診断・解決する方法重回帰で『個々の係数は有意でないのに F 検定では全体が有意』という奇妙な結果が出る原因『多重共線性』。VIF(分散拡大係数)で診断し、変数削減・PCA・リッジで解決する実装手順を Python コード付きで解説。