动态线性回归环路不同的顺序求和
问题描述:
我一直在努力重建中的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))
我也试图为当p = 0,Q上DLWTI(我的油变量的名字)回归DLUSGDP做到这一点= 1-5,也p = 1-5,q = 1-5 cumsum将不起作用,因为它会将变量相加,而不是将它们视为独立的回归。 我的目标是运行这些模型,然后使用IC来确定哪些应该进一步分析。 我希望你明白我的问题,任何帮助将不胜感激。
答
我认为这是你在找什么:
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)
}
非常感谢你的帮助构建你的模型拟合,已经制定一个绝对的享受! – spg