有限元回归产生长向量-R.3.5.0

时间:2018-07-30 17:39:53

标签: r

问题:

我正在使用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)即使我编辑了问题,原始作者也忽略了我认为可能相关的细节。

1 个答案:

答案 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并没有报告标准错误,但是需要并行计算的大小数据集可能不相关-特别是如果该数据集包含来自所研究总体的数据。