當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R gam.control 設置 GAM 擬合默認值


R語言 gam.control 位於 mgcv 包(package)。

說明

這是 mgcv 包的內部函數,它允許控製擬合 GAM 的數值選項。通常,如果模型擬合無法收斂,或者生成警告表明擬合過程中數值穩定性丟失,用戶將希望修改默認值。要更改擬合方法的默認選擇,請參閱 gam 參數 methodoptimizer

用法

gam.control(nthreads=1,ncv.threads=1,irls.reg=0.0,epsilon = 1e-07,
            maxit = 200,mgcv.tol=1e-7,mgcv.half=15, trace = FALSE,
            rank.tol=.Machine$double.eps^0.5,nlm=list(),
	    optim=list(),newton=list(),
	    idLinksBases=TRUE,scalePenalty=TRUE,efs.lspmax=15,
	    efs.tol=.1,keepData=FALSE,scale.est="fletcher",
	    edge.correct=FALSE) 

參數

nthreads

如果您的 R 安裝支持 openMP,並且 nthreads 設置為大於 1,則某些平滑參數選擇方法(例如 REML)的某些部分可以在 C 代碼中使用一些並行化。請注意,通常最好使用物理數量這裏的核心數,而不是 hyper-threading 核心數。

ncv.threads

鄰域交叉驗證 (NCV) 的計算通常比其他 GAM 計算具有更好的擴展性,並且值得並行化。 ncv.threads 允許您設置單獨使用的 head 數量。

irls.reg

對於大多數模型,該值應為 0。在某些情況下,用於擬合 GAM 的迭代重新加權最小二乘法可能無法收斂。例如,具有多個零的數據可能會導致具有對數鏈接的模型出現問題,因為零均值對應於無限範圍的線性預測變量值。這種收斂問題是由根本上缺乏可識別性引起的,但在迭代的每個階段都必須解決的懲罰線性模型問題中並不表現為缺乏可識別性。在這種情況下,可以對模型應用嶺回歸罰分以施加可識別性,irls.reg 是罰分的大小。

epsilon

用於判斷 gam.fitgam.fit3 中 GLM IRLS 循環的轉換。

maxit

要執行的 IRLS 迭代的最大次數。

mgcv.tol

GCV/UBRE 優化中使用的收斂容差參數。

mgcv.half

如果GCV/UBRE優化方法的某個步驟導致GCV/UBRE分數更差,則步長減半。這是放棄之前要嘗試的減半次數。

trace

將其設置為TRUE 以打開診斷輸出。

rank.tol

用於估計擬合問題的等級的容差。

nlm

如果用於平滑參數的外部估計(非默認),則傳遞給 nlm 的控製參數列表。查看具體信息。

optim

如果用於平滑參數的外部估計(非默認),則傳遞給 optim 的控製參數列表。查看具體信息。

newton

要傳遞給默認牛頓優化器的控製參數列表,用於對數平滑參數的外部估計。查看具體信息。

idLinksBases

如果平滑項的平滑參數通過 id 機製鏈接(請參閱 s ),那麽它們也應該具有相同的基數。僅當您確定自己知道自己在做什麽時才將其設置為FALSE(在這種情況下,您幾乎肯定也應該將scalePenalty設置為FALSE)。

scalePenalty

gamm 對平滑的懲罰矩陣相對於其模型矩陣的絕對縮放有些敏感。此選項重新調整懲罰矩陣以適應此問題。如果您要鏈接平滑參數但已將 idLinkBases 設置為 FALSE ,則可能應設置為 FALSE

efs.lspmax

允許在擴展 Fellner Schall 平滑參數優化下的最大對數平滑參數。

efs.tol

在測試 EFS 收斂時,REML 的更改可以忽略不計。如果步長很小並且最後 3 個步長導致 REML 變化小於此值,則停止。

keepData

原始 data 參數的副本是否應該保留在 gam 對象中?與類 glm 的嚴格兼容性可以保留它,但這樣做會浪費空間。

scale.est

如何估計由外迭代估計的指數族模型的尺度參數。請參閱gam.scale

edge.correct

通過使用默認牛頓 RE/ML 優化器在 gam 中選擇 RE/ML 平滑參數,可以通過減少平滑參數直到平滑參數小幅增加來改進平滑參數空間“完全平滑”邊的推理。負 RE/ML(例如 0.02)。設置為 TRUE 或代表要使用的目標增量的數字。僅更改校正後的平滑參數矩陣 Vc

細節

使用 newton 的外部迭代由具有以下元素的列表 newton 控製: conv.tol(默認 1e-6)是相對收斂容差; maxNstep是牛頓搜索方向的元素允許的最大長度(默認5); maxSstep 是最速下降方向元素允許的最大長度(僅在牛頓失敗時使用 - 默認 2); maxHalf 是放棄之前允許的最大減半步數(默認 30)。

如果使用 nlm 的外部迭代用於擬合,則控製列表 nlm 存儲用於調用例程 nlm 的控製參數。該列表具有以下命名元素: (i) ndigit 是 GCV/UBRE 分數中的有效位數 - 默認情況下,這是從 epsilon 算出的; (ii) gradtol 是用於判斷 GCV/UBRE 分數梯度收斂到零的容差 - 默認設置為 10*epsilon ; (iii) stepmax 是最大允許的對數平滑參數步長 - 默認為 2; (iv) steptol 是允許的最小步長 - 默認為 1e-4; (v) iterlim 是允許的最大優化步驟數 - 默認為 200; (vi) check.analyticals 指示是否應以數字方式檢查內置的精確導數計算 - 默認為 FALSE 。列表中未提供和命名的任何這些都將設置為其默認值。

使用 optim 的外部迭代由列表 optim 控製,該列表當前有一個元素:factr,其默認值為 1e7。

作者

Simon N. Wood simon.wood@r-project.org

參考

Wood, S.N. (2011) Fast stable restricted maximum likelihood and marginal likelihood estimation of semiparametric generalized linear models. Journal of the Royal Statistical Society (B) 73(1):3-36

Wood, S.N. (2004) Stable and efficient multiple smoothing parameter estimation for generalized additive models. J. Amer. Statist. Ass.99:673-686.

https://www.maths.ed.ac.uk/~swood34/

也可以看看

gam , gam.fit , glm.control

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Setting GAM fitting defaults。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。