Anwendung von lm() und predict (), um mehrere Spalten in einem data frame
Habe ich ein Beispiel-dataset unten.
train<-data.frame(x1 = c(4,5,6,4,3,5), x2 = c(4,2,4,0,5,4), x3 = c(1,1,1,0,0,1),
x4 = c(1,0,1,1,0,0), x5 = c(0,0,0,1,1,1))
Angenommen, ich möchte erstellen Sie separate Modelle für die Spalte x3
, x4
, x5
basierend auf Spalte x1
und x2
. Zum Beispiel
lm1 <- lm(x3 ~ x1 + x2)
lm2 <- lm(x4 ~ x1 + x2)
lm3 <- lm(x5 ~ x1 + x2)
Ich will nehmen Sie dann diese Modelle und wenden Sie Sie, um einen Testsatz mit Vorhersagen, und erstellen Sie dann eine matrix, die hat jedes Modell Ergebnis als eine Spalte.
test <- data.frame(x1 = c(4,3,2,1,5,6), x2 = c(4,2,1,6,8,5))
p1 <- predict(lm1, newdata = test)
p2 <- predict(lm2, newdata = test)
p3 <- predict(lm3, newdata = test)
final <- cbind(p1, p2, p3)
Dies ist eine vereinfachte version, wo Sie es tun können, Schritt für Schritt, die eigentlichen Daten ist viel zu groß. Gibt es eine Möglichkeit so eine Funktion zu erstellen oder verwenden Sie eine for-Anweisung, kombinieren diese in einem oder in zwei Schritten?
InformationsquelleAutor SRB | 2016-11-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hatte ich eine Neigung, schließen Sie Ihre Frage als Duplikat zu Anpassung eines linearen Modells mit mehreren LHS, aber leider ist der Vorhersage-Problem nicht angegangen wird, da drüben. Auf der anderen Seite, Die Vorhersage des 'mlm' linear model-Objekts von
lm()
Gespräche über Prognose, aber ist ein bisschen weit Weg Ihrer situation, wie Sie die Arbeit mit den Formel-Schnittstelle anstelle von matrix-Schnittstelle.Habe ich es nicht geschafft zu suchen, ein perfektes Duplikat Ziel in "mlm" - tag. Also ich finde es eine gute Idee, tragen eine andere Antwort für diesen tag. Wie gesagt im verlinkten Fragen
predict.mlm
nicht unterstützense.fit
, und im moment ist das auch die fehlende Ausgabe im "mlm" - tag. Also ich würde diese chance ergreifen und füllen so eine Lücke.Hier ist eine Funktion, um standard-Fehler der Vorhersage:
Für Ihr Beispiel, Sie tun können,
Können wir sicherstellen, dass
f
ist richtig:InformationsquelleAutor 李哲源