我正在尝试对包含超过 4000000 行的 CSV 数据集中的两个因子变量执行固定效应回归。这些变量可以分别假设大约140000和50000个不同的整数值。
我最初尝试在具有 8 Gb 内存的 Linux 机器上使用 R 的 biglm 和 ff 软件包执行回归,如下所示;然而,这似乎需要太多内存,因为 R 提示必须分配一个大小大于我的机器上的最大值的向量。
library(biglm)
library(ff)
d <- read.csv.ffdf(file='data.csv', header=TRUE)
model = y~factor(a)+factor(b)-1
out <- biglm(model, data=d)
网上的一些研究表明,由于因子是由 ff 加载到内存中的,因此如果存在许多因子值,后者不会显着提高内存使用率。
有人知道有其他方法可以对我描述的规模的数据集执行上述回归,而不必求助于具有更多内存的机器吗?
最佳答案
您应该尝试 lfe 包,它正是为此目的而设计的:
library(lfe)
...
out <- felm(y ~ 0|a+b, data=d)
fe <- getfe(out)
可以在此处找到该方法的证明:http://www.sciencedirect.com/science/article/pii/S0167947313001266
这是一篇关于它的 R 期刊文章:http://journal.r-project.org/archive/2013-2/gaure.pdf
关于r - 计算大型数据集的多个固定效应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21717089/