【问题标题】:Increase maximum number of iterations in lmrob增加 lmrob 中的最大迭代次数
【发布时间】:2014-05-27 14:18:26
【问题描述】:

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

默认是200,但我想增加。

【问题讨论】:

    标签: r regression robust


    【解决方案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(用于 M-S 算法):指定算法在经过多少不成功的细化步骤后停止。

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

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

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

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

    【讨论】:

      【解决方案2】:
      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
      

      【讨论】:

        猜你喜欢
        • 2012-11-11
        • 1970-01-01
        • 2013-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多