次の DEMO を見にいく

*当ブログではアフェリエイト広告を利用しています。

AI基礎・概要

多重共線性とは?重回帰分析の落とし穴と対処法を初心者向けに解説

多重共線性のアイキャッチ画像。絡まる2本の矢印と相関行列ヒートマップ、困った顔のフキダシ、ロボットキャラクターのルミィのイラスト
momeq

📌 重回帰分析を学び始めると、必ず一度はぶつかるのが「多重共線性(マルチコ)」という落とし穴です。

「説明変数を増やしたのに、なぜか係数の符号がおかしくなった…」「p値が大きくなって、有意じゃなくなった…」そんな経験はありませんか?それ、もしかすると多重共線性が原因かもしれません。この記事では、多重共線性の正体・見つけ方・対処法を初心者向けにやさしく解説します。

ルミィ
ルミィ

「多重共線性」って名前が難しそうだけど、イメージとしては「説明変数同士が似すぎてケンカしちゃう状態」って考えればOKだよ~

📍 多重共線性とは|「似たもの同士」が混ざると起こる問題

多重共線性(multicollinearity、通称「マルチコ」)とは、重回帰分析で説明変数同士が強く相関している状態のことです。たとえば、家賃を予測する重回帰モデルに「広さ(㎡)」と「部屋数」を入れたとします。この2つは強く相関していますよね(広い家ほど部屋数も多い)。

このように説明変数同士が「似たような情報」を持っていると、モデルが「どちらが効いているか」を区別できなくなるのです。これが多重共線性の正体です。

💡 ポイント

多重共線性は予測精度自体を大きく下げる訳ではありません。問題になるのは「個々の係数の解釈」です。「どの変数がどれだけ効いているか」を知りたい場面(要因分析・施策立案)では致命的になります。

⚠️ 多重共線性が起きると何が困るのか

多重共線性があると、具体的に以下のような問題が発生します。

  • 係数の符号が逆転する:本来プラスのはずがマイナスになる、など
  • 係数の値が異常に大きく/小さくなる:解釈ができない値が出る
  • 標準誤差が膨らむ:p値が大きくなり、有意性の判定が崩れる
  • データを少し変えるだけで結果が大きく変動する:再現性が低くなる

つまり、「モデルの解釈」が信頼できなくなるのが一番のデメリットです。

🔍 多重共線性の見つけ方|VIFをチェックしよう

多重共線性を診断する代表的な指標がVIF(Variance Inflation Factor/分散拡大係数)です。各説明変数について計算し、値が大きいほど多重共線性が疑われます。

  • VIF < 5:問題なし
  • 5 ≤ VIF < 10:注意(要観察)
  • VIF ≥ 10:多重共線性が疑われる → 対処が必要

Pythonならstatsmodelsライブラリで簡単にVIFを計算できます。

from statsmodels.stats.outliers_influence import variance_inflation_factor
import pandas as pd

vif = pd.DataFrame()
vif["feature"] = X.columns
vif["VIF"] = [variance_inflation_factor(X.values, i) for i in range(X.shape[1])]
print(vif)
📝 補足

VIF以外にも、相関行列(ヒートマップ)で説明変数同士の相関係数を確認するのも有効です。0.8以上の強い相関があるペアは要注意です。

ルミィ
ルミィ

ちなみにVIFを見るときは、「全部の変数で一気に判断」しようとせず、「大きいものから順番に対処する」のがコツだよ!

🛠 多重共線性の対処法|4つの定番アプローチ

多重共線性が見つかったときの対処法は、大きく4つあります。

① 相関の強い変数のどちらかを削除する

もっともシンプルな方法。相関の強いペアのうち、どちらか片方だけをモデルに残します。たとえば「広さ」と「部屋数」なら、ビジネス的な解釈のしやすさで「広さ」を残す、という判断です。

② 変数を統合する(合成変数を作る)

「身長」と「体重」のように相関が強い変数は、BMI(体重 ÷ 身長²)のような合成変数にまとめると、情報量を保ったまま多重共線性を緩和できます。

③ 主成分分析(PCA)で次元削減する

説明変数が多くて相関も複雑な場合は、PCA(主成分分析)で互いに無相関な合成変数(主成分)を作る方法もあります。ただし、解釈性は犠牲になります。

④ 正則化回帰(Ridge回帰・Lasso回帰)を使う

多重共線性に対して頑健な回帰手法として、Ridge回帰やLasso回帰があります。係数が極端な値になるのを防ぎ、安定した推定を可能にします。とくに変数を多く投入したいときの強力な味方です。

💡 使い分けのコツ

「個々の変数の意味を解釈したい」なら ①②(削除・統合)が有効。
「変数選択もまとめて自動でやりたい」なら ④(特にLasso)が便利。
「とにかく予測精度を上げたい」なら ③④で次元削減+正則化が王道です。

🤔 そもそも気にしなくていい場面もある

多重共線性に過敏になりすぎる必要はありません。以下のような場合は、気にしなくてOKです。

  • 予測精度だけが目的:個々の係数の解釈をしないなら影響は小さい
  • 決定木・ランダムフォレストなどのツリー系モデル:そもそも多重共線性の影響を受けにくい
  • VIFが5未満:実務上は問題視しなくてOK

▶ 関連記事:決定木とは?仕組み・ジニ不純度・剪定までやさしく解説

ルミィ
ルミィ

多重共線性とうまくつきあうコツは、「何がしたいか」を先にハッキリさせること!予測だけなら気にしなくてOK、解釈したいならチェックしよう~

🚀 まとめ|多重共線性は「解釈したいとき」に注意

  • 多重共線性 = 説明変数同士が強く相関している状態
  • 係数が不安定になり、モデルの解釈が信頼できなくなる
  • 診断はVIFが定番(VIF ≥ 10で要対処)
  • 対処法は「削除・統合・PCA・正則化」の4つ
  • 予測精度だけが目的なら、過度に気にしなくてOK

多重共線性は、データ分析の現場で必ずと言っていいほど登場するテーマです。「係数の符号が変だな」「p値が急に大きくなったな」と感じたら、まずVIFをチェックする習慣をつけましょう。

▶ 関連記事:【完全ガイド】線形回帰分析を学ぶ全ステップ

▶ 関連記事:ロジスティック回帰とは?線形回帰との違いを初心者向けに解説

ルミィ
ルミィ
AIナビゲーター
ChatGPTにハマってから毎日AIを触り続けるブログ運営者。最新AIツールを初心者目線で発信しています。YouTubeでも解説動画を投稿中!
記事URLをコピーしました