用 R² 评估模型拟合

Tidyverse 的数据建模

Albert Y. Kim

Assistant Professor of Statistical and Data Sciences

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

# 模型 1:价格 ~ 面积 与 建造年份
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²

# 模型 3:价格 ~ 面积 与 房屋状况
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 的数据建模

Vamos praticar!

Tidyverse 的数据建模

Preparing Video For Download...