statsmodels SARIMAX-如何通过名称访问参数?

时间:2019-07-17 15:01:37

标签: python statsmodels arima

我正在将具有线性趋势的ARMA模型拟合到序列,并且我想在优化后访问参数以进行一些测试。看来我可以通过属性params访问参数,但这只是其中包含所有参数的数组。有没有更方便的方法来访问参数(例如字典)?

import numpy
from statsmodels.tsa.statespace.sarimax import SARIMAX

N_TRAIN = 100

train_data = numpy.random.randn(N_TRAIN)

model = SARIMAX(
    endog=train_data,
    order=(2, 0, 2),                
    seasonal_order=(0, 0, 0, 0),    
    trend='ct',                     
    enforce_stationarity=False,
    enforce_invertibility=False
)

fitted_model = model.fit(disp=False, maxiter=100, method='powell')

print(fitted_model.params)

Out:
[-0.03781736 -0.00285008  0.88970682 -0.88314944 -1.05743719  0.89770456
  0.84405409]

1 个答案:

答案 0 :(得分:1)

如果输入endog数组是Numpy数组,则Statsmodels的所有结果也是Numpy数组。

如果将数据制作为Pandas系列,则返回的params对象将是包含参数名称的Pandas系列。

例如,您可以执行:train_data = pd.Series(numpy.random.randn(N_TRAIN))(在完成import pandas as pd之后)。