最終迴歸模型的選擇老是會涉及預測精度(模型儘量的擬合數據)與模型潔度(一個簡單能複製的模型)的調和問題函數
能夠將模型中的某些變量增刪,而後比較先後模型的擬合效果,好比說在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 值較小的模型更佳