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在本例中通过)。