Как мне запустить несколько линейных регрессий одновременно в R?

#r #lm

#r #lm

Вопрос:

Если у меня есть набор данных с переменными A, X, Y и Z, и я хочу запустить две линейные регрессии — обе имеют A в качестве зависимой переменной, но у одной X в качестве независимой переменной, а у другой Y (обратите внимание — НЕ множественная регрессия), что я могу сделать?

lm(A ~ X, Y, df = df) похоже, это не работает и, очевидно lm(A ~ X Y, df = df) , становится множественной регрессией. Я могу использовать lm(A ~ ., - Z, df = df) , но я ищу способ, которым я мог бы выбирать и выбирать несколько переменных для использования в качестве независимой переменной. Спасибо.

Комментарии:

1. попробуйте lm(A ~ X | Y, df

Ответ №1:

lmList в nlme можно запускать несколько регрессий одновременно:

 library(nlme)

DF <- data.frame(A = 1:10, X = 1:5, Y = 11:15, Z = 1:10)

DF2 <- cbind(A = DF$A, stack(DF[c("X", "Y")]))
lmList(A ~ values | ind, DF2)
  

Ответ №2:

Вот альтернатива, использующая formulas() from package modelr :

 df <- data.frame(A = 1:10, X = 1:5, Y = 11:15, Z = 1:10)

library(modelr)

ll <- formulas(~ A,
              m1 = ~ X,
              m2 = ~ Y
)

results_list <- lapply(ll, lm, data = df)