【问题标题】:Specify iteration in lmp (lmPerm pacakge in R)在 lmp 中指定迭代(R 中的 lmPerm 包)
【发布时间】:2014-11-27 17:34:03
【问题描述】:

我想知道是否可以在 R 中使用 lmp 函数指定精确迭代。这是汽车的示例:

library(lmPerm) 
cars.slope<-lmp(cars[,2,]~cars[,1],na.action=na.exclude, maxIter=9999)
summary(cars.slope)

它工作得很好,但是当我用自己的数据库尝试它时,它不起作用。它总是在改变迭代次数

cars.slope<-lmp(poppircv$ofid_mean~poppircv$mean.parent,na.action=na.exclude, maxIter=9999)
summary(cars.slope)

这告诉我它正在执行 5059 次迭代,而不是我想要的疯狂和固定的 9999 次迭代。

poppircv$ofid_mean 相等

c(0.13730,8.88790,13.56980,10.30080,12.34400,4.45670,0.20020,8.22860,2.35320,1.07580,0.11730,7.02940,13.16360,9.90550,10.36115,12.41320,0.63760,9.18390,14.90510,11.38160,5.58870,10.46680)

poppircv$mean.parent 是

c(10.3884,12.0500,16.9677,10.0315,5.5289,4.1219,7.8164,10.3927,0.1248,14.6878,0.5878,8.5014,13.4055,13.5698,1.3819,5.1349,8.3580,15.9249,23.2824,16.9287,3.2868,10.8343)

您知道如何将迭代修正为 9999 吗?

谢谢!

【问题讨论】:

    标签: r iteration


    【解决方案1】:

    恐怕你不能用任何参数设置一个精确的值,但你可以用不同的方式让它进入 9999 次迭代:

    正如here 所说,“这是因为 aovp()(与 lmp 相同)不会计算数据点的所有可能排列。它会继续随机抽取,直到 a) 达到最大迭代次数(默认 5000 次迭代),或 b) P 值估计的标准误差低于指定阈值(默认为 P 的 10%)。"

    不过还好有办法影响迭代次数:

    根据文档,有两个处理迭代的参数:

    1. maxIter 对于 Prob 和 SPR:最大迭代次数。默认 1000。
    2. 钙 对于概率:当估计 p 的估计标准误差小于 Ca*p 时停止迭代。默认 0.1

    因此,您可以通过将任意非常小的数字(例如 0.00000000000001)传递给 Ca 来确定您将达到 9999。

    希望对你有帮助!

    【讨论】:

    • 非常感谢,它正在工作!这真的很有帮助。
    猜你喜欢
    • 2021-06-20
    • 1970-01-01
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多