2

我正在尝试使用 class 创建一个 Seasonal ARIMA 模型statsmodels.statespace.sarimax.SARIMA,并且该模型似乎创建得很好。 SARIMA 模型总结的 JPEG

现在,我想将 AR 系数和 MA 系数分别传递给变量,但出现错误:SARIMAXResultsobject has no attribute _params_ma错误的JPEG

我应该怎么做才能纠正错误?

4

2 回答 2

0

Finnaly,我发现这是我自己的错。

按照我的 SARIMA(2,0,0)X(0,0,1,12) 模型,非季节性元素有 orders(p,d,q)=(2,0,0),季节性元素有订单 (P,D,Q,s)=(0,0,1,12)。因此,模型表明数据具有非季节性 AR(2) 模式和季节性 MA(1)_12 模式。因此,SARIMAXResults.maparams将无法估计对应的非季节性 MA 模式的系数。相比之下,SARIMAXResults.seasonalmaparams将估计对应的季节性 MA 部分系数。

为了获得季节性 MA 模式的估计系数值,我应该调用seasonalmaparams()方法,而不是maparams().

错误问题现在解决了。:D

于 2018-11-01T02:18:42.320 回答
0

嗯,看到源代码后,评论中添加的另一个问题也解决了。

实际上,调用 的属性应该加上括号SARIMAXResults,所以cov_params()会显示协方差矩阵,如下所示: cov_params 矩阵

接下来,为了计算参数的相关矩阵,我编码如下:

# Step1: Pass the covariance-variance matrix to a specified DataFrame
df_cov = final_result.cov_params()
# Step2: Creat a blank DataFrame which will be used to store correlation values
coef_name = [r'$b_1$',r'$b_2$',r'$\theta_1$',r'$\phi_{12}$',r'$\phi_{24}$']
cor_df = pd.DataFrame(index=coef_name,columns=coef_name)
cor_df.loc[:,:]=''
# Step3: Loop the covariance-variance matrix and calculate the correlation
var=[0]*5
for i in range(5):
    var[i] = df_cov.iloc[i,i]
for i in range(5):
    for j in range(5):
        if j<=i:
            corvar = df_cov.iloc[i,j] 
            cor = corvar/np.sqrt(var[i]*var[j])
            cor_df.iloc[i,j] = round(cor,2)
        else:
            continue
# Step4: Show the correlation matrix(as type of DataFrame)
cor_df

最后,很好地计算出相关矩阵,如下所示: 相关矩阵

感谢您的关注,现在没有更多问题了。

于 2018-11-12T04:46:46.200 回答