如何计算 r 中调整后的 r 平方
R 平方(通常写为R2 )是响应变量中可以由线性回归模型中的预测变量解释的方差的比例。
R 平方的值范围为 0 到 1。值为 0 表示响应变量根本无法由预测变量解释,而值为 1 表示响应变量可以由预测变量解释。预测器完美地解释了这一点,没有错误。变量。
调整后的 R 平方是 R 平方的修改版本,可根据回归模型中的预测变量数量进行调整。计算方法如下:
调整后的 R 2 = 1 – [(1-R 2 )*(n-1)/(nk-1)]
金子:
- R 2 :模型的R 2
- n :观察次数
- k :预测变量的数量
由于当您向模型中添加预测变量时, R2始终会增加,因此调整后的R2可以作为一个指标,告诉您模型的有用程度,并根据模型中预测变量的数量进行调整。
本教程介绍如何计算 R 中回归模型的调整后的R2 。
相关: 什么是好的 R 平方值?
示例:如何计算 R 中调整后的 R 平方
我们可以使用以下代码使用名为mtcars的内置数据集在 R 中创建多元线性回归模型:
model <- lm (hp ~ mpg + wt + drat + qsec, data=mtcars)
我们可以使用三种方法之一来找到模型的调整后的 R 平方:
方法一:使用summary()函数
我们可以使用summary()函数来可视化模型的R平方和调整后的R平方:
summary (model)
Call:
lm(formula = hp ~ mpg + wt + drat + qsec, data = mtcars)
Residuals:
Min 1Q Median 3Q Max
-48,801 -16,007 -5,482 11,614 97,338
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 473.779 105.213 4.503 0.000116 ***
mpg -2.877 2.381 -1.209 0.237319
wt 26.037 13.514 1.927 0.064600 .
drat 4.819 15.952 0.302 0.764910
qsec -20.751 3.993 -5.197 1.79e-05 ***
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 32.25 on 27 degrees of freedom
Multiple R-squared: 0.8073, Adjusted R-squared: 0.7787
F-statistic: 28.27 on 4 and 27 DF, p-value: 2.647e-09
在输出的底部我们可以看到以下内容:
- 多重 R 平方: 0.8073
- 调整后的 R 平方: 0.7787
方法2:使用summary(model)$adj.r.squared
如果我们只是想获得模型调整后的 R 平方,我们可以使用以下函数:
summary (model)$adj.r.squared
[1] 0.7787005
方法三:使用自定义函数
查找模型拟合 R 平方的另一种方法是编写自定义函数:
#define function to calculate adjusted R-squared
adj_r2 <- function (x) {
return (1 - ((1-summary(x)$r.squared)*( nobs (x)-1)/( nobs (x)- length (x$coefficients)-1)))
}
#use function to calculate adjusted R-squared of the model
adj_r2(model)
[1] 0.7787005
numeric(0)
请注意,此处共享的三种方法中的每一种都为调整后的 R 平方提供相同的值。