最终回归模型的选择总是会涉及预测精度(模型尽可能的拟合数据)与模型洁度(一个简单能复制的模型)的调和问题
- 模型比较
可以将模型中的某些变量增删,然后比较前后模型的拟合效果,比如说在state的多元回归模型中,发现Income、Frost的回归系数不显著,所以将两项移除,构建新的模型进行比较
- anova()
基础包的 anova() 函数可以比较两个嵌套模型的拟合优度,嵌套模型指一些项包含在另外一个模型中
#主要思路
#1、拟合模型,然后将模型放入 anova(),进行方差分析
#判断F统计量的P值,Pr(>F), 0.9939 > α(α=0.05),所以不显著,因此得到可以不将这两变量加到模型中
> states <- as.data.frame(state.x77[,c("Murder", "Population",
+ "Illiteracy", "Income", "Frost")])
> fit1 <- lm(Murder ~ Population + Illiteracy + Income + Frost,
+ data=states)
> fit2 <- lm(Murder ~ Population + Illiteracy, data=states)
> anova(fit1,fit2)
Analysis of Variance Table
Model 1: Murder ~ Population + Illiteracy + Income + Frost
Model 2: Murder ~ Population + Illiteracy
Res.Df RSS Df Sum of Sq F Pr(>F)
1 45 289.17
2 47 289.25 -2 -0.078505 0.0061 0.9939
- AIC(Akaike Informaiton Criterion,赤池信息准则)
该方法也可以用来比较模型,它考虑了模型的统计拟合度以及用来拟合的参数数目。AIC值较小的模型要优先选择,它说明了模型用较小的参数获得了足够的拟合度。该准则可用 AIC() 函数实现
> states <- as.data.frame(state.x77[,c("Murder", "Population",
+ "Illiteracy", "Income", "Frost")])
> fit1 <- lm(Murder ~ Population + Illiteracy + Income + Frost,
+ data=states)
> fit2 <- lm(Murder ~ Population + Illiteracy, data=states)
> AIC(fit1,fit2)
df AIC
fit1 6 241.6429
fit2 4 237.6565
#Aic 值较小的模型更佳