动态线性回归环路不同的顺序求和

问题描述:

我一直在努力重建中的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) 
    } 
+0

非常感谢你的帮助构建你的模型拟合,已经制定一个绝对的享受! – spg