¿Por qué me quedo sin memoria mientras que la multiplicación de matrices funciona bien para los coeficientes?
Estoy tratando de hacer efectos fijos de regresión lineal con R. Mis datos parecen
<code>dte yr id v1 v2 . . . . . . . . . . . . . . . </code>
Entonces decidí simplemente hacer esto haciendoyr
un factor y usolm
:
<code>lm(v1 ~ factor(yr) + v2 - 1, data = df) </code>
Sin embargo, esto parece quedarse sin memoria. Tengo 20 niveles en mi factor ydf
es de 14 millones de filas, lo que requiere aproximadamente 2 GB para almacenar, lo estoy ejecutando en una máquina con 22 GB dedicados a este proceso.
Entonces decidí probar cosas a la antigua: crear variables ficticias para cada uno de mis añost1
at20
haciendo:
<code>df$t1 <- 1*(df$yr==1) df$t2 <- 1*(df$yr==2) df$t3 <- 1*(df$yr==3) ... </code>
y simplemente computar:
<code>solve(crossprod(x), crossprod(x,y)) </code>
Esto se ejecuta sin problemas y produce la respuesta casi de inmediato.
Tengo curiosidad por saber de qué se trata el hecho de que me quede sin memoria cuando puedo calcular bien los coeficientes. Gracias.