如何获取Nixtla statsforecast拟合模型的参数与模型摘要?
StatsForecast AutoARIMA:参数提取、情景分析与摘要生成
1. 取出拟合后的模型实例
当你用StatsForecast完成模型拟合后,通过get_model()方法可以拿到AutoARIMA的具体模型对象:
# 假设已经执行完sf.fit(df=y, X=X)的拟合步骤 arima_model = sf.get_model('AutoARIMA')
2. 提取模型规格与参数
StatsForecast的AutoARIMA拟合完成后,核心参数都存储在*model_*属性中,直接调用即可获取:
- 自动选中的ARIMA阶数:
arima_model.model_.order(返回(p,d,q)元组) - 季节性阶数:
arima_model.model_.seasonal_order(返回(P,D,Q,s)元组) - 外部回归因子的系数:
arima_model.model_.coef_ - 模型截距:
arima_model.model_.intercept_ - 所有模型参数(含AR项、MA项、季节性项、回归系数):
arima_model.model_.params
3. 修改回归因子参数做情景分析
如果要固定ARIMA的阶数,仅调整外部回归因子的系数进行情景预测,无需再用AutoARIMA自动选阶,直接使用固定阶数的ARIMA模型即可:
from statsforecast.models import ARIMA # 先获取AutoARIMA自动选定的阶数 p, d, q = arima_model.model_.order P, D, Q, s = arima_model.model_.seasonal_order # 自定义情景所需的新回归系数和截距 new_coef = [1.2, 0.8] # 替换为你需要的情景系数 new_intercept = 0.5 # 构建固定参数的ARIMA模型 custom_arima = ARIMA( order=(p, d, q), seasonal_order=(P, D, Q, s), intercept=new_intercept, coef=new_coef ) # 传入新的外部回归因子数据生成情景预测 sf_custom = StatsForecast(models=[custom_arima], freq='M') scenario_forecasts = sf_custom.predict(h=12, X=X_scenarios)
4. 生成研究用模型摘要
StatsForecast目前没有内置的summary()方法,但可以手动提取关键指标整理成结构化摘要:
import pandas as pd summary_info = { '模型类型': ['AutoARIMA'], 'ARIMA阶数(p,d,q)': [arima_model.model_.order], '季节性阶数(P,D,Q,s)': [arima_model.model_.seasonal_order], '截距项': [arima_model.model_.intercept_], '外部回归因子系数': [arima_model.model_.coef_], 'AIC': [arima_model.model_.aic], 'BIC': [arima_model.model_.bic] } summary_df = pd.DataFrame(summary_info) print(summary_df)
如果需要残差诊断类细节,可以通过arima_model.model_.resid获取残差序列,自行计算统计指标或绘制诊断图。
内容的提问来源于stack exchange,提问作者siebenkaese
相关产品推荐
相关产品推荐

