最终回归模型的选择老是会涉及预测精度(模型尽量的拟合数据)与模型洁度(一个简单能复制的模型)的调和问题函数
能够将模型中的某些变量增删,而后比较先后模型的拟合效果,好比说在state的多元回归模型中,发现Income、Frost的回归系数不显著,因此将两项移除,构建新的模型进行比较spa
基础包的 anova() 函数能够比较两个嵌套模型的拟合优度,嵌套模型指一些项包含在另一个模型中code
#主要思路 #一、拟合模型,而后将模型放入 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值较小的模型要优先选择,它说明了模型用较小的参数得到了足够的拟合度。该准则可用 AIC() 函数实现orm
> 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 值较小的模型更佳