Python 在statsmodel中使用VAR模型返回错误

Python 在statsmodel中使用VAR模型返回错误,python,linear-algebra,statsmodels,Python,Linear Algebra,Statsmodels,我试图在statsmodel中使用向量自回归(VAR)模型进行研究。输入数据是具有高维向量的矩阵。代码如下: from statsmodels.tsa.vector_ar.var_model import VAR model = VAR(data) fit = model.fit(maxlags=3,ic='aic') test = fit.forecast(1) 然而,当我执行它时,我得到了一个错误,如: File "/Users/Documents/code/VAR.py", line 3

我试图在statsmodel中使用向量自回归(VAR)模型进行研究。输入数据是具有高维向量的矩阵。代码如下:

from statsmodels.tsa.vector_ar.var_model import VAR
model = VAR(data)
fit = model.fit(maxlags=3,ic='aic')
test = fit.forecast(1)
然而,当我执行它时,我得到了一个错误,如:

File "/Users/Documents/code/VAR.py", line 39, in test_var
fit = model.fit(maxlags=3,ic='aic')
File "/Users/anaconda3/lib/python3.5/site-packages/statsmodels/tsa/vector_ar/var_model.py", line 423, in fit
selections = self.select_order(maxlags=maxlags, verbose=verbose)
File "/Users/anaconda3/lib/python3.5/site-packages/statsmodels/tsa/vector_ar/var_model.py", line 508, in select_order
for k, v in iteritems(result.info_criteria):
File "/Users/anaconda3/lib/python3.5/site-packages/statsmodels/base/wrapper.py", line 35, in __getattribute__
obj = getattr(results, attr)
File "/Users/anaconda3/lib/python3.5/site-packages/statsmodels/tools/decorators.py", line 97, in __get__
_cachedval = self.fget(obj)
File "/Users/anaconda3/lib/python3.5/site-packages/statsmodels/tsa/vector_ar/var_model.py", line 1471, in info_criteria
ld = logdet_symm(self.sigma_u_mle)
File "/Users/anaconda3/lib/python3.5/site-packages/statsmodels/tools/linalg.py", line 219, in logdet_symm
c, _ = linalg.cho_factor(m, lower=True)
File "/Users/anaconda3/lib/python3.5/site-packages/scipy/linalg/decomp_cholesky.py", line 132, in cho_factor
check_finite=check_finite)
raise LinAlgError("%d-th leading minor not positive definite" % info)
numpy.linalg.linalg.linalg错误:第98前导小调非正定


我对这里的数学理论不太熟悉,我想知道如何解决这个问题。(例如,我应该先进行哪些数据预处理方法。)

您能提供完整的堆栈跟踪吗?因此,我们可以看到谁负责抛出该错误,以及呼叫链是什么样子的?感谢您的回复,我已经添加了错误信息。相关吗?我尝试了PCA,但仍然出现了这个错误。即使使用PCA,也可能会有太多的组件和参数。看起来
sigma\u\mle
是单数的,您可能仍然拥有比观察更多的参数。一个完整的变量在变量的数量上是非常有限的,因为参数的数量增长非常快。你能提供完整的堆栈跟踪吗?因此,我们可以看到谁负责抛出该错误,以及呼叫链是什么样子的?感谢您的回复,我已经添加了错误信息。相关吗?我尝试了PCA,但仍然出现了这个错误。即使使用PCA,也可能会有太多的组件和参数。看起来
sigma\u\mle
是单数的,您可能仍然拥有比观察更多的参数。一个完整的VAR在变量的数量上是非常有限的,因为参数的数量增长非常快。