模型比較

最終迴歸模型的選擇老是會涉及預測精度(模型儘量的擬合數據)與模型潔度(一個簡單能複製的模型)的調和問題函數

  • 模型比較

能夠將模型中的某些變量增刪,而後比較先後模型的擬合效果,好比說在state的多元迴歸模型中,發現Income、Frost的迴歸係數不顯著,因此將兩項移除,構建新的模型進行比較spa

  • anova()

基礎包的 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(Akaike Informaiton Criterion,赤池信息準則)

該方法也能夠用來比較模型,它考慮了模型的統計擬合度以及用來擬合的參數數目。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 值較小的模型更佳
相關文章
相關標籤/搜索