2

因此,使用带有 R 包“vars”的模型 var,以这种方式:

model_var <- VAR(my_data, lag.max=10)
roots(model_var)
pred <- predict(model_var, n.ahead=15)

如果 my_data 是固定的,则没有问题。但是,如果 my_data 不是固定的,我会区分 my_data 中的所有时间序列,对吗?现在,我使用差分数据,并使用这些数据进行预测。对于我返回原始数据进行预测,我应该如何使用运算符diffinv()?

谢谢!

卢卡

4

2 回答 2

2

您的数据应具有“ts”类。如果您的数据是称为数据的矩阵

类(数据)

[1] “mts” “ts”

ddata <- 差异(数据)

现在您可以使用以下命令将数据返回到级别

差异(ddata,xi=t(数据[1,]))

因此,您的预测值出现差异,然后您返回它们,例如

diffinv(pred$fcst$VARIABLENAME[1,], xi=t(数据[nrow(data),"VARIABLENAME"])

使用对数据的最后一次观察作为初始值,您可以将预测返回到水平。其中 nrow(data) 是最后一行,“VARIABLENAME”是您感兴趣的变量的列。这有意义吗?

于 2013-09-23T21:06:11.223 回答
0

@用户21240。因为我没有足够的分数来评论你的答案。我把它写在这里作为一个帖子。

从技术上讲,您所说的是正确的。即在任何系列上都像这样工作diff()diffinv()但这是将预测恢复到水平的正确方法吗,尤其是在 VAR 的情况下。

用符号表示法进行一些澄清可能会很有帮助,因为即使我也遇到了同样的问题。

于 2014-01-24T06:03:40.480 回答