📊 STEP 12: 決定係数(R²)の解釈
モデルの説明力を正しく理解しよう
📋 このステップで学ぶこと
- 決定係数(R²)とは何か – 基本概念の理解
- R²の計算方法と意味
- 調整済みR²(Adjusted R²)の重要性
- R²の目安と分野による違い
- 過学習の危険性とモデル選択
学習時間の目安:2.5時間
🎯 1. 決定係数(R²)とは
R²の基本概念
回帰モデルが、目的変数の変動をどれだけ説明できるかを表す指標
範囲:0 〜 1(または 0% 〜 100%)
読み方:アール二乗、決定係数、寄与率
意味:
・R² = 0.8 → モデルが80%の変動を説明できる
・R² = 0.5 → モデルが50%の変動を説明できる
・R² = 1.0 → 完璧な予測(すべての点が回帰直線上)
R²をイメージで理解する
例:テストの点数を予測
- 平均点で予測:「全員60点」と予測 → 当たらない
- 勉強時間で予測:勉強時間から点数を予測 → まあまあ当たる
R² = 0.7の意味:
「平均点で予測」よりも、「勉強時間で予測」の方が、70%も当たりやすくなった!
→ モデルが70%の変動を説明できている
R²の計算式
具体例で計算
データ:
| X(勉強時間) | Y(実際の点数) | 予測点数 | 残差 |
|---|---|---|---|
| 2 | 50 | 52 | -2 |
| 4 | 70 | 68 | +2 |
| 6 | 85 | 84 | +1 |
| 8 | 95 | 100 | -5 |
計算:
平均点 = (50+70+85+95)/4 = 75点
全変動 = (50-75)² + (70-75)² + (85-75)² + (95-75)²
= 625 + 25 + 100 + 400 = 1150
残差平方和 = (-2)² + (2)² + (1)² + (-5)²
= 4 + 4 + 1 + 25 = 34
R² = 1 – (34 / 1150) = 1 – 0.0296 = 0.9704
結果:R² = 0.97 = 97%
→ モデルが点数の変動の97%を説明できている!
📈 2. R²の解釈
R²の値の目安
| R²の値 | 評価 | 説明 |
|---|---|---|
| 0.9 〜 1.0 | 非常に良い | ほぼ完璧な予測 |
| 0.7 〜 0.9 | 良い | 実務で十分使える |
| 0.5 〜 0.7 | まあまあ | 改善の余地あり |
| 0.3 〜 0.5 | 低い | 他の変数を追加検討 |
| 0 〜 0.3 | 非常に低い | モデルが不適切 |
分野による目安の違い
自然科学・工学:R² > 0.8が期待される
物理法則に基づくので、予測精度が高い
ビジネス・経済:R² > 0.5でも十分
人間の行動は予測が難しいので、ハードルが低め
社会科学・心理学:R² > 0.3でも「良い」
人間の心理や社会現象は複雑で、予測が非常に難しい
重要:
「R²が低い = ダメなモデル」とは限らない!
分野や目的に応じて、適切な基準で評価しましょう。
R²が高ければ良いモデルか?
問題1:過学習(Overfitting)
説明変数を増やせば増やすほど、R²は高くなる。
でも、新しいデータでの予測精度は悪化することがある。
→ STEP 14で詳しく学習
問題2:外れ値の影響
1つの極端な値が、R²を大きく変えることがある。
→ 散布図で外れ値を確認する
問題3:因果関係の誤解
R²が高くても、因果関係があるとは限らない。
例:アイスクリームの売上と溺死者数(R²は高いが因果関係なし)
重要:
R²だけでなく、残差分析、ビジネス的妥当性、理論的根拠も確認する!
🔧 3. 調整済みR²(Adjusted R²)
なぜ調整済みR²が必要か
問題:説明変数を追加すると、R²は必ず上がる(または同じ)
例:
・広告費だけで予測 → R² = 0.70
・広告費 + 気温で予測 → R² = 0.75
・広告費 + 気温 + 価格 → R² = 0.80
・広告費 + 気温 + 価格 + 全く関係ない変数 → R² = 0.81
→ 無意味な変数を追加してもR²が上がってしまう!
解決策:
調整済みR²を使う!
→ 不要な変数を追加すると、逆に下がる
調整済みR²の計算式
具体例で比較
状況:サンプルサイズ n = 100
| モデル | 説明変数の数 | R² | 調整済みR² |
|---|---|---|---|
| モデル1 | 2 | 0.70 | 0.69 |
| モデル2 | 5 | 0.75 | 0.74 |
| モデル3 | 10 | 0.78 | 0.76 |
| モデル4 | 20 | 0.80 | 0.75 |
解釈:
・通常のR²:モデル4が最も高い(0.80)
・調整済みR²:モデル3が最も高い(0.76)
→ モデル3が最適! モデル4は変数が多すぎる
調整済みR²の使い方
1. モデル選択
複数のモデルを比較する時、調整済みR²が最も高いモデルを選ぶ
2. 変数の追加判断
新しい変数を追加して、調整済みR²が上がれば採用、下がれば却下
3. 過学習の防止
調整済みR²を見ることで、変数の入れすぎを防げる
💻 4. ExcelとPythonでの確認
Excelでの確認
Pythonでの確認
statsmodelsでの詳細確認
複数モデルの比較
⚠️ 5. 過学習とモデル選択
過学習(Overfitting)とは
過学習:モデルが過去のデータに合いすぎて、未来の予測が悪くなること
例:
・過去のデータ:R² = 0.99(ほぼ完璧!)
・新しいデータ:予測が全然当たらない…
→ これが過学習
原因:
・説明変数が多すぎる
・サンプルサイズが小さい
・ノイズ(たまたまの変動)まで学習してしまう
過学習を防ぐ方法
1. 調整済みR²を確認
変数を追加して、調整済みR²が下がったら、その変数は不要
2. 説明変数の数を制限
サンプルサイズの10分の1程度まで
例:データが100件 → 説明変数は最大10個
3. テストデータで検証
データを「学習用」と「テスト用」に分けて、テストデータでの精度を確認
→ STEP 14で詳しく学習
4. 交差検証(Cross-Validation)
データを複数のグループに分けて、順番にテストする
→ STEP 14で詳しく学習
5. 重要な変数だけを選ぶ
ビジネス的に意味がある変数、p値が小さい変数だけを使う
適切なモデルの選び方
ステップ1:シンプルなモデルから始める
まず、最も重要と思われる1〜2個の変数で回帰分析
ステップ2:変数を追加
次に重要と思われる変数を1つずつ追加
各ステップで調整済みR²を確認
ステップ3:最適なモデルを選択
調整済みR²が最も高いモデルを選ぶ
ステップ4:テストデータで検証
選んだモデルが、新しいデータでも予測精度が高いか確認
ステップ5:ビジネス的妥当性を確認
係数の符号(+/-)が、理論的に正しいか確認
「同じくらいの精度なら、よりシンプルなモデルを選ぶ」という原則です。シンプルなモデルは解釈しやすく、過学習のリスクも低くなります。
📝 STEP 12 のまとめ
1. 決定係数(R²)の基本
- モデルの説明力を表す指標(0〜1)
- 目的変数の変動のうち、モデルで説明できる割合
- 0.7以上で良い(ただし分野による)
2. 調整済みR²
- 不要な変数を追加すると下がる改良版
- モデル選択の重要な指標
- 変数追加の判断に使用
3. 過学習の防止
- R²が高くても、新しいデータで予測が外れる現象
- 調整済みR²、テストデータ、交差検証で防止
- シンプルなモデルを優先(オッカムの剃刀)
R²は、回帰モデルの説明力を評価する最も基本的な指標です。ただし、R²が高い = 良いモデルとは限りません。
実務では:
- 調整済みR²でモデルを選択
- テストデータで予測精度を確認(STEP 14)
- 残差分析でモデルの妥当性を検証(STEP 13)
- ビジネス的妥当性を常に確認
これらを総合的に判断して、最適なモデルを選びましょう。次のSTEP 13では、残差分析とモデル診断を学びます!
STEP 13では、「残差分析とモデル診断」を学びます。残差プロット、Q-Qプロット、等分散性の確認など、モデルの妥当性を確認する方法を習得します!
📝 理解度チェック
学んだ内容を確認しましょう。解答を見る前に、まず自分で考えてみてください。
R² = 0.85 の回帰モデルがあります。
これはどういう意味ですか?わかりやすく説明してください。
R² = 0.85 = 85%
意味:
目的変数(例:売上)の変動のうち、85%が説明変数(例:広告費、気温)で説明できる
残りの15%は、モデルに含まれていない他の要因(季節、競合の動向、経済状況など)や、ランダムな変動によるもの。
評価:
85%は非常に高い説明力で、実務で十分使えるモデルと言えます。このモデルを使って、かなり正確な予測ができます。
調整済みR²が必要な理由を説明してください。
通常のR²の問題点:
説明変数を追加すると、R²は必ず上がる(または同じ)。たとえ無意味な変数を追加しても、R²は上がってしまう。
調整済みR²のメリット:
- 不要な変数を追加すると、逆に下がる
- 本当に重要な変数を追加した時だけ、上がる
- 変数の数とサンプルサイズを考慮している
使い方:
複数のモデルを比較する際、調整済みR²が最も高いモデルを選ぶことで、過学習を防ぎつつ最適なモデルを選択できる。
以下の2つのモデルを比較してください。どちらが良いモデルですか?
モデルA:説明変数2個、R² = 0.75、調整済みR² = 0.74
モデルB:説明変数10個、R² = 0.80、調整済みR² = 0.72
理由:
| 項目 | モデルA | モデルB |
|---|---|---|
| 説明変数の数 | 2個(シンプル) | 10個(複雑) |
| R² | 0.75 | 0.80 |
| 調整済みR² | 0.74(高い) | 0.72(低い) |
判断:
・モデルBは、通常のR²は高いが、調整済みR²はモデルAより低い
・これは、モデルBが変数を入れすぎていることを示している
・モデルAの方が、シンプルで、かつ説明力も十分
結論:モデルAを採用すべき。オッカムの剃刀の原則:「同じくらいの精度なら、よりシンプルなモデルを選ぶ」
過学習(Overfitting)とは何ですか?また、過学習を防ぐ方法を3つ挙げてください。
過学習とは:
モデルが過去のデータに合いすぎて、新しいデータでの予測精度が悪くなる現象。学習データではR²が高くても、テストデータでは予測が当たらなくなる。
過学習を防ぐ方法:
- 調整済みR²を確認:変数を追加して調整済みR²が下がったら、その変数は不要
- 説明変数の数を制限:サンプルサイズの10分の1程度まで
- テストデータで検証:データを学習用とテスト用に分けて精度を確認
- 交差検証(Cross-Validation):データを複数のグループに分けて順番にテスト
- 重要な変数だけを選ぶ:ビジネス的に意味がある変数、p値が小さい変数のみ使用
以下の状況で、調整済みR²を計算してください。
・サンプルサイズ:n = 50
・説明変数の数:p = 4
・R² = 0.80
また、説明変数を1つ追加して p = 5 にしたところ、R² = 0.82 になりました。
この変数は追加すべきですか?
計算式:
調整済みR² = 1 – [(1 – R²) × (n – 1) / (n – p – 1)]
元のモデル(p = 4):
調整済みR² = 1 – [(1 – 0.80) × (50 – 1) / (50 – 4 – 1)]
= 1 – [0.20 × 49 / 45]
= 1 – 0.2178
= 0.7822
新しいモデル(p = 5):
調整済みR² = 1 – [(1 – 0.82) × (50 – 1) / (50 – 5 – 1)]
= 1 – [0.18 × 49 / 44]
= 1 – 0.2004
= 0.7996
比較:
| モデル | R² | 調整済みR² |
|---|---|---|
| 元のモデル(p=4) | 0.80 | 0.7822 |
| 新しいモデル(p=5) | 0.82 | 0.7996 |
結論:
調整済みR²が 0.7822 → 0.7996 に上がったので、この変数は追加すべきです。ただし、上昇幅は小さい(+0.0174)ので、ビジネス的な重要性やp値も確認して、最終判断しましょう。
❓ よくある質問
理論的にはあり得ますが、現実ではほとんどありません。
R² = 1.0の意味:
すべてのデータ点が、回帰直線上にぴったり乗っている → 完璧な予測
現実では:
- 物理法則に基づく実験データなら、R² = 0.99以上もあり得る
- ビジネスデータでR² = 1.0なら、何か間違っている可能性が高い(データの入力ミス、目的変数と説明変数が同じ、など)
注意:R² = 0.999…のような非常に高い値も、過学習の可能性があるので注意!
通常の回帰分析では、R²は0〜1の範囲です。
ただし、以下の場合にマイナスになることがあります:
1. テストデータでの評価
学習データとは別のテストデータで予測精度を評価する場合、予測が平均値よりも悪いと、R²がマイナスになることがある。
→ これは過学習のサインです!
2. 切片なしの回帰
切片(定数項)を含めずに回帰分析を行うと、R²がマイナスになることがある。
対処:
- 通常は切片を含めて分析する
- R²がマイナスなら、モデルが不適切なので見直す
計算方法は同じですが、意味が少し異なります。
単回帰のR²:
- 1つの説明変数による説明力
- 相関係数rの2乗と同じ(R² = r²)
- 例:R² = 0.64 → 相関係数 r = 0.8
重回帰のR²:
- 複数の説明変数による総合的な説明力
- 相関係数とは直接の関係なし
- 通常、単回帰より高くなる(変数が増えるため)
重要:重回帰では、調整済みR²を使ってモデルを比較しましょう。
はい、いくつかの方法があります。
1. 重要な説明変数を追加
目的変数に影響する他の要因を見つけて追加(ただし、むやみに増やすと過学習のリスク)
2. 外れ値を除去
極端な値がR²を下げることがある(ただし、外れ値にも意味がある場合は残す)
3. 変数変換
対数変換、平方根変換など。非線形の関係を線形に近づける
4. 交互作用項の追加
X1×X2のような項を追加。2つの変数の相乗効果を捉える
5. 多項式回帰
X、X²、X³など。曲線的な関係を捉える
注意:R²を高くすることが目的ではなく、予測精度を高めることが目的!調整済みR²やテストデータでの精度を必ず確認しましょう。
必ずしもそうとは限りません。
R²が低くても使える場合:
1. 分野による
社会科学や心理学では、R² = 0.3でも「良い」とされる。人間の行動は予測が難しいため。
2. ビジネス的価値がある
R² = 0.4でも、ROIが高ければ十分使える。例:広告費と売上の関係が40%でも説明できれば、広告戦略に役立つ。
3. 他に良い手法がない
R²が低くても、何も予測しないよりはマシ。ただし、限界を認識して使う。
R²が低い時の対応:
- 他の説明変数を探す
- 別の分析手法を検討(機械学習など)
- 予測ではなく、要因分析に使う
- 「予測精度は低い」と明記して使う
単回帰の場合:R² = r²(相関係数の2乗)
例:
- 相関係数 r = 0.9 → R² = 0.81
- 相関係数 r = 0.8 → R² = 0.64
- 相関係数 r = 0.7 → R² = 0.49
- 相関係数 r = -0.8 → R² = 0.64(マイナスの相関でも同じ)
重回帰の場合:
複数の変数があるため、単純にr²とはならない。重相関係数R(重決定係数の平方根)を使う。
注意:相関係数は-1〜1の範囲ですが、R²は0〜1の範囲です。
学習メモ
ビジネスデータ分析・意思決定 - Step 12