VAR模型中的错误

时间:2018-07-09 16:39:28

标签: r dplyr var forecasting

我有此数据:

     Year W  L  PTS GF  GA  S    SA
1    2006 49 25 106 253 224 2380 2662
2    2007 51 23 110 266 207 2261 2553
3    2008 41 32 91  227 224 2425 2433
4    2009 40 34 88  207 228 2375 2398
5    2010 47 29 100 217 221 2508 2389
6    2011 44 27 99  213 190 2362 2506
7    2012 48 26 104 232 205 2261 2517
8    2014 38 32 88  214 233 2382 2365
9    2015 47 25 104 226 202 2614 2304
10   2016 41 27 96  224 213 2507 2231
11   2017 41 29 94  238 220 2557 2458
12   2018 53 18 117 261 204 2641 2650

我已经从这些数据(列出的年份中一个团队的曲棍球数据)构建了VAR模型。我将以上内容转换为时间序列ts()的参数,并创建了此模型:

VARselect(NSH_ts[, 3:5], lag.max = 8)
var1 <- VAR(NSH_ts[, 3:5], p = 2, type = "both", ic = c("AIC"))
serial.test(var1, type = "PT.adjusted")
forecast.var1 <- forecast(var1, h = 2) 
autoplot(forecast.var1) +
  scale_x_continuous(breaks = seq(2006, 2022))

我想使用serial.test()参数,但出现此错误:

Error in t(Ci) %*% C0inv : non-conformable arguments

为什么serial.test()参数不起作用? (总的来说,我正在根据集合中的变量来预测未来两年的PTS

我一直以此为指导:https://otexts.org/fpp2/VAR.html

1 个答案:

答案 0 :(得分:1)

我遇到了另一个错误,可能是VARselect引起的。我的表主要是-Inf项,其中一个为NaN,其余为0。调整lag.max可以得到实数,还必须调整其他值。

VARselect(dfVAR[, 3:5], lag.max = 2)
var1 <- VAR(dfVAR[, 3:5], p = 1, type = "both", ic = c("AIC"))
serial.test(var1, lags.pt = 4, type = "PT.adjusted")

    Portmanteau Test (adjusted)

data:  Residuals of VAR object var1
Chi-squared = 35.117, df = 27, p-value = 0.1359

The basis of the non-conformable error is that your matrix algebra isn't working, the number of cols in the first matrix have to match the number of rows in the second.由于不了解VAR模型,因此我无法提供任何帮助。