У меня есть матрица Y
временных рядов. Количество строк - это количество наблюдений. У меня также есть матрица предикторов X
. Я хочу регрессировать столбцы Y
о предикторах, специфичных для этих столбцов. Логическая матрица 1 и 0 показывает, следует ли регрессировать переменную i
на j
-м предиктором.Многомерная регрессия с разными предикторами для каждой переменной в R
Например:
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)
Здесь y1
должны быть регресс на x1
и x2
, y2
на x1
только и y3
на только x2
.
Я попытался указать модель в функции lm
, но я не смог это сделать. В результате $coefficients
я хотел бы «0», когда переменная не была регрессирована на j
-м предиктором.
Можно ли сделать это без тяжелых грязных петель?
Функция «переформулировать» может сделать это немного проще. – lmo
Ах, слишком плохо! ... – Petreius
Поскольку я новичок, мне все еще не очень легко с lapply(). Не могли бы вы привести пример с набором данных игрушек выше? – Petreius