R二乗($R^2$)

R による Supervised Learning:回帰

Nina Zumel and John Mount

Win-Vector LLC

$R^2$ とは?

モデルがデータにどれだけ当てはまるかを示す指標

  • 0〜1の値をとる
    • 1に近い:モデルの当てはまりが良い
    • 0に近い:平均値の予測と変わらない
R による Supervised Learning:回帰

$R^2$ の計算

$R^2$ はモデルによって説明される分散です。

$$ R^2 = 1 - \frac{RSS}{SS_{Tot}} $$

ここで

  • $RSS = \sum{(y - prediction)^2}$
    • 残差平方和(モデルによる分散)
  • $SS_{Tot} = \sum{(y - \overline{y})^2}$
    • 全平方和(データの分散)
R による Supervised Learning:回帰

住宅価格モデルの $R^2$ を計算する:RSS

  • 誤差を計算する
err <- houseprices$prediction - houseprices$price
  • 二乗して合計をとる
rss <- sum(err^2)
  • price:実際の販売価格の列(千単位)
  • pred:予測販売価格の列(千単位)
  • $RSS \approx$ 136138
R による Supervised Learning:回帰

住宅価格モデルの $R^2$ を計算する:$SS_{Tot}$

  • 価格と平均価格の差を求める
toterr <- houseprices$price - mean(houseprices$price)
  • 二乗して合計をとる
sstot <- sum(toterr^2)
  • $RSS \approx$ 136138
  • $SS_{Tot} \approx$ 713615
R による Supervised Learning:回帰

住宅価格モデルの $R^2$ を計算する

(r_squared <- 1 - (rss/sstot) )
0.8092278
  • $RSS \approx$ 136138
  • $SS_{Tot} \approx$ 713615
  • $R^2 \approx$ 0.809
R による Supervised Learning:回帰

lm() モデルから $R^2$ を読み取る

# From summary()
summary(hmodel)
...
Residual standard error: 60.66 on 37 degrees of freedom
Multiple R-squared:  0.8092, Adjusted R-squared:  0.7989 
F-statistic: 78.47 on 2 and 37 DF,  p-value: 4.893e-14
summary(hmodel)$r.squared
0.8092278
# From glance()
glance(hmodel)$r.squared
0.8092278
R による Supervised Learning:回帰

相関と $R^2$

rho <- cor(houseprices$prediction, houseprices$price)
0.8995709
rho^2
0.8092278
  • $\rho$ = cor(prediction, price) = 0.8995709
  • $\rho^2$ = 0.8092278 = $R^2$
R による Supervised Learning:回帰

相関と $R^2$

  • 二乗誤差を最小化するモデルで成立:
    • 線形回帰
    • GAM回帰
    • 二乗誤差を最小化するツリー系アルゴリズム
  • 訓練データでのみ成立;将来のデータには成立しない
R による Supervised Learning:回帰

練習しましょう!

R による Supervised Learning:回帰

Preparing Video For Download...