在评估VAR模型的AIC(vars软件包)时出错

时间:2020-03-23 05:43:49

标签: r time-series

我将VAR模型(​​下面的对象“ varfit”)从vars包传递给stats :: AIC()函数,但遇到以下错误。我不确定是什么问题。任何帮助,将不胜感激。谢谢!

Error in solve.default(Sigma) : Lapack routine dgesv: system is exactly singular: U[1,1] = 0
11. solve.default(Sigma)
10. solve(Sigma)
9. diag(resids %*% solve(Sigma) %*% t(resids))
8. logLik.varest(object)
7. ll(object)
6. AIC.default(varfit)
5. stats::AIC(varfit) 

1 个答案:

答案 0 :(得分:0)

深入研究后,我发现了问题的根本原因。我正在使用VARselect()函数中的完整数据集(195个观察值)来确定要在VAR模型中使用的滞后(K)值。但是,在构建VAR模型时,我正在使用批处理方法来使用数据的子集(一次50个观察)来构建模型。

在这种情况下,VARSelect建议的K值非常高(准确地说是10),我的数据集中有大约15个变量。因此,批次大小必须大于〜150,才能计算VAR模型的所有系数。由于我的批处理量太小,因此无法正确构建模型,从而导致AIC函数出错。

This post对此有更多说明。我希望这会在将来对其他人有所帮助。