Skip to main content
 首页 » 人工智能

最佳回归模型选择指标——马洛斯CP值

2022年07月19日146mayingbao

本文介绍最佳回归模型选择指标——马洛斯CP指标,并通过示例说明选择过程及如何计算。

马洛斯CP(Mallows’Cp) 指标用于在多个不同模型中选择最佳回归模型。其计算公式为:

Cp = R S S p / S 2 – N + 2 ( P + 1 ) {RSS_p/S^2 – N + 2(P+1)} RSSp/S2N+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