R二乗によるモデル適合度の評価

tidyverse で学ぶモデリング

Albert Y. Kim

Assistant Professor of Statistical and Data Sciences

R二乗

$R^2 = 1 - \frac{\text{Var}(\text{residuals})}{\text{Var}(y)}$

  • $R^2$ は 0 から 1 の間
  • $R^2$ が小さい → 「適合度が低い」
  • $R^2 = 1$ → 「完全適合」、$R^2 = 0$ → 「適合なし」
tidyverse で学ぶモデリング

R二乗が高い場合の例

$R^2 = 1 - \frac{\text{Var}(\text{residuals})}{\text{Var}(y)}$

tidyverse で学ぶモデリング

R二乗が高い場合:「完全」適合

$R^2 = 1 - \frac{\text{Var}(\text{residuals})}{\text{Var}(y)}$

tidyverse で学ぶモデリング

R二乗が低い場合の例

$R^2 = 1 - \frac{\text{Var}(\text{residuals})}{\text{Var}(y)}$

tidyverse で学ぶモデリング

R二乗が低い場合の例

$R^2 = 1 - \frac{\text{Var}(\text{residuals})}{\text{Var}(y)}$

tidyverse で学ぶモデリング

数値的な解釈

$$

$\text{Var}(y) \geq \text{Var}(\text{residuals})$ であるため、 $$

$R^2 = 1 - \frac{\text{Var}(\text{residuals})}{\text{Var}(y)} = \frac{\text{Var}(y) - \text{Var}(\text{residuals})}{\text{Var}(y)}$

$$

$R^2$ の解釈:目的変数 $y$ の総変動のうち、モデルが説明する割合

tidyverse で学ぶモデリング

R二乗の計算

# Model 1: price as a function of size and year built
model_price_1 <- lm(log10_price ~ log10_size + yr_built,
                    data = house_prices)

get_regression_points(model_price_1) %>%
  summarize(r_squared = 1 - var(residual)/var(log10_price))
# A tibble: 1 x 1
  r_squared
      <dbl>
1     0.483
tidyverse で学ぶモデリング

R二乗の計算

# Model 3: price as a function of size and condition
model_price_3 <- lm(log10_price ~ log10_size + condition,
                    data = house_prices)

get_regression_points(model_price_3) %>%
  summarize(r_squared = 1 - var(residual)/var(log10_price))
# A tibble: 1 x 1
  r_squared
      <dbl>
1     0.462
tidyverse で学ぶモデリング

練習しましょう!

tidyverse で学ぶモデリング

Preparing Video For Download...