Относительно нескольких линейных моделей одновременно - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь запустить много моделей линейных регрессий одновременно. Пожалуйста, помогите мне сделать код для этого.

Я работаю над двумя фреймами данных. В первом кадре данных есть 100 зависимых переменных, а во втором кадре данных у меня есть 100 независимых переменных. Теперь я хочу простые линейные модели, такие как

lm1 <- lm(data_frame_1[[1]] ~ data_frame_2[[1]])
lm2 <- lm(data_frame[[2]] ~ data_frame[[2]]) 

и т. Д. Это означает, что мне нужно запустить 100 регрессионных моделей. Я хочу сделать это одновременно. Пожалуйста, помогите мне сделать соответствующие коды для запуска всех этих моделей одновременно.

Ответы [ 2 ]

0 голосов
/ 10 мая 2019

Используя dataframe_1 и dataframe_2, определенные в примечании, в конце мы определяем функцию LM, которая принимает имя x и имя y и выполняет регрессию y на x, используя столбцы из этих фреймов данных.Результатом является список lm объектов.Обратите внимание, что строка Call: в выходных данных каждого компонента списка вывода правильно определяет, какие столбцы были использованы.

LM <- function(xname, yname) {
  fo <- formula(paste(yname, "~", xname))
  do.call("lm", list(fo, quote(cbind(dataframe_1, dataframe_2))))
}
Map(LM, names(dataframe_1), names(dataframe_2))

, что дает:

$x1

Call:
lm(formula = y1 ~ x1, data = cbind(dataframe_1, dataframe_2))

Coefficients:
(Intercept)           x1  
     3.0001       0.5001

... etc ...

Примечание

Использованиевстроенный anscombe фрейм данных определяет dataframe_1 как столбцы x и data_frame_2 как столбцы y.

dataframe_1 <- anscombe[grep("x", names(anscombe))]
dataframe_2 <- anscombe[grep("y", names(anscombe))]
0 голосов
/ 10 мая 2019

Не совсем понятно, что вы имеете в виду одновременно.Но, может быть, делать цикл хорошо в вашем случае?

model.list = list()
for (i in 1:100){
  model.list[[i]] = lm(data.frame.1[[i]] ~ data.frame2[[i]])
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...