Ich führe eine lineare Regression für einige Variablen in einem Datenrahmen durch. Ich würde gerne in der Lage sein, die linearen Regressionen durch eine kategoriale Variable zu unterteilen, die lineare Regression für jede kategoriale Variable auszuführen und dann die t-stats in einem Datenrahmen zu speichern. Ich würde dies gerne ohne eine Schleife tun, wenn möglich.
Hier ist eine Auswahl von dem, was ich versuche zu tun:
%Vor%Ich kann mit der folgenden linearen Regression beginnen und die t-Statistik sehr einfach herausziehen:
%Vor%Ich würde jedoch gerne in der Lage sein, die Regression auszuführen, wenn Spalte a a, b oder c ist. Ich möchte dann die t-stats in einer Tabelle speichern, die so aussieht:
%Vor%Ich hoffe, das macht Sinn. Bitte lassen Sie mich wissen, wenn Sie irgendwelche Vorschläge haben!
Hier ist eine Lösung mit dplyr
und tidy()
aus dem broom
-Paket. tidy()
konvertiert verschiedene statistische Modellausgaben (z. B. lm
, glm
, anova
usw.) in einen sauberen Datenrahmen.
Oder extrahieren Sie sowohl die t-Statistik für den Achsenabschnitt als auch den Steigungsausdruck:
%Vor% Sie können die Funktion lmList
aus dem Paket nlme
verwenden, um lm
auf Teilmengen von Daten anzuwenden:
Die Ausgabe:
%Vor%Wenn Sie nur die t-Werte möchten, können Sie diesen Befehl verwenden:
%Vor%Tags und Links r linear-regression lm