You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R回归报错无法分配内存,求替代Stata absorb的解决方案

解决方案

线性回归(替代lm)

用lfe包的felm函数,专门针对高维固定效应场景优化,无需将分类变量转为因子,直接吸收固定效应,大幅降低内存占用:

# 先安装包
install.packages("lfe")
library(lfe)

lmr <- felm(a_imt ~ a_imt_1 + totpop + reltrad_1 + reltrad_2 + reltrad_3 + reltrad_4 | fipsmerg, data = data)

竖线|右侧的fipsmerg就是要吸收的固定效应变量,函数会自动处理,不会生成大量虚拟变量。

Probit回归(替代glm)

用fixest包的feols函数,支持非线性模型的高维固定效应,效率和内存表现都更优:

# 先安装包
install.packages("fixest")
library(fixest)

myprobit <- feols(a_imt ~ a_imt_1 + totpop + reltrad_1 + reltrad_2 + reltrad_3 + reltrad_4 | fipsmerg, 
                  data = data, family = binomial(link = "probit"))

fixest会通过去均值等方法处理固定效应,避免构建超大设计矩阵,解决内存不足问题。

额外内存优化建议

  • 将数据转为data.table格式,比普通data.frame占用更少内存:
install.packages("data.table")
data <- as.data.table(data)
  • 检查fipsmerg的水平数,如果存在极少观测的水平,可以先过滤掉,进一步减少计算压力。

内容的提问来源于stack exchange,提问作者Tiago Santos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 18:53:14