Я пытаюсь запустить многократные регрессии одновременно с немного разными формулами. Я нашел хороший пример здесь: https://rpubs.com/Marcelobn/many_regressions
Однако я не могу заставить его запускать разные формулы для каждой регрессии ... Я ищу помощь, чтобы исправить мой обновленный код или предоставить альтернативный метод. Заранее спасибо!
Я использую R Studio и выделил то, что я уже попробовал ниже (пример2).
library(pwt)
library(dplyr)
library(tidyr)
library(purrr)
library(broom)
library(pander)
example <- pwt7.1
# This works great, and I still want an output like this:
multiple_growth <- example %>% select(country, openc, cg, cgdp) %>%
na.omit() %>%
nest(-country) %>%
mutate(model = map(data, ~lm(cgdp ~ openc + cg, data = .)),
tidied = map(model, tidy)) %>%
unnest(tidied)
# BUT: it assumes each of the models for each country are the same
# I want to specify different formulas for each one
example2 <- example
# I have randomly assigned them for the purpose of this example
# In reality I get to this a more methodical way!
formula1 <- paste("cgdp", "~", "openc", "+", "cg", sep = " ")
formula2 <- paste("cgdp", "~", "openc", "+", "cg", "+", "currency", "+", "ppp", sep = " ")
formula3 <- paste("cgdp", "~", "pg", "+", "kg", "+", "openc", sep = " ")
randvar = sample(c(formula1,formula2,formula3), size = nrow(example2), replace = TRUE)
example2$regress = randvar
# Run model again with slight change to lm, and it kind of works
multiple_growth_2 <- example2 %>% select(country, openc, cg, cgdp, currency, ppp, pg, kg, regress) %>%
na.omit() %>%
nest(-country, -regress) %>%
mutate(model = map(data, ~lm(as.formula(regress), data = .)), # here is where i have tried to change it
tidied = map(model, tidy)) %>%
unnest(tidied)
# This kind of works but it uses the first formula for ALL of the other countries... Any idea how to fix / an alternate method?
Подобный вывод - то, что я хотел бы, но с регрессиями, использующими правильную формулу для каждого, а не только первый в списке для всех ...