2

我正在尝试制作一个二项式 GAM。630 万行数据(因此是bam)。我有两个随机效应(40 和 7 个级别)s(...,"re"),使用 3 个分类变量(5 + 5 + 4 个级别)和一个循环平滑(s(Hour, by = GroupAB, bs = "cc"))。GroupAB 有 25 个级别,是前面提到的两个变量之间的串联,我在平滑之外包括了这些变量之间的额外交互。类似的东西(y~s(..,"re") + s(..,"re") + s(Hour, by = GroupAB, "cc") + A * B + C, family ="binomial")

当我运行模型时,我收到以下错误消息:

Error in predict.gam(G, newdata = mf[ind, ], type = "lpmatrix", newdata.guaranteed = TRUE,  : 
  number of items to replace is not a multiple of replacement length

我已经追踪到 bam 试图制作稀疏矩阵(sparse.matrix.model()https://github.com/cran/mgcv/blob/master/R/bam.r中)。看到它使用了 的chunk.size=参数bam(),我开始玩弄它。在将块大小从 10k 增加到 75K 后,我让模型运行并给出了合理的结果。

但为什么首先会出现错误?是否有避免此错误消息的技巧?还是和数据有关?

4

0 回答 0