本文介绍最佳回归模型选择指标——马洛斯CP指标,并通过示例说明选择过程及如何计算。
马洛斯CP(Mallows’Cp) 指标用于在多个不同模型中选择最佳回归模型。其计算公式为:
Cp = R S S p / S 2 – N + 2 ( P + 1 ) {RSS_p/S^2 – N + 2(P+1)} RSSp/S2–N+2(P+1)
参数说明:
- R S S p {RSS_p} RSSp : 有P个预测变量模型的残差平方和
- S 2 {S^2} S2 : 模型的均方差(通过MSE计算)
- N :样本大小
- P :预测变量个数
当我们有多个潜在预测变量,基于这些变量训练回归模型。需要使用马洛斯CP指标在这些预测变量的子集组合模型中识别最佳模型。
示例说明
下面实例说明如何使用马洛斯CP指标在多个潜在模型中选择最佳模型。
假设老师使用学习时间、预考成绩、GPA成绩三个预测变量在回归模型中预测期末成绩。供有7个回归模型并分布计算对应马洛斯CP指标:
预测变量 | P+1 | 马洛斯CP指标值 |
---|---|---|
Hours | 2 | 45.5 |
GPA | 2 | 31.4 |
PrepExams | 2 | 29.3 |
Hours,PrepExams | 3 | 3.4 |
Hours,GPA | 3 | 2.9 |
PrepExams,GPA | 3 | 2.7 |
Hours,PrepExams,GPA | 4 | 4 |
如果马洛斯CP指标小于系数数量(模型中的P+1),则该模型为无偏模型。上面结果中看到两个无偏结果:
- Hours,GPA :P+1= 3; CP = 2.9
- PrepExams,GPA: P+1= 3; CP = 2.7
这两个模型中PrepExams,GPA的CP值最小,说明该模型偏差最小,为最佳模型。可以通过下图更直观看到最佳模型选择:
计算CP值
最简单的计算方法是是使用olsrr包中的 ols_mallows_cp() 函数:
# library(olsrr)
# 使用全部预测变量
full_model <- lm(mpg ~ ., data = mtcars)
# 拟合三个较少预测变量模型
model1 <- lm(mpg ~ disp + hp + wt + qsec, data = mtcars)
model2 <- lm(mpg ~ disp + qsec, data = mtcars)
model3 <- lm(mpg ~ disp + wt, data = mtcars)
ols_mallows_cp(model1, full_model)
# [1] 4.430434
# ols_mallows_cp(model2, full_model)
# [1] 18.64082
ols_mallows_cp(model3, full_model)
# [1] 9.122225
- model1: p+1=5, cp = 4.43
- model2: p+1=3, cp = 18.63
- model3: p+1=30,cp = 9.12
我们看到model1的cp值接近p+1,表明它是几个模型中的最佳选择。
CP值说明
- 模型的马洛斯CP指标值接近P+1,表示模型的偏差较低
- 如果每个备选模型的马洛斯CP指标都比较高,则表明模型中缺少一些重要预测变量
- 如果几个备选模型有较低的马洛斯CP指标值,则选择最小CP指标模型为最佳模型
另外,为判断回归模型的拟合质量,马洛斯CP指标是其中的一个指标。还有其他指标,如校正R方,因为预测变量增加R-squared值总是增加,校正R方(Adjusted R-squared) 可以作为更有效的度量参数,它根据模型中预测因子的数量进行调整,表示模型的拟合程度。
实际选择回归模型时,一般会同时使用校正R方和马洛斯CP值两个衡量指标。
本文参考链接:https://blog.csdn.net/neweastsun/article/details/124766318