Gibt es in R eine einfache Möglichkeit, eine lineare Regression über ein Modell mit 100 Parametern in R zu erstellen? Angenommen, wir haben einen Vektor Y mit 10 Werten und einen Datenrahmen X mit 10 Spalten und 100 Zeilen. In mathematischer Notation würde ich schreiben Y = X[[1]] + X[[2]] + ... + X[[100]]
. Wie schreibe ich etwas Ähnliches in R-Syntax?
22
Antworten:
Versuche dies
quelle
y ~ . + .^2
. Und so weiter.y ~ . + .:x1
wollen, erhalten Sie so etwas wie die Interaktionen jeder Variablen (außerx1
) mitx1
. Und so weiter; Du hast die Idee.Tolle Antworten!
Ich würde hinzufügen, dass standardmäßig beim Aufrufen
formula
von adata.frame
eine additive Formel erstellt wird, um die erste Spalte auf die anderen zu regressieren.Im Falle der Antwort von @ danas.zuokas können Sie das sogar tun
was richtig interpretiert wird.
quelle
R
Betreiber sind :)Wenn es andere Spalten gibt, die Sie nicht als Prädiktoren einschließen möchten, müssen Sie sie entfernen,
X
bevor Sie diesen Trick verwenden oder-
in der Modellformel verwenden, um sie auszuschließen. Wenn Sie beispielsweise den 67. Prädiktor (der den entsprechenden Namen hatx67
) ausschließen möchten , können Sie schreibenWenn Sie Interaktionen usw. einbeziehen möchten, müssen Sie diese auch manuell hinzufügen als (zum Beispiel).
oder stellen Sie sicher, dass sie als Spalten von eingegeben werden
X
.quelle
Sie können auch eine Kombination der Funktionen
formula
undpaste
verwenden.Setup-Daten : Stellen Sie sich vor, wir haben einen data.frame, der die Prädiktorvariablen
x1
tox100
und unsere abhängige Variable enthälty
, aber auch eine störende Variableasdfasdf
. Auch die Prädiktorvariablen sind in einer solchen Reihenfolge angeordnet, dass sie nicht alle im data.frame zusammenhängen.Stellen Sie sich auch vor, dass Sie eine Zeichenfolge haben, die die Namen der Prädiktorvariablen enthält. In diesem Fall kann dies einfach mit der
paste
Funktion erstellt werden. In anderen Situationen kann jedoch auchgrep
ein anderer Ansatz verwendet werden, um diese Zeichenfolge abzurufen.Ansatz anwenden : Wir können dann eine Formel wie folgt konstruieren:
collapse
Argument wird+
zwischen die Prädiktorvariablen eingefügtformula
konvertiert den String in ein Objekt der Klassenformel, das für dielm
Funktion geeignet ist.Im Allgemeinen verwende ich die folgende Funktion ziemlich regelmäßig, wenn ich die Prädiktorvariablen als Vektor von Variablennamen bereitstellen möchte.
Z.B,
quelle
do.call
die Formel vor dem Aufruf auswerten könnenlm
.