Ich habe eine Matrix Y
der Zeitreihe. Die Anzahl der Zeilen ist die Anzahl der Beobachtungen. Ich habe auch eine Matrix von Prädiktoren X
. Ich möchte Spalten von Y
auf Prädiktoren zurück, die für diese Spalten spezifisch sind. Eine logische Matrix von 1 und 0 zeigt an, ob die i
-te Variable auf dem j
-ten Prädiktor regressiert werden soll.Multivariate Regression mit verschiedenen Prädiktoren für jede Variable in R
Zum Beispiel:
y1 <- c(1, 2, 3, 5, 7, 3, 2, 1)
y2 <- c(5, 1, 3, 1, 3, 4, 5, 3)
y3 <- c(1, 3, 4, 5, 1, 2, 1, 2)
x1 <- c(2, 5, 4, 2, 1, 3, 6, 7)
x2 <- c(1, 5, 1, 3, 4, 2, 1, 3)
Y <- cbind(y1, y2, y3)
X <- cbind(x1, x2)
logical <- matrix(c(1,1,0,1,0,1), 3, 2)
lm <- lm(Y ~ ??? - 1)
Hier y1
sollte auf x1
und x2
regrediert werden, y2
auf x1
nur und y3
auf x2
nur.
Ich habe versucht, das Modell in der lm
Funktion anzugeben, aber ich war nicht in der Lage, dies zu tun. Im Ergebnis $coefficients
möchte ich "0" s, wenn eine Variable nicht auf dem j
-ten Prädiktor zurückgebildet wird.
Ist es möglich, ohne schwere schmutzige Schleifen zu tun?
Die 'reformulate' Funktion könnte dies etwas erleichtern. – lmo
Ah, schade! ... – Petreius
Da ich ein Anfänger bin, bin ich immer noch nicht sehr wohl mit lapply(). Können Sie ein Beispiel mit dem obigen Spielzeugdatensatz angeben? – Petreius