为什么不使用 boot.ci 进行并行加速以获得 BCa 置信区间?

RGe*_*con 6 parallel-processing r statistics-bootstrap

这个问题的答案的底部(使用 R 中的约束计算固定效应的 CI)建议人们应该看到user时间 >elapsed并行工作时的时间。尽管parallel = "multicore", ncpus = 4在运行时指定了boot.ci我没有看到那个结果。此外,我在 Mac 的活动监视器运行时只看到大约 30% 的 CPU 负载。这是否意味着我不能与我的 4 核 iMac 进行并行处理?如果没有,关于让它工作的任何建议?

下面是一个例子:

library(car)
library(boot)
set.seed(47)

 y <- rgamma(2000, 2)
 x1 <- 3 * y + rnorm(2000)
 x2 <- y^2 + rnorm(2000)
 x3 <- rnorm(2000)
 MyData <- data.frame(c(y, x1, x2, x3))
 MyModel <- lm(y ~ x1 + x2 + x3, data = MyData)
# Boot doesn't have a parallel option that I know of
 system.time(BootModel <- Boot(MyModel, R = 3000))
#-----------------------
   user  system elapsed 
 10.164   1.086  11.263 
#-----------------------

# calculate CIs for a single coefficient
# boot.ci has a parallel option, but the sys.time results are the same
system.time(ConfBoot <- boot.ci(BootModel, level = c(.90, .95, .99), type = "bca", 
            index = 2, parallel = "multicore", ncpus = 4))
#-----------------------
   user  system elapsed 
 19.698   0.367  20.162 
Run Code Online (Sandbox Code Playgroud)

在相关说明中,为什么 boot.ci 需要这么长时间来计算 BCa 置信区间?我对代码的阅读是bca.ci从现有的复制中boot.out获取其计算,因此运行时间似乎不应该比运行时间长boot(Boot在本例中通过)。