为什么在mgcv :: bam()中使用cluster =参数会导致错误?

时间:2019-03-20 09:03:51

标签: r parallel-processing gam mgcv

我正在尝试重现此处给出的示例:

https://stat.ethz.ch/R-manual/R-devel/library/mgcv/html/mgcv-parallel.html

具体来说,在mgcv :: bam()中使用cluster =参数。

可复制的示例:

require(mgcv)
require(parallel) 

    k <- 13;bs <- "cr"; set.seed(9)
    dat <- gamSim(1,n=6000,dist="poisson",scale=.1)

    nc <- 2   ## cluster size, set for example portability
    if (detectCores()>1) { ## no point otherwise
      cl <- makeCluster(nc) 
    } else cl <- NULL

    system.time(b3 <- bam(y ~ s(x0,bs=bs,k=7)+s(x1,bs=bs,k=7)+s(x2,bs=bs,k=k)
                ,data=dat,family=poisson(),chunk.size=5000,cluster=cl))

这会在我的计算机上导致以下错误:

  

checkForRemoteErrors(val)中的错误:2个节点产生了错误;第一   错误:没有适用于“预测”的对象的适用方法   类别“ gam”的时间停止在:0.31 0 0.37

其他可能有用的信息:

R version 3.4.4 (2018-03-15)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

我的机器有4个内核和16 GB RAM。

谢谢。

1 个答案:

答案 0 :(得分:0)

我无法重现错误并获得了此输出。

> b3

Family: poisson 
Link function: log 

Formula:
y ~ s(x0, bs = bs, k = 7) + s(x1, bs = bs, k = 7) + s(x2, bs = bs, 
    k = k)

Estimated degrees of freedom:
3.64 4.05 9.95  total = 18.64 

fREML score: 8563.705     

尝试更新软件包,看看是否有帮助。否则,更多的见解将很有用。