Warum geht mir der Speicher aus, während die Matrixmultiplikation für Koeffizienten gut funktioniert?
Ich versuche, lineare Regression mit festen Effekten mit R durchzuführen. Meine Daten sehen aus wie
<code>dte yr id v1 v2 . . . . . . . . . . . . . . . </code>
Ich entschied mich dann, dies einfach zu tun, indem ich machteyr
ein Faktor und Verwendunglm
:
<code>lm(v1 ~ factor(yr) + v2 - 1, data = df) </code>
Dies scheint jedoch keinen Speicher mehr zu haben. Ich habe 20 Stufen in meinem Faktor unddf
Das Speichern von 14 Millionen Zeilen dauert ca. 2 GB. Ich führe dies auf einem Computer mit 22 GB aus, der für diesen Prozess vorgesehen ist.
Ich beschloss dann, die Dinge auf die altmodische Art und Weise auszuprobieren: Erstelle Dummy-Variablen für jedes meiner Jahret1
zut20
indem ich tue:
<code>df$t1 <- 1*(df$yr==1) df$t2 <- 1*(df$yr==2) df$t3 <- 1*(df$yr==3) ... </code>
und einfach berechnen:
<code>solve(crossprod(x), crossprod(x,y)) </code>
Dies funktioniert problemlos und liefert die Antwort fast sofort.
Ich bin besonders neugierig, woran es liegt, dass mir der Speicher ausgeht, wenn ich die Koeffizienten gut berechnen kann. Vielen Dank.