0

你如何增加R中包中函数的最大迭代次数(即maxit.scale参数)?lmrobrobustbase

默认是 200,但我想增加它。

4

2 回答 2

1
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.scale201:

a1$maxit.scale<-201
RlmST<-lmrob(log.light~log.Te,data=starsCYG,control=a1)

无论如何,您可以以几乎相同的方式更改另一个:检查:

?lmrob.control
于 2014-05-27T14:32:00.233 回答
1

如果您说您使用的是 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(对于 MS 算法):指定算法在经过多少不成功的细化步骤后停止。

best.r.s(对于 fast-S 算法):要进一步迭代(即“精炼”)的最佳候选者的数量;在 Salibian-Barrera & Yohai (2006) 中表示为 t。

k.max(对于 fast-S 算法):“完全”迭代的最佳候选者的最大细化步骤数。

maxit.scale整数,指定 C 级find_scale()迭代的最大次数。

所以你大概想改变其中之一。

于 2014-05-27T14:36:20.823 回答