本文解释线性回归模型的一些度量参数及其之间的关系,并通过示例说明其计算过程。
模型度量参数概述
当我们使用回归模型时,通常在输出包括一些度量拟合程度的参数。
-
Multiple R
多个变量之间多重相关性。对于简单线性回归模型,表示预测变量与响应变量之间的相关性;对于多重线性回归模型,响应变量的观测值和预测值之间的相关性。其平方值为R-Squared。
-
R-Squared
也称为决定系数,它是衡量线性回归模型拟合数据集的程度,表示一定比例响应变量的方差能够被预测变量解释。R-Squared 取值范围是0 ~ 1。R-Squared 值越高,模型拟合数据集越好。0 表示响应变量完全不能被预测变量解释,1表示响应变量可以完美无误被预测变量解释。
R-Squared = (Multiple R)^2
实际应用中,我们通常更关注R-Squared ,因为它表示预测变量能够解释响应变量的比例。但每当增加新的预测变量至模型时,即使该预测变量不其作用R-Squared值也会增加。因此需要引入挑战R-Squared。
- Adjusted R-squared
Adjusted R-squared 是 R-squared 的修正版本,它调整计算回归模型中预测变量的数量。公式如下:
Adjusted R^2 = 1 – [(1-R^2)*(n-1)/(n-k-1)]
-R2: 预测模型的R-squared
-n: 观测值数量
-k: 预测变量数量
既然随着预测变量增加R-squared值总是增加,Adjusted R-squared 可以作为更有效的度量参数,它根据模型中预测因子的数量进行调整,表示模型的拟合程度。
为了更好理解上述度量参数,下面通过示例进行说明。
示例说明 Multiple R, R-Squared, Adjusted R-Squared
假设我们有下面数据集,共包括12位学生的考试成绩情况:
examResult <- data.frame(hours=c(1,1,2,2,1,2,2,3,3,4,4,5),
c_score=c(65,78,76,76,79,80,81,84,88,85,96,90),
e_score=c(58,61,62,65,65,68,72,74,78,85,90,95))
fit <- lm(e_score~., examResult)
summary(fit)
# Call:
# lm(formula = e_score ~ ., data = examResult)
#
# Residuals:
# Min 1Q Median 3Q Max
# -4.8846 -1.2972 0.0766 2.2901 3.0411
#
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 17.1754 12.5562 1.368 0.204527
# hours 6.3840 1.0867 5.874 0.000236 ***
# c_score 0.4861 0.1794 2.709 0.024037 *
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# Residual standard error: 2.79 on 9 degrees of freedom
# Multiple R-squared: 0.9558, Adjusted R-squared: 0.946
# F-statistic: 97.39 on 2 and 9 DF, p-value: 7.996e-07
上面输出没有Multiple R,对于多个预测变量,Multiple R即响应变量与预测变量之间的相关性,下面我们自己计算,然后再计算Multiple R的平方:
library(tidyverse)
fit
# Call:
# lm(formula = e_score ~ ., data = examResult)
#
# Coefficients:
# (Intercept) hours c_score
# 17.1754 6.3840 0.4861
examResult <- examResult %>% mutate(yp = ( 17.1754 + 6.3840 * hours + 0.4861 * c_score))
examResult
# hours c_score e_score yp
# 1 1 65 58 55.1559
# 2 1 78 61 61.4752
# 3 2 76 62 66.8870
# 4 2 76 65 66.8870
# 5 1 79 65 61.9613
# 6 2 80 68 68.8314
# 7 2 81 72 69.3175
# 8 3 84 74 77.1598
# 9 3 88 78 79.1042
# 10 4 85 85 84.0299
# 11 4 96 90 89.3770
# 12 5 90 95 92.8444
mr <- cor(examResult$e_score, examResult$yp)
mr
# [1] 0.9776676
R2 <- mr*mr
R2
# [1] 0.955834
# Adjusted R2 = 1 – [(1-R2)*(n-1)/(n-k-1)]
AR2 <- 1-((1-R2)*(12-1))/(12-2-1)
AR2
# [1] 0.9460193
AR2 表示根据模型中预测变量数调整的R方值。
这些度量参数非常有用。假如另一个回归模型使用10个预测变量,对应的调整R方值位0.88。对比两者带两个预测参数的模型更好,因为它的调整R方值更高(值为0.946)。
本文参考链接:https://blog.csdn.net/neweastsun/article/details/122766516