Ich möchte eine lineare Regression in R mit der lm()
-Funktion durchführen. Meine Daten sind eine jährliche Zeitreihe mit einem Feld für das Jahr (22 Jahre) und einem anderen für den Bundesstaat (50 Bundesstaaten). Ich möchte eine Regression für jeden Bundesstaat anpassen, sodass ich am Ende einen Vektor von lm-Antworten habe. Ich kann mir vorstellen, für jede Zustandsschleife eine Schleife zu machen, dann die Regression innerhalb der Schleife durchzuführen und die Ergebnisse jeder Regression zu einem Vektor hinzuzufügen. Das scheint jedoch nicht sehr R-typisch zu sein. In SAS würde ich eine 'by'-Anweisung verwenden und in SQL würde ich ein 'group by' machen. Wie funktioniert das in R?
Eine kleine Erweiterung, falls Sie eine Spalte mit angepassten Werten oder Residuen möchten: Wrappen Sie den lm() Aufruf in einen resid() Aufruf und leiten dann alles in der letzten Zeile in einen unnest() Aufruf weiter. Natürlich möchten Sie den Variablennamen von "model" in etwas relevanteres ändern.
1 Stimmen
Möchte nur den Leuten sagen, dass obwohl es viele Gruppierungsfunktionen in R gibt, nicht alle für die Gruppierungsregression geeignet sind. Zum Beispiel ist
aggregate
nicht geeignet; auch nichttapply
.