R语言 调整决定系数
一个拟合良好的回归模型产生的预测值接近于观察到的数据值。如果没有翔实的预测变量,通常会使用均值模型,即对每个预测值使用均值。因此,建议的回归模型的拟合度应该比平均模型的拟合度更好。用于评估回归模型拟合度的三个最常见的统计指标是。
- 决定系数(R2 ),调整后的R2
- 均方根误差 (RMSE)
- 总体F检验
因此,在这篇文章中,让我们讨论R编程中的调整决定系数或调整R2 。与决定系数本身一样, R 2 adj 描述了响应变量y的方差,它可以在独立特征变量x的基础上进行预测。然而,有两个重要区别。
- R 2 adj考虑到了数据集中的变量数量。它对不符合所建立的回归模型的数据点进行惩罚。
- 上述声明的含义是, R 2 adj与R2 不同,不会随着特征变量的增加而持续增加(由于其数学计算的变化),并且不考虑不影响特征变量的独立变量。这可以保护模型不被过度拟合。
因此,这个指标比R2 更适合于多元回归模型,R2 只适用于简单的线性回归模型。
数学公式
其中
n :数据点的数量
k :不包括结果的变量数
R 2:决定系数
例子
输入: 一个有20条树木记录的数据集,标签为高度、周长和体积。该数据集的结构如下。
模型1: 该模型考虑高度和体积来预测树围。
模型 2: 该模型只考虑体积来预测树围。
输出
Model 1: R-squared: 0.9518, Adjusted R-squared: 0.9461
Model 2: R-squared: 0.9494, Adjusted R-squared: 0.9466
结果解释: 模型1认为身高是决定腰围的一个变量,这一点并不总是真实的,因此,在模型中认为是一个不相关的标签。R-squared的结果表明模型1有更好的拟合度,这显然不是真的。衡量标准调整后的R-squared,模型2的R-squared更大,缓解了这种不正常现象。
在R中的实现
在R语言中找出调整后的决定系数是非常容易的 。要遵循的步骤是 。
- 在R语言中制作一个数据框。
- 计算多元线性回归模型并将其保存在一个新的变量中。
- 这样计算出来的新变量的摘要有一个调整后的决定系数或调整后的R平方参数,需要提取出来。
例子
# R program to illustrate
# Adj Coefficient of determination
# Creating a dataframe
sample_data <- data.frame(col1 = c(10, 20, 30, 40, 50),
col2 = c(1, 2, 3, 2, 2),
col3 = c(10, 20, 30, 20, 25))
# multiple regression model
# where col1, col2 are features
sample_model <- lm(col3~col1 + col2,
data = sample_data)
# Extracting Adj R-squared parameter
# from summary
summary(sample_model)$adj.r.squared
输出
[1] 0.9318182