用 R-squared 評估模型擬合度

在 Tidyverse 中進行資料建模

Albert Y. Kim

Assistant Professor of Statistical and Data Sciences

R-squared

$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-squared 範例

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

在 Tidyverse 中進行資料建模

高 R-squared:「完美」擬合

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

在 Tidyverse 中進行資料建模

低 R-squared 範例

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

在 Tidyverse 中進行資料建模

低 R-squared 範例

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

在 Tidyverse 中進行資料建模

數值詮釋

$$

Since $\text{Var}(y) \geq \text{Var}(\text{residuals})$ and $$

$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-squared

# 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-squared

# 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...