#r #r-model-formula
#r #r-модель-формула
Вопрос:
Я изо всех сил пытался воссоздать эту модель в R: Model (FARHANI 2012)
Я пробовал много вещей, таких как вставка cumsum — однако это не сработало бы, поскольку я не мог присвоить строкам правильную переменную, поскольку она продолжала думать, что L была функцией. Я пытался сделать это вручную, я ищу только p, q = 1,2,3,4,5, однако после запуска я понял, насколько это неэффективно. По сути, это то, что я пытаюсь сделать
model5 <- vector("list",20)
#p=1-5, q=0
model5[[1]] <- dynlm(DLUSGDP~L(DLUSGDP,1))
model5[[2]] <- dynlm(DLUSGDP~L(DLUSGDP,1) L(DLUSGDP,2))
model5[[3]] <- dynlm(DLUSGDP~L(DLUSGDP,1) L(DLUSGDP,2) L(DLUSGDP,3))
model5[[4]] <- dynlm(DLUSGDP~L(DLUSGDP,1) L(DLUSGDP,2) L(DLUSGDP,3) L(DLUSGDP,4))
model5[[5]] <- dynlm(DLUSGDP~L(DLUSGDP,1) L(DLUSGDP,2) L(DLUSGDP,3) L(DLUSGDP,4) L(DLUSGDP,5))
Я также пытаюсь сделать это для регрессии DLUSGDP в DLWTI (имя моей переменной oil) для случаев, когда p = 0, q = 1-5, а также p = 1-5, q = 1-5
cumsum не будет работать, поскольку он будет суммировать переменные, а не рассматривать их как независимые регрессии.
Моя цель — запустить эти модели, а затем использовать IC, чтобы определить, какие из них следует проанализировать дальше.
Я надеюсь, что вы понимаете мою проблему, и любая помощь будет с благодарностью принята.
Ответ №1:
Я думаю, это то, что вы ищете:
reformulate(paste0("L(DLUSGDP,", 1:n,")"), "DLUSGDP")
где n
какой-то порядок, который вы хотите попробовать. Например,
n <- 3
reformulate(paste0("L(DLUSGDP,", 1:n,")"), "DLUSGDP")
# DLUSGDP ~ L(DLUSGDP, 1) L(DLUSGDP, 2) L(DLUSGDP, 3)
Затем вы можете построить свою модель, подобрав
model5 <- vector("list",20)
for (i in 1:20) {
form <- reformulate(paste0("L(DLUSGDP,", 1:i,")"), "DLUSGDP")
model5[[i]] <- dynlm(form)
}
Комментарии:
1. Большое вам спасибо за вашу помощь, сработало просто замечательно!