Como minimizar o tamanho do objeto da classe "lm" sem comprometer a sua passagem para prever ()

Eu quero correrlm() em um grande conjunto de dados com mais de 50 milhões de observações com 2 preditores. A análise é executada em um servidor remoto com apenas 10 GB para armazenar os dados. Eu testei 'lm ()' em 10 mil observações amostradas dos dados e o objeto resultante tinha tamanho 2 GB +.

Eu preciso do objeto da classe "lm" retornado delm() SOMENTE para produzir as estatísticas resumidas do modelo (summary(lm_object)) e fazer previsões (predict(lm_object))

Eu fiz um experimento com as opçõesmodel, x, y, qr dolm. Se eu definir todos eles paraFALSE Reduzo o tamanho em 38%

library(MASS)
fit1=lm(medv~lstat,data=Boston)
size1 <- object.size(fit1)
print(size1, units = "Kb")
# 127.4 Kb bytes
fit2=lm(medv~lstat,data=Boston,model=F,x=F,y=F,qr=F)
size2 <- object.size(fit2)
print(size2, units = "Kb")
# 78.5 Kb Kb bytes
- ((as.integer(size1) - as.integer(size2)) / as.integer(size1)) * 100
# -38.37994

mas

summary(fit2)
# Error in qr.lm(object) : lm object does not have a proper 'qr' component.
#  Rank zero or should not have used lm(.., qr=FALSE).
predict(fit2,data=Boston)
# Error in qr.lm(object) : lm object does not have a proper 'qr' component.
#  Rank zero or should not have used lm(.., qr=FALSE).

Aparentemente eu preciso manterqr=TRUE que reduzem o tamanho do objeto em apenas 9% se comparado ao objeto padrão

fit3=lm(medv~lstat,data=Boston,model=F,x=F,y=F,qr=T)
size3 <- object.size(fit3)
print(size3, units = "Kb")
# 115.8 Kb
- ((as.integer(size1) - as.integer(size3)) / as.integer(size1)) * 100
# -9.142752

Como reduzo ao mínimo o tamanho do objeto "lm" sem despejar muitas informações desnecessárias na memória e no armazenamento?

questionAnswers(3)

yourAnswerToTheQuestion