R:bootstrap 仿真 poweRlaw 包错误

R: error for bootstrap simulation poweRlaw package

我正在使用 poweRlaw 包来拟合一些数据并计算 p 值。我注意到,在某些情况下,数据变化不大且观察次数相对较少,一旦模拟次数超过某个阈值,我就无法计算 p 值。

考虑以下数据:

library(poweRlaw)
vec<-c(1,1,1,1,1,2,1,1,4,1,1,1,1,1,1,1,1,2,1,1,1,2,2,1,2,1,
       1,2,1,1,2,1,1,1,1,1,1,2,2,2,2,1,1,1,1,2)

可以拟合幂律并计算p值:

pl=displ$new(vec)
est=estimate_xmin(pl)
bts=bootstrap_p(pl,no_of_sims=30,seed=42)

但是,当我将模拟次数增加到例如 35 时,出现以下错误:

Error in checkForRemoteErrors(val) : 
  one node produced an error: index 0 outside bounds

其实我不太明白错误的实际含义。 我想这里的一个问题是观察到的数据可能不遵循幂律,至少在这种相对较少的观察次数下不会。但是为什么这个错误发生在 35 次模拟而不是 30 次呢?

解决方案此问题已在 poweRlaw 版本 0.7.1 中修复

运行 update.packages().


我认为错误的产生是因为在 bootstrap 过程中,主要选择了 1。这会导致在估计缩放参数时数值不稳定。

我在 https://github.com/csgillespie/poweRlaw/issues/56

创建了一个问题