总结期间出错:尚不支持长向量:在 glm() 函数中

Error during wrapup: long vectors not supported yet: in glm() function

我在 Whosebug 上发现了几个关于这个主题的问题(其中一些没有任何答案)但(到目前为止)与回归中的这个错误没有任何关系。

我是 运行 r 中的概率模型,其中(我猜)有太多固定效应(年份和地点):

myprobit <- glm(factor(Y) ~ factor(T) + factor(X1) + factor(X2) + factor(X3) +
                 factor(YEAR) + factor(PLACE),
                 family = binomial(link = "probit"),
                 data = DT)

PLACE 变量有大约 1000 个唯一值和 YEAR 8 个值。数据集 DT 有 13,099,225 个 obs 和 79 列。

我得到的错误是:

Error: cannot allocate vector of size 59.3 Gb
Error during wrapup: long vectors not supported yet: ../include/Rinlinedfuns.h:519

我使用的机器有 128 GB 的 RAM。

所以,我不知道在不改变功能的情况下我能做什么。有谁知道如何处理这个问题?谢谢!

为了结束这个问题,我不得不提到@Axeman 的回答是解决我的问题的唯一可行方法。整个问题是,没有足够的内存来管理如此庞大的设计矩阵。

因此,运行 使用 biglm 包和 bigglm() 函数的 probit 回归是迄今为止我找到的唯一解决方案。

然而,我意识到,由于 biglm 包的工作方式,迭代地获取数据块,在 RHS 中使用 factor() 变量,每次当因子水平不是在块中表示。换句话说,如果一个因子变量有5个水平,但在数据块中只出现4个水平,我就会估计错误。

Whosebug 上有几个关于此的问题和评论。