statsmodels SARIMAX - 如何按名称访问参数?
statsmodels SARIMAX - How to access parameters by name?
我正在将具有线性趋势的 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]
如果输入 endog
数组是 Numpy 数组,则 Statsmodels 的所有结果也是 Numpy 数组。
如果您将数据设为 Pandas 系列,则返回的 params
对象将是包含参数名称的 Pandas 系列。
例如,您可以这样做:train_data = pd.Series(numpy.random.randn(N_TRAIN))
(在 import pandas as pd
之后)。
我正在将具有线性趋势的 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]
如果输入 endog
数组是 Numpy 数组,则 Statsmodels 的所有结果也是 Numpy 数组。
如果您将数据设为 Pandas 系列,则返回的 params
对象将是包含参数名称的 Pandas 系列。
例如,您可以这样做:train_data = pd.Series(numpy.random.randn(N_TRAIN))
(在 import pandas as pd
之后)。