Anova

GAM 擬合總結

  • September 28, 2017

如果我們適合這樣的 GAM:

gam.fit = gam::gam(Outstate ~ Private + s(Room.Board, df = 2) + s(PhD, df = 2) + 
   s(perc.alumni, df = 2) + s(Expend, df = 5) + s(Grad.Rate, df = 2), data = College)

在哪裡,我們使用數據集College,可以在包中找到ISLR

現在,如果我們找到這個擬合的摘要,那麼我們可以看到:

> summary(gam.fit)

Call: gam(formula = Outstate ~ Private + s(Room.Board, df = 2) + s(PhD, 
   df = 2) + s(perc.alumni, df = 2) + s(Expend, df = 5) + s(Grad.Rate, 
   df = 2), data = College)
Deviance Residuals:
    Min       1Q   Median       3Q      Max 
-7522.66 -1140.99    55.18  1287.51  7918.22 

(Dispersion Parameter for gaussian family taken to be 3475698)

   Null Deviance: 12559297426 on 776 degrees of freedom
Residual Deviance: 2648482333 on 762.0001 degrees of freedom
AIC: 13924.52 

Number of Local Scoring Iterations: 2 

Anova for Parametric Effects
                       Df     Sum Sq    Mean Sq F value    Pr(>F)    
Private                  1 3377801998 3377801998 971.834 < 2.2e-16 ***
s(Room.Board, df = 2)    1 2484460409 2484460409 714.809 < 2.2e-16 ***
s(PhD, df = 2)           1  839368837  839368837 241.496 < 2.2e-16 ***
s(perc.alumni, df = 2)   1  509679160  509679160 146.641 < 2.2e-16 ***
s(Expend, df = 5)        1 1019968912 1019968912 293.457 < 2.2e-16 ***
s(Grad.Rate, df = 2)     1  148052210  148052210  42.596 1.227e-10 ***
Residuals              762 2648482333    3475698                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Anova for Nonparametric Effects
                      Npar Df Npar F   Pr(F)    
(Intercept)                                      
Private                                          
s(Room.Board, df = 2)        1  3.480 0.06252 .  
s(PhD, df = 2)               1  1.916 0.16668    
s(perc.alumni, df = 2)       1  1.471 0.22552    
s(Expend, df = 5)            4 34.350 < 2e-16 ***
s(Grad.Rate, df = 2)         1  1.981 0.15971    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

在這裡,我不明白“參數效果的方差分析”以及“非參數效果的方差分析”部分的含義。雖然我知道 ANOVA 測試的工作原理,但我無法理解摘要的“參數效應”和“非參數效應”部分。那麼,它們是什麼意思?它們的意義是什麼?


這個問題的出現​​是由於這個答案的(d)部分,對於問題 10,統計學習的介紹第 7 章。

這種擬合 GAM 的方法的輸出結構是將平滑器的線性部分與其他參數項組合在一起。注意Private在第一個表中有一個條目,但在第二個表中它的條目是空的。這是因為Private是一個嚴格的參數項;它是一個因子變量,因此與代表 的影響的估計參數相關聯Private。平滑項分為兩種效果的原因是,此輸出允許您確定平滑項是否具有

  1. 非線性效應:查看非參數表並評估顯著性。如果顯著,則保留為平滑的非線性效應。如果不顯著,請考慮線性效應(以下 2.)
  2. 線性效應:查看參數表並評估線性效應的重要性。如果顯著,您可以在描述模型的公式中將術語轉換為平滑s(x)-> x。如果無關緊要,您可能會考慮完全從模型中刪除該術語(但請注意這一點 — 這相當於強烈聲明真實效果 == 0)。

參數表

此處的條目就像您將其擬合為線性模型併計算 ANOVA 表所獲得的一樣,但沒有顯示任何相關模型係數的估計值。代替估計的係數和標準誤差,以及相關的t或 Wald 檢驗,解釋的方差量(根據平方和)顯示在 F 檢驗旁邊。與配備多個協變量(或協變量函數)的其他回歸模型一樣,表中的條目取決於模型中的其他項/函數。

非參數表

參數效應與擬合的平滑器的非線性部分有關。除 的非線性效應外,這些非線性效應均不顯著Expend。有一些證據表明 的非線性效應Room.BoardNpar Df每一個都與一定數量的非參數自由度test(

非參數部分的這些檢驗可以解釋為對線性關係而不是非線性關係的原假設的檢驗

您可以解釋這一點的方式是,僅Expend保證被視為平滑的非線性效應。其他平滑可以轉換為線性參數項。一旦將其他平​​滑轉換為線性參數項,您可能需要檢查平滑是否Room.Board繼續具有非顯著的非參數效果;可能Room.Board是輕微非線性的影響,但這會受到模型中其他平滑項的影響。

然而,這在很大程度上可能取決於許多平滑只允許使用 2 個自由度的事實;為什麼2?

自動平滑度選擇

較新的擬合 GAM 方法將通過自動平滑度選擇方法為您選擇平滑度,例如推薦包mgcv中實施的 Simon Wood 的懲罰樣條方法:

data(College, package = 'ISLR')
library('mgcv')

set.seed(1)
nr <- nrow(College)
train <- with(College, sample(nr, ceiling(nr/2)))
College.train <- College[train, ]
m <- mgcv::gam(Outstate ~ Private + s(Room.Board) + s(PhD) + s(perc.alumni) + 
              s(Expend) + s(Grad.Rate), data = College.train,
              method = 'REML')

模型總結更簡潔,直接將平滑函數視為一個整體而不是線性(參數)和非線性(非參數)貢獻:

> summary(m)

Family: gaussian 
Link function: identity 

Formula:
Outstate ~ Private + s(Room.Board) + s(PhD) + s(perc.alumni) + 
   s(Expend) + s(Grad.Rate)

Parametric coefficients:
           Estimate Std. Error t value Pr(>|t|)    
(Intercept)   8544.1      217.2  39.330   <2e-16 ***
PrivateYes    2499.2      274.2   9.115   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
                edf Ref.df      F  p-value    
s(Room.Board)  2.190  2.776 20.233 3.91e-11 ***
s(PhD)         2.433  3.116  3.037 0.029249 *  
s(perc.alumni) 1.656  2.072 15.888 1.84e-07 ***
s(Expend)      4.528  5.592 19.614  < 2e-16 ***
s(Grad.Rate)   2.125  2.710  6.553 0.000452 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

R-sq.(adj) =  0.794   Deviance explained = 80.2%
-REML = 3436.4  Scale est. = 3.3143e+06  n = 389

現在,輸出將平滑項和參數項收集到單獨的表格中,後者獲得了更熟悉的輸出,類似於線性模型的輸出。平滑項整體效果如下表所示。這些測試與gam::gam您展示的模型不同;它們是針對零假設的檢驗,即平滑效應是平坦的水平線、零效應或顯示零效應。另一種選擇是真正的非線性效應不為零。

請注意,除 外,EDF 均大於 2 s(perc.alumni),這表明該gam::gam模型可能有點限制。

用於比較的擬合平滑由下式給出

plot(m, pages = 1, scheme = 1, all.terms = TRUE, seWithMean = TRUE)

產生

在此處輸入圖像描述

自動平滑度選擇也可以用於完全從模型中縮小項:

完成後,我們看到模型擬合併沒有真正改變

> summary(m2)

Family: gaussian 
Link function: identity 

Formula:
Outstate ~ Private + s(Room.Board) + s(PhD) + s(perc.alumni) + 
   s(Expend) + s(Grad.Rate)

Parametric coefficients:
           Estimate Std. Error t value Pr(>|t|)    
(Intercept)   8539.4      214.8  39.755   <2e-16 ***
PrivateYes    2505.7      270.4   9.266   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
                edf Ref.df      F  p-value    
s(Room.Board)  2.260      9  6.338 3.95e-14 ***
s(PhD)         1.809      9  0.913  0.00611 ** 
s(perc.alumni) 1.544      9  3.542 8.21e-09 ***
s(Expend)      4.234      9 13.517  < 2e-16 ***
s(Grad.Rate)   2.114      9  2.209 1.01e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

R-sq.(adj) =  0.794   Deviance explained = 80.1%
-REML = 3475.3  Scale est. = 3.3145e+06  n = 389

即使在我們縮小了樣條曲線的線性和非線性部分之後,所有的平滑似乎都暗示了輕微的非線性效應。

就個人而言,我發現mgcv的輸出更容易解釋,並且因為已經表明,如果數據支持,自動平滑度選擇方法將傾向於擬合線性效應。

引用自:https://stats.stackexchange.com/questions/305454

comments powered by Disqus