首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何预测具有分布滞后的时间序列回归模型(使用dLagM)?

如何预测具有分布滞后的时间序列回归模型(使用dLagM)?
EN

Stack Overflow用户
提问于 2022-05-08 19:12:44
回答 1查看 190关注 0票数 0

我试图预测一个带有分布式滞后的时间序列(使用dLagM)。我想我可以适当地拟合这个模型,它显示了所有的预期结果。但我无法预测任何价值。这个错误,至少对我来说,是不透明的。

我想这是与我的虚拟变量和它的滞后有关,但我无法自己弄清楚,所以在被困了几天后,我呼救了!

这里是一个可重复的例子。它使用了以前工作中提出的假人和延迟。

代码语言:javascript
复制
# data
df <- dplyr::tribble(
     ~y ,    ~x,   ~dummy1, ~dummy2,
   207.414  , 59.717     ,  0    ,  0    , 
   177.416  , 59.576     ,  0    ,  0    , 
   245.526  , 63.288     ,  0    ,  0    , 
   276.641  , 61.801     ,  0    ,  0    , 
   371.803  , 58.529     ,  0    ,  0    , 
   519.777  , 56.790     ,  1    ,  0    , 
   430.641  , 54.012     ,  0    ,  1    , 
   251.612  , 57.151     ,  0    ,  0    , 
   269.787  , 57.480     ,  0    ,  0    , 
   230.034  , 60.042     ,  0    ,  0    , 
   202.376  , 60.280     ,  0    ,  0    , 
   253.497  , 61.323     ,  0    ,  0    , 
   239.166  , 61.235     ,  0    ,  0    , 
   272.894  , 60.206     ,  0    ,  0    , 
   293.951  , 62.020     ,  0    ,  0    , 
   278.437  , 61.393     ,  0    ,  0    , 
   424.190  , 58.876     ,  0    ,  0    , 
   652.256  , 56.978     ,  1    ,  0    , 
   536.587  , 56.381     ,  0    ,  1    , 
   263.116  , 61.193     ,  0    ,  0    , 
   289.288  , 60.123     ,  0    ,  0    , 
   227.690  , 60.957     ,  0    ,  0    , 
   234.306  , 62.563     ,  0    ,  0    , 
   293.728  , 61.540     ,  0    ,  0     )

# new auxiliary data to be used as input to forecast y for 12 periods
newdata <- dplyr::tribble(
  ~x,   ~dummy1, ~dummy2,
  61.903     ,  0    ,  0    , 
  60.594     ,  0    ,  0    , 
  63.358     ,  0    ,  0    , 
  65.178     ,  0    ,  0    , 
  64.275     ,  0    ,  0    , 
  59.872     ,  1    ,  0    , 
  59.273     ,  0    ,  1    , 
  59.665     ,  0    ,  0    , 
  58.643     ,  0    ,  0    , 
  63.354     ,  0    ,  0    , 
  65.743     ,  0    ,  0    , 
  65.158     ,  0    ,  0    )



# Model ARDL(1,4)
model = dLagM::ardlDlm(formula = y ~ x + dummy1 + dummy2 ,
                     data = df, 
                     p = 1 , # lag; given by previous analysis
                     q = 4, # order of autoregressive process; given by previous analysis
                     remove = list(p = list(dummy1 = c(1:1), 
                                            dummy2 = c(1:1)))
                    )

# transposed (for dLagM::forecast)
transposed_newdata <- t(newdata)

# forecasting
fLeves <- dLagM::forecast(model,
                   x = transposed_newdata, 
                   h = nrow(newdata),
                   interval = TRUE, 
                   level = 0.95 , 
                   nSim = 100)

# Error
# Error in if (n == 0) return(v) : missing value where TRUE/FALSE needed

任何帮助都是非常感谢的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-10 01:43:48

谢谢你发这篇文章。与变量名称相关的代码中有一个错误。我修正了新版本的dLagM 1.1.8中的问题。另外,请注意,您需要避免使用版本1.1.8的嵌套变量名。例如,如果您将"x1“作为变量,请避免使用其中包含"x1”的名称,例如"x11“。我将在下一个版本中解决这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72164350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档