我使用具有外生变量的向量自回归模型对具有季节性的日常订单进行建模。我使用了'vars'包,它具有适合模型的功能。我没有使用外生变量就得到了预测,但我必须包括它们。当我把它们包括在内时,我的预测是作为NAs出现的。我不明白为什么会这样。我的外生变量矩阵包括营销信息和大量的零和一个。它是一个1218 x 123大小的矩阵。我的内生变量是1218 x 4大小的矩阵。下面的R代码。我真的需要帮助来解决如何使用我的预测解决这个问题。
final<-merge.zoo(regresseditems, powers, lags)
final<-as.matrix(final)
final[is.na(final)] <- 0
x1<-final[5:1222,]
vardata<-merge.zoo(Total_Orders.ts,prospects_orders.ts,house_orders.ts,
Email_Transactions.ts)
jaba<-as.matrix(vardata)
lambda <- BoxCox.lambda(na.contiguous(jaba))
VARlnorders<-BoxCox(jaba, lambda)
vardatest<-VAR(VARlnorders, p = 123 , type ="both", season =366, exogen=x1)
predictions <-predict(vardatest, n.ahead=254,dumvar=x2)
(x2是相同外生变量的254 x 123缩小矩阵.n.ahead必须等于x2中的观测数量)
$prospects_orders.ts
fcst lower upper CI
[1,] NA NA NA 0.9641635
[2,] NA NA NA 1.1487698
[3,] NA NA NA 1.3001178
[4,] NA NA NA 1.4754121
[5,] NA NA NA 1.5504319
[6,] NA NA NA 1.6052040
[7,] NA NA NA 1.6545732
答案 0 :(得分:1)
使用与模型中的exo变量相同的虚拟变量可能会导致一些问题,因为我认为某些关系最终会无法估量。
我认为我不能完全回答你的问题,虽然看你的模型,我会说你的滞后(p)非常大 - 我会尝试使用VAR函数中的AIC最优滞后来设置它。
此外,尽管模型的变量可能非常简单,在某些地方包含0和1,但您仍然在扩展这种模型的能力(因此输出的可行性/可信度)对变量数量的观察数量相对较少。
我知道对于我使用VAR(package:vars)的很多模型来说,随着我添加更多变量,结果会慢慢失去意义和可信度。首先尝试一些较小的变量一起使用,或者甚至先进行一些成对测试 如果你这样做了,你也可以尝试在VAR模型中使用较少数量的变量作为内生变量。