Stata vs. R:池化OLS中的内存使用量存在显着差异(面板)

时间:2017-11-11 13:13:18

标签: r memory time-series regression stata

我试图在大约34,000个观测值的面板数据集上运行汇总的OLS回归。在R中调用lm()时,这个过程需要永远,并最终消耗超过30GB的内存(因此,它在估计回归时会超出RAM)。事实上,由于计算机几乎崩溃,我不得不强制退出程序。

当我在Stata中运行完全相同的回归(在同一数据集上)时,此过程大约需要1秒钟。我不跟踪这里发生的事情,我做错了什么?

R代码:

pooled1=lm(ret ~ l_ret + l_btm + l_roe, data=panel)

Stata代码:

reg ret l_ret l_btm l_roe, r

Stata Output

R Memory Usage

Stata Browser

R Browser

str(Panel)

summary(panel)

1 个答案:

答案 0 :(得分:0)

您的$l_ret变量是一个字符向量。尝试将其转换为数字向量Panel$l_ret <- as.numeric(Panel$l_ret),然后再次运行分析。您的data.frame也是tibble对象。这不应该降低R速度,但您可能还想尝试将Panel转换为data.frame以最大限度地减少干扰。您可以Panel <- as.data.frame(Panel)执行此操作。