Model-Selection

R中GAM的模型選擇

  • April 26, 2019

提前道歉我是這個論壇和 GAM 模型的新手。

我正在嘗試對複雜的生態數據進行建模。我已經使用該軟件包編寫了很多 GAM 模型,mgcv但我在努力選擇一個模型並努力評估哪些模型是最好的。

充其量(大約 20 個模型)我達到R-sq(adj) = 0.40了平均水平deviance explained = 38%-45%.

我想知道在 R 中選擇最佳 GAM 模型的最佳過程是什麼。

我建立的一些模型具有顯著的預測變量和顯著的截距,但低於R-sq(adj)沒有deviance explained顯著項的模型。

誰能提供一些關於如何選擇模型的指導?

如果您想從一組協變量中進行選擇,那麼執行此操作的原則方法是對模型中的每個平滑器進行一些額外的收縮,以便在需要時可以將它們完全排除在模型之外。

在典型設置中,擺動懲罰基於估計函數的曲率(二階導數)。這種懲罰會影響擺動基函數,因為它們具有非常量的二階導數。對每個協變量執行的基擴展導致基函數存在於零空間或懲罰的範圍空間中。範圍空間中的那些是 wiggly 函數,如果我們不需要擬合這樣的 wiggly 函數,它們可以被懲罰並縮小到零效應。

零空間中的基函數是一個平面函數(通過可識別性約束移除,因為它與模型截距混淆)和一個線性函數,它們的曲率為零。因此,處罰不會影響他們。這就是為什麼您可以估計通過mgcv擬合的 GAM 中的線性效應,但您無法擺脫線性部分,因為它完全不受懲罰的影響,因為它沒有擺動。

Giampiero Marra 和 Simon Wood (2011) 表明,通過專門針對懲罰零空間分量的額外懲罰,可以在 GAM 中執行有效的模型選擇。額外的懲罰只影響完全平滑的項,但它具有將線性效應縮小回零效應的效果,因此如果這是合理的,則完全脫離模型。

為此, mgcv有兩個選項:

  1. 收縮平滑劑,和
  2. 雙重懲罰方法。

收縮平滑器是普通基類型的特殊版本,但它們在形成懲罰矩陣期間受到特徵分解,其中那些完全平滑的基函數返回零特徵值。收縮平滑器只是為特徵值為零的項添加了一個非常小的值,這導致這些項現在受到用於選擇平滑度參數的通常擺動懲罰的影響。這種方法表明,擺動函數應該比零空間中的函數收縮得更多,因為零特徵值項的少量添加意味著這些項受擺動懲罰的影響比範圍空間中的函數小。

通過將基礎類型更改為以下之一,可以為部分或全部平滑選擇收縮平滑器:

  • bs = 'ts'— 對於薄板回歸樣條基礎的收縮版本,
  • bs = 'cs'— 三次回歸樣條基礎的收縮版本。

此參數將添加到s()您要在模型公式中縮小的任何函數。

雙懲罰方法只是增加了第二個懲罰,它只影響零空間中的函數。現在有兩種處罰生效;

  1. 通常會影響範圍空間中的函數的擺動懲罰,以及
  2. 影響懲罰零空間中函數的收縮懲罰。

第二個懲罰允許線性項也一起收縮,這兩個懲罰都可能導致平滑函數從模型中完全移除。

雙懲罰方法的優點是,從收縮的角度來看,零空間和範圍空間函數的處理方式相同。在收縮平滑方法中,我們先驗地期望擺動項比平滑項收縮得更多。在雙重懲罰方法中,我們不做這個假設,只是讓所有的函數都被縮小。

雙懲罰方法的缺點是現在每個平滑都需要估計兩個“平滑”參數;通常與擺動懲罰相關的平滑度參數,以及控制應用於零空間中函數的收縮的平滑度參數。

此選項在mgcv中通過 ; 的select = TRUE參數激活gam()。這意味著它為模型公式中的所有平滑打開。

Marra 和 Wood (2011) 的結果表明,雙重懲罰方法的效果略好於收縮窒息方法。

Marra, G. 和 SN Wood。2011. 廣義加性模型的實用變量選擇。計算。統計。數據肛門。55:2372-2387。doi:10.1016/j.csda.2011.02.004

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

comments powered by Disqus