Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中创建时间序列时出现非正半确定性错误_Python_Pandas_Statistics_Statsmodels - Fatal编程技术网

在Python中创建时间序列时出现非正半确定性错误

在Python中创建时间序列时出现非正半确定性错误,python,pandas,statistics,statsmodels,Python,Pandas,Statistics,Statsmodels,当我试图通过statsmodels将我拥有的一些数据拟合到Python中的VAR时间序列模型时,我收到了一个错误,其文档如下所示: 我拥有的数据可以在数据框df_IBM_training中找到,如下所示: date sym open high low close newscount 6 2014.08.05 IBM 189.30 189.3000 186.4100 187.0800 4 9

当我试图通过
statsmodels
将我拥有的一些数据拟合到Python中的VAR时间序列模型时,我收到了一个错误,其文档如下所示:

我拥有的数据可以在数据框
df_IBM_training
中找到,如下所示:

          date  sym    open      high       low     close  newscount  
6   2014.08.05  IBM  189.30  189.3000  186.4100  187.0800          4   
9   2014.08.06  IBM  185.80  186.8800  184.4400  185.9000          0   
12  2014.08.07  IBM  186.56  186.8800    1.0000  184.2800          2   
15  2014.08.08  IBM  183.32  186.6800  183.3200  186.5499         18 
我想要构建的模型VAR如下所示,我试图在下面的代码中创建回归器。我还尝试在下面的代码中搜索理想的模型顺序,这就是我得到错误的地方。下式中的每个系数,示例包括α1,1,γ1,11与代码中的
回归器关联:

Δlog(C_t) =  α1,1(log(C_t - 1) − log(O_t-1))
           + α1,2(log‌​(C_t - 1) − log(H_t-1))
           + α1,3(log(C_t - 1) − log(L_t-1))
           + γ1,11Δlog(C_t − 1)
           + γ1,12Δlog(O_t − 1)
           + γ1,13Δlog(H_t − 1)
           + γ1,14Δlog(L_t − 1)
           + εt
我的代码如下。由于某些原因,我在
模型行中遇到以下错误。请选择订单(8)

numpy.linalg.linalg.LINALGRORM第7前导小调非半正定

编辑:下面是回溯错误:

Traceback (most recent call last):
  File "TimeSeries.py", line 70, in <module>
    model.select_order(8)
  File "C:\Python34\lib\site-packages\statsmodels\tsa\vector_ar\var_model.py", line 505, in select_order
    for k, v in iteritems(result.info_criteria):
  File "C:\Python34\lib\site-packages\statsmodels\base\wrapper.py", line 35, in __getattribute__
    obj = getattr(results, attr)
  File "C:\Python34\lib\site-packages\statsmodels\tools\decorators.py", line 94, in __get__
    _cachedval = self.fget(obj)
  File "C:\Python34\lib\site-packages\statsmodels\tsa\vector_ar\var_model.py", line 1468, in info_criteria
    ld = logdet_symm(self.sigma_u_mle)
  File "C:\Python34\lib\site-packages\statsmodels\tools\linalg.py", line 213, in logdet_symm
    c, _ = linalg.cho_factor(m, lower=True)
  File "C:\Python34\lib\site-packages\scipy\linalg\decomp_cholesky.py", line 132, in cho_factor
    check_finite=check_finite)
  File "C:\Python34\lib\site-packages\scipy\linalg\decomp_cholesky.py", line 30, in _cholesky
    raise LinAlgError("%d-th leading minor not positive definite" % info)
numpy.linalg.linalg.LinAlgError: 5-th leading minor not positive definite
回溯(最近一次呼叫最后一次):
文件“TimeSeries.py”,第70行,在
型号。选择订单(8)
文件“C:\Python34\lib\site packages\statsmodels\tsa\vector\u ar\var\u model.py”,第505行,按选择顺序排列
对于iteritems中的k、v(结果信息标准):
文件“C:\Python34\lib\site packages\statsmodels\base\wrapper.py”,第35行,在\uu getattribute中__
obj=getattr(结果,attr)
文件“C:\Python34\lib\site packages\statsmodels\tools\decorators.py”,第94行,在__
_cachedval=self.fget(obj)
文件“C:\Python34\lib\site packages\statsmodels\tsa\vector\u ar\var\u model.py”,第1468行,信息标准
ld=logdet\u symm(self.sigma\u mle)
文件“C:\Python34\lib\site packages\statsmodels\tools\linalg.py”,第213行,在logdet_symm中
c、 _u=linalg.cho_系数(m,下限=真)
文件“C:\Python34\lib\site packages\scipy\linalg\decomp\u cholesky.py”,第132行,cho\u因子
check_finite=check_finite)
文件“C:\Python34\lib\site packages\scipy\linalg\decomp\u cholesky.py”,第30行,在\u cholesky中
raise LINALGEROR(“%d-th前导小调非正定”%info)
numpy.linalg.linalg.linalg错误:第5个前导小调非正定

您的样本量是多少?你估计每个方程有8*7+1个参数,总共是7倍。此外,Python还提供了很好的回溯。您需要至少显示最后几行,最好是全部,以查看引发异常的位置。我无法猜测具体的LinalError,因为我以前从未见过它。如果可以确定引发linalg错误的原因,那么提供更好的异常或异常消息将非常有用。用于打开一个问题。@user333700我的样本大小只有65个数据点。实际上,我只估计了7个参数,从α1,1到γ1,14(如我问题中的等式所示),每次t。我还编辑了问题以显示回溯错误。但是您正在使用
maxlags=8
调用
select\u order
,这意味着它试图找到最多8个滞后的最佳模型。具有8个滞后的VAR具有8*7个滞后参数+每个方程的常数,并且我们失去了初始条件下的最大滞后观测值。如果您只想估计具有1个滞后的模型,则不要使用
select\u order
。实际的例外是信息标准的对数似然计算,这意味着它能够估计参数,我想。@user333700谢谢。但是,我去掉了这一行,当我添加行
results=model.fit(1)results.summary()results.plot()
时,仍然存在与其中一个子项相关的非正半确定性问题。错误出现在
results.summary()
行中,基本上与上次的回溯错误非常相似。
Traceback (most recent call last):
  File "TimeSeries.py", line 70, in <module>
    model.select_order(8)
  File "C:\Python34\lib\site-packages\statsmodels\tsa\vector_ar\var_model.py", line 505, in select_order
    for k, v in iteritems(result.info_criteria):
  File "C:\Python34\lib\site-packages\statsmodels\base\wrapper.py", line 35, in __getattribute__
    obj = getattr(results, attr)
  File "C:\Python34\lib\site-packages\statsmodels\tools\decorators.py", line 94, in __get__
    _cachedval = self.fget(obj)
  File "C:\Python34\lib\site-packages\statsmodels\tsa\vector_ar\var_model.py", line 1468, in info_criteria
    ld = logdet_symm(self.sigma_u_mle)
  File "C:\Python34\lib\site-packages\statsmodels\tools\linalg.py", line 213, in logdet_symm
    c, _ = linalg.cho_factor(m, lower=True)
  File "C:\Python34\lib\site-packages\scipy\linalg\decomp_cholesky.py", line 132, in cho_factor
    check_finite=check_finite)
  File "C:\Python34\lib\site-packages\scipy\linalg\decomp_cholesky.py", line 30, in _cholesky
    raise LinAlgError("%d-th leading minor not positive definite" % info)
numpy.linalg.linalg.LinAlgError: 5-th leading minor not positive definite