【发布时间】:2014-05-27 14:18:26
【问题描述】:
如何增加 R 中 robustbase 包中 lmrob 函数的最大迭代次数(即 maxit.scale 参数)?
默认是200,但我想增加。
【问题讨论】:
标签: r regression robust
如何增加 R 中 robustbase 包中 lmrob 函数的最大迭代次数(即 maxit.scale 参数)?
默认是200,但我想增加。
【问题讨论】:
标签: r regression robust
如果您说您使用的是 robustbase 包,这可能会有所帮助。
?lmrob 会打开一个帮助页面,阅读它会指向lmrob.control,它看起来像
lmrob.control(setting, seed = NULL, nResample = 500,
tuning.chi = NULL, bb = 0.5, tuning.psi = NULL,
max.it = 50, groups = 5, n.group = 400,
k.fast.s = 1, best.r.s = 2,
k.max = 200, maxit.scale = 200, k.m_s = 20,
refine.tol = 1e-7, rel.tol = 1e-7, solve.tol = 1e-7,
trace.lev = 0,
mts = 1000, subsampling = c("nonsingular", "simple"),
compute.rd = FALSE, method = "MM", psi = "bisquare",
numpoints = 10, cov = NULL,
split.type = c("f", "fi", "fii"), fast.s.large.n = 2000, ...)
详细介绍
k.fast.s(用于 fast-S 算法):每个重新采样候选者的局部改进步骤(“I-steps”)的数量。
k.m_s(用于 M-S 算法):指定算法在经过多少不成功的细化步骤后停止。
best.r.s(对于 fast-S 算法):要进一步迭代(即“精炼”)的最佳候选者的数量;在 Salibian-Barrera & Yohai(2006) 中表示为 t。
k.max(对于 fast-S 算法):“完全”迭代的最佳候选者的最大细化步骤数。
maxit.scale 整数指定 C 级 find_scale() 迭代的最大次数。
所以你大概想改变其中之一。
【讨论】:
library(robustbase)
data(starsCYG, package="robustbase")
a1<-lmrob.control()
RlmST<-lmrob(log.light~log.Te,data=starsCYG,control=a1)
增加maxit.scale;你的问题不是很清楚
您想增加哪一个迭代计数中断,但我想
它是maxit.scale,因为它是唯一一个默认设置为 200 的值。这里我将maxit.scale 增加到201:
a1$maxit.scale<-201
RlmST<-lmrob(log.light~log.Te,data=starsCYG,control=a1)
无论如何,您可以以几乎相同的方式更改另一个:检查:
?lmrob.control
【讨论】: