決定係数(R²)の計算方法(公式・入力・限界)

R²(決定係数)の計算手順、入力、よくある制限を学びましょう。

決定係数(R²)の計算方法(公式・入力・限界)

直接の答え:R squared とは何ですか?

決定係数(R squared、しばしば R² と表記)は、観測された目的変数(従属変数)の変動が、当てはめた予測(モデルの出力)によってどれくらい説明されているかを表す数値です。最も一般的な形では、R² は次の2つの量から計算されます:

  • 観測データにおける総変動
  • 当てはめた予測を使った後に残る残差(未説明)の変動

平易に言うと、残差の変動が総変動に比べて小さければ R² は高くなり、大きければ R² は低くなります。

メカニズム:公式と、必要なすべての入力

1) データを定義する

R² を計算するには、観測値の集合と、それに対応する当てはめ(予測)値が必要です。

  • 観測値:(y_1, y_2, \dots, y_n)
  • 当てはめ(予測)値:(\hat{y}_1, \hat{y}_2, \dots, \hat{y}_n)
  • 観測値の標本平均:(\bar{y} = \frac{1}{n}\sum_{i=1}^{n} y_i)

ここで (n) は、評価しているデータ点の数です。

2) 平方和を計算する

R² は、平均からの差や、当てはめ予測からの差に基づく平方和を使います。

  • 全平方和(平均の周りの変動): [ \mathrm{SST} = \sum_{i=1}^{n} (y_i - \bar{y})^2 ]

  • 残差平方和(当てはめ後に残る変動): [ \mathrm{SSE} = \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 ]

3) 決定係数(R squared)を計算する

最も一般的な定義では: [ R^2 = 1 - \frac{\mathrm{SSE}}{\mathrm{SST}} ]

これには (\mathrm{SST} > 0) が必要です。もしすべての観測 (y_i) が同一なら、(\mathrm{SST}=0) となり、この形では R² は意味のある形で定義されません。

4) 重要な実務上の選択:(\hat{y}) はどのデータで計算される?

この公式自体は、(\hat{y}) がどこから来るかを指定しません。つまり:

  • モデルを当てはめるのに使った同じデータ(学習データ内、in-sample)、または
  • 当てはめの際に使わなかった別データ(学習データ外、out-of-sample)

学習データ内の当てはめ値を使うと、柔軟なモデルでは性能が過大評価されがちです。学習データ外の予測を使うと、関係がどれくらい一般化するかをより現実的に示せますが、モデルが方向性として有用でも R² が下がることがあります。

証拠または例:具体的な計算(明示的な前提つき)

(n=3) の観測値 (y) があり、同じ3点に対して当てはめ値 (\hat{y}) を出すモデルがあるとします。

次のようにします:

  • (y = [2,\ 4,\ 6])
  • (\hat{y} = [2,\ 5,\ 5])

手順 1:平均を計算する [ \bar{y} = (2+4+6)/3 = 4 ]

手順 2:(\mathrm{SST}) を計算する [ \mathrm{SST} = (2-4)^2 + (4-4)^2 + (6-4)^2 = 4 + 0 + 4 = 8 ]

手順 3:(\mathrm{SSE}) を計算する [ \mathrm{SSE} = (2-2)^2 + (4-5)^2 + (6-5)^2 = 0 + 1 + 1 = 2 ]

手順 4:R² を計算する [ R^2 = 1 - 2/8 = 1 - 0.25 = 0.75 ]

この計算では、0.75 は残差の変動が総変動の4分の1であることを(この評価設定において)示しています。

限界と失敗パターン:R² が間違える可能性があること

R² は広く使われていますが、有用性の保証ではありません。いくつかの重要な制限によって誤解を招くことがあります。

1) 学習データ内で評価すると過学習になる

モデルが柔軟で、学習に使った同じデータセット上で当てはめ値を使って R² を計算すると、残差誤差が不自然に小さくなることがあります。これにより、モデルが安定した関係を捉えていない場合でも高い R² が出ることがあります。

2) 非線形性の不一致

R² は、残差を通じて予測値が観測値にどれだけ合っているかを測ります。モデリング手法がその構造(たとえば線形性)を強制しない限り、基礎となる関係が特定の構造を持つことは保証しません。

データ範囲を超えた外挿に対して不適切でも、R² が中程度または高い値になることがあります。なぜなら R² は普遍的な法則ではなく、評価用データセットに対する記述だからです。

3) スケールと前処理の影響

SST と SSE は (y) のスケールに依存するため、前処理(差分化、正規化、変換など)によって R² が変わり得ます。異なる変換を行う2人のアナリストは、「当てはまりの質」が同程度でも、異なる R² 値にたどり着く可能性があります。

4) R² は未定義になったり直感に反したりすることがある

  • (\mathrm{SST}=0) なら、式が破綻します。
  • 予測がどのように作られるか、また調整済みのような代替定義を使うかによって、「説明された割合」よりも直感的でない値になることがあります。

5) 関係 vs. 因果

R² は、予測が観測にどれだけ密接に追随するかを定量化します。なぜその関係が存在するのかは示しません。R² が高くても、その関連は共通の要因、データ上のアーティファクト、あるいは偶然のパターンを反映している可能性があります。

確認と次の質問:報告された R squared を独立にチェックする方法

報告された R² を見た場合、将来の性能に関する主張に頼らずに、次の事実を確認することで計算を検証できます:

  1. 評価データセットのサイズ (n) を確認する。
  2. 観測値 (y_i) を入手する。
  3. 残差誤差を計算するために使われた当てはめ/予測値 (\hat{y}_i) を特定する。
  4. (\bar{y})、SST、SSE を再計算し、その後 (R^2 = 1 - \mathrm{SSE}/\mathrm{SST}) を計算する。

提供者や計算者が、どの (\hat{y}) を使ったか(学習データ内 vs 学習データ外)や、どの前処理が適用されたかを述べていない場合、報告された R² はそれでも数学的には定義されていますが、セットアップ間での比較は不確実になります。

有用なフォローアップの質問は、関連する概念(たとえば異なる評価分割やモデリング形式を使うなど)で計算したときに R² がどう違うかです。これらの選択によって、R² が実際に測っているものが変わるからです。

DOCUMENT END

外国為替およびCFD取引には大きなリスクがあります。FoxiForexの情報は教育目的であり、個別の金融助言ではありません。スポンサー掲載は明確に表示されます。