1

我是计算神经科学的硕士 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 AIC:-59.6358271069015 BIC:-59.61188298346849 FPE:1.260344786813777e-26 HQIC:-59.626460351200464

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

文件“”,第 139 行,在 print('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.CachedProperty 中的文件“pandas/_libs/properties.pyx”,第 33 行。得到

文件“/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 中引发 LinAlgError(“数组的第 %d 个前导次要不是正数”

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

4

0 回答 0