具有不同滞后算子的向量自回归 (VAR) 模型拟合 排列列名

问题描述

我是计算神经科学的硕士 2 学生。 我在分析的最后,我在应用 VAR 模型(向量自回归模型)时遇到了问题。 这是一个相当复杂的问题,它涉及对数据的不同滞后算子的测试。对我来说,当我尝试在具有负数的协方差矩阵上计算 cholesky 分解时,问题就出现了。 :

我可能已经找到了解决方案,但我无法将其包含在部署模型(“VAR”)的 python 函数中。如果有人有十分钟的时间来帮助我,请写信给我。感谢您的关注:)

对于 [1,2,3,4,6,8,9,10,12,13,14,15,16,17,18,19,20] 中的 i: 打印(i)

df_entropie_G1_w_diff = df_entropie_G1_w.iloc[i,2145:].diff()

df_RMSE_G1_w_diff = df_g1_RMSE_w.iloc[i,2145:].diff()

df_var_G1_w_diff = df_var_G1_w.iloc[i,2145:].diff()


df_data = pd.concat([df_entropie_G1_w_diff,df_RMSE_G1_w_diff,df_var_G1_w_diff],axis = 1)

df_data = df_data.diff().dropna()


df_data = df_data.T

df_data = df_data.reset_index()

del df_data['index']

df_data = df_data.T

df_data['Time'] = pd.to_timedelta(np.arange(537),unit='s')

df_data.index = df_data['Time']

del df_data['Time']

排列列名

df_data_T = df_data.T 

df_data_T = df_data_T.reset_index()

del df_data_T['index']


df_data_T = df_data_T.T


df_data = df_data_T.rename(columns={0:'Entropie',1:'RMSE',2:'Var'})


model = VAR(df_data)
liste_aic = []
liste_bic = []
liste_fpe = []
liste_hqic = []


for a in range(0,25,1):
    result = model.fit(a)
    print('Lag Order =',a)
    print('AIC : ',result.aic)
    print('BIC : ',result.bic)
    print('FPE : ',result.fpe)
    print('HQIC: ',result.hqic,'\n')
    liste_aic.append(result.aic)
    liste_bic.append(result.bic)
    liste_fpe.append(result.fpe)
    liste_hqic.append(result.hqic)
    

1 滞后阶数 = 0 工商局:-59.6358271069015 BIC : -59.61188298346849 FPE:1.260344786813777e-26 总部:-59.626460351200464

滞后顺序 = 1 /opt/anaconda3/lib/python3.8/site-packages/statsmodels/tsa/base/tsa_model.py:578: ValueWarning: 提供了不受支持的索引,将被忽略,例如预测。 warnings.warn('提供了一个不受支持的索引,将是' 回溯(最近一次调用):

文件“”,第 139 行,在 打印('AIC:',result.aic)

文件“/opt/anaconda3/lib/python3.8/site-packages/statsmodels/base/wrapper.py”,第 34 行,getattribute obj = getattr(results,attr)

文件“/opt/anaconda3/lib/python3.8/site-packages/statsmodels/tsa/vector_ar/var_model.py”,第2139行,aic 返回 self.info_criteria['aic']

文件“pandas/_libs/properties.pyx”,第 33 行,在 pandas._libs.properties.CachedProperty.get

文件“/opt/anaconda3/lib/python3.8/site-packages/statsmodels/tsa/vector_ar/var_model.py”,第 2120 行,在 info_criteria ld = logdet_symm(self.sigma_u_mle)

文件“/opt/anaconda3/lib/python3.8/site-packages/statsmodels/tools/linalg.py”,第28行,在logdet_symm中 c,_ = linalg.cho_factor(m,lower=True)

文件“/opt/anaconda3/lib/python3.8/site-packages/scipy/linalg/decomp_cholesky.py”,第152行,在cho_factor c,lower = _cholesky(a,lower=lower,overwrite_a=overwrite_a,clean=False,

文件“/opt/anaconda3/lib/python3.8/site-packages/scipy/linalg/decomp_cholesky.py”,第37行,在_cholesky raise LinAlgError("第 %d 个数组的前导次要不是正数"

LinAlgError: 数组的第 3 个前导次要不是正定的

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)