具有回归效应的高斯状态空间预测

机器算法验证 r 预测 dlm
2022-04-05 02:45:15

R 包dlm为具有回归效应的模型实现过滤和平滑 (dlmFilterdlmSmooth),但预测不适用于这些模型:

mod <- dlmModSeas(4)+dlmModReg(cbind(rnorm(100),rnorm(100)))
fi <- dlmFilter(rnorm(100),mod)
f <- dlmForecast(fi,nAhead=12)
Error in dlmForecast(fi, nAhead = 12): 
  dlmForecast only works with constant models

我怎样才能在 R 中做到这一点?

谢谢你的帮助!

1个回答

这是我想出的解决方案:诀窍是将 NA 添加到观察数据的末尾。当将 NA 视为响应变量时,卡尔曼滤波器算法将简单地预测下一个值而不更新状态向量。这正是我们想要做出的预测。

nAhead <- 12
mod <- dlmModSeas(4)+dlmModReg(cbind(rnorm(100+nAhead),rnorm(100+nAhead)))
fi <- dlmFilter(c(rnorm(100),rep(NA,nAhead)),mod)

这个对吗?