当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。