0

我目前正在处理一个大数据集(n> 1000 万)。我发现 fixst 包对于快速运行 logit 固定效应模型(feglm)非常有帮助。

f1 <- feglm(result ~ log(rate1) + 
sex + 
age + 
development + 
pop + 
acad + 
size | state, se= "standard",  family=c("logit"), lean =TRUE, mem.clean = TRUE, data=total)

最初的问题是我的模型太大了。我试过用lean=TRUEand瘦身mem.clean=TRUE。我还必须消除模型的线性预测变量和工作残差组件,如下所示:

f1$linear.predictors <- NULL
f1$working_residuals <- NULL

通过完成所有这些步骤,我设法减少了很多脂肪。该模型最初为 1.2 GB,但我设法将其压缩到 ~200kb

print(object.size(f1), units = "auto")
218.3 Kb

当我尝试将模型保存为 rda 文件时出现问题。保存操作需要一瞬间。相反,它需要几分钟并将模型保存为一个臃肿的 300 MB 文件。

我究竟做错了什么?我想将 fixst 对象保持在 220 Kb 的小尺寸中。

谢谢

4

2 回答 2

0

感谢 Laurent B. 为我指明了正确的方向。我根据您的建议将模型的几个组件设置为NULL.

f1.1$linear.predictors <- NULL
f1.1$working_residuals <- NULL
f1.1$family <- NULL
f1.1$fml <- NULL
f1.1$fml_all <- NULL
f1.1$family$family = "binomial"
f1.1$family$family = "logit"
f1.1[["fml"]][[2]] = "emigration"

感谢您的帮助并创建了 fixst 的精彩软件包。

于 2022-02-20T21:06:56.190 回答
0

Setfamilyfmlto它应该可以工作fml_allNULL

问题是这些项目的是环境,即使它们不包括环境。但是,当应用 save 时,这些值所引用的环境也会被保存,导致文件很大。

这是我将尝试在包中解决的问题。顺便说一句,这些项目linear.predictorsworking_residuals在包的下一个版本(0.10.2)中适当地删除。

于 2022-02-17T20:25:07.900 回答