本笔记中原始数据及代码均来源于李东风先生的R语言教程,在此对李东风先生的无私分享表示感谢。
如果两个多元线性回归模型, 第一个模型中的自变量都在第二个模型中, 且第二个模型具有更多的自变量, 则称第一个模型嵌套在第二个模型中。 例如:第一个模型中自变量为x1,x2,x3, 第二个模型自变量为x1,x2,x3,x4,x5, 则第一个模型嵌套在第二个模型中。
又如:第一个模型自变量为x1,x2, 第二个模型自变量为x1,x2,x1方,x2方,x1x2, 则第一个模型嵌套在第二个模型中。 这时令x3=x1方,x4=x2方 ,x5=x1x2 , 第二个模型变成有5个自变量的多元线性回归模型。
在嵌套的模型中, 相对而言自变量多的模型叫做完全模型(full model), 自变量少的模型叫做简化模型(reduced model)。 完全模型是否比简化模型更好? 在回归模型选择中贯彻一个“精简性”原则(Ocam’s razor): 在对建模数据拟合效果相近的情况下, 越简单的模型越好。
例如:全模型是
精简模型是
判断两个模型是否没有显著差异,只要检验:
这可以构造一个方差分析F检验, 设全模型有t个自变量, 模型得到的回归残差平方和为SSEf; 设精简模型有s个自变量(s
在全模型成立且H0成立时,F服从分布F(t-s,n-t-1)。 计算右侧p值。 在R中用anova()函数比较两个嵌套的线性回归结果可以进行这样的方差分析F检验。
例如,餐馆营业额回归模型的比较。 lmrst01是完全模型,包含5个自变量; lmrst02是嵌套的精简模型, 包含居民数、人均餐费、到市中心距离共3个自变量。 用anova()函数可以检验多出的变量是否有意义:
anova(lmrst01, lmrst02)
## Analysis of Variance Table## ## Model 1: 营业额 ~ 居民数 + 人均餐费 + 月收入 + 餐馆数 + 距离## Model 2: 营业额 ~ 居民数 + 人均餐费 + 距离## Res.Df RSS Df Sum of Sq F Pr(>F)## 1 19 2153.0 ## 2 21 2267.2 -2 -114.17 0.5038 0.6121
模型p值为0.61, 在0.05水平下不拒绝多出的月收入和餐馆数的系数全为零的零假设, 两个模型的效果没有显著差异, 应选择更精简的模型。 方差分析检验仅能比较嵌套模型。 对不同模型计算AIC, 取AIC较小的模型, 这可以对非嵌套的模型进行比较选择。 R中用AIC()函数比较两个回归结果的AIC值。 如:
AIC(lmrst01, lmrst02)
## df AIC## lmrst01 7 196.3408## lmrst02 5 193.6325
精简模型lmrst02的AIC更小,是更好的模型。
往期回顾
R相关与回归学习笔记(一)——相关分析
R相关与回归学习笔记(二)——相关与因果、相关系数大小、相关系数的检验
R相关与回归学习笔记(三)——相关阵、一元回归分析
R相关与回归学习笔记(五)——回归有效性
R相关与回归学习笔记(六)——R程序
R相关与回归学习笔记(七)——回归诊断(一)
R相关与回归学习笔记(七)——回归诊断(二)
R相关与回归学习笔记(八)——回归诊断(三)
R相关与回归学习笔记(九)——预测区间、控制、多元线性回归模型
R相关与回归学习笔记(十)——参数估计、R的多元回归程序(一)
R相关与回归学习笔记(十一)——模型的检验
R相关与回归学习笔记(十二)——线性关系检验、单个斜率项的显著性检验
R相关与回归学习笔记(十三)——回归自变量筛选
R相关与回归学习笔记(十四)——哑变量与变截距项的模型(一)
R相关与回归学习笔记(十五)——哑变量与变截距项的模型(二)
R相关与回归学习笔记(十六)——残差诊断(一)
R相关与回归学习笔记(十七)——残差诊断(二)
R相关与回归学习笔记(十八)——残差诊断(三)
R相关与回归学习笔记(十八)——多重共线性
R相关与回归学习笔记(十九)——强影响点分析、过度拟合示例(一)
R相关与回归学习笔记(二十)——强影响点分析、过度拟合示例(二)
R相关与回归学习笔记(二十一)——过度拟合示例(三)