繁体   English   中英

不同阶次求和的动态线性回归循环

[英]Dynamic linear regression loop for different order summation

我一直在努力在 R 中重新创建这个模型:模型(FARHANI 2012)

我尝试了很多东西,例如 cumsum paste - 但是这不起作用,因为我无法为字符串分配正确的变量,因为它一直认为 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))

我也在尝试这样做以在 DLWTI(我的石油变量的名称)上回归 DLUSGDP,因为当 p=0、q=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)
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM