问题:
我正在使用felm
包中的lfe
函数来估计固定效果模型。我估计了几种模型,但最大的模型包括大约40个因变量以及县和年份的固定效应(分别约为3000个水平和14个水平),使用了大约5000万个观测值。运行模型时,出现以下错误:
Error in Crowsum(xz, ia) :
long vectors not supported yet: ../../src/include/Rinlinedfuns.h:519
Calls: felm -> felm.mm -> newols -> Crowsum
我意识到长向量包含2 ^ 31个或更多的元素,因此我假设felm
在估计模型时会产生这些长向量。有关我的资源的详细信息:我可以访问具有多个节点(每个节点具有多个内核)的高性能计算;内存最大的节点有1012GB。
(1)是否只有lfe
包的作者才能添加对“长向量”的支持?
(2)如果是这样,是否还有其他选择可以对大数据进行FE回归(前提是像我一样,只要可以访问大量内存和/或集群计算)? (如果我需要另外发表帖子以更具体地解决这个问题,我也可以这样做。)
请注意,我知道有关此问题的类似文章:Error in LFE - Long Vectors Not Supported - R. 3.4.3
但是,我提出一个新问题有两个原因:(1)作者的问题不集中-不清楚要提供什么反馈,并且我不想假设我想知道的与作者相同。 (2)即使我编辑了问题,原始作者也忽略了我认为可能相关的细节。
答案 0 :(得分:0)
lfe
软件包似乎不支持长向量,除非作者添加支持。
用于对大型数据集执行回归分析的其他途径包括biglm
软件包。 biglm
使您可以对一个块进行线性或逻辑回归,然后在对其他块进行回归时更新回归估计。但是,这是一个顺序过程,这意味着它不能并行执行,因此可能会遇到内存问题(或花费太长时间)。
如果您可以访问一些高级计算资源(更多核心,更多RAM),另一种选择是使用partools
软件包,该软件包提供了用于处理R的parallel
的工具。程序包为R的lm
提供了一个包装,称为calm
(块平均线性模型),类似于biglm
在块上回归,但允许并行进行该过程。 partools
的小插图是学习如何使用该软件包的绝佳资源(即使对于以前从未使用过parallel
软件包的用户而言):https://cran.r-project.org/web/packages/partools/index.html
看来calm
并没有报告标准错误,但是需要并行计算的大小数据集可能不相关-特别是如果该数据集包含来自所研究总体的数据。