【问题标题】:Trouble understanding and using Statsmodels' SARIMAX `conf_int()` output无法理解和使用 Statsmodels 的 SARIMAX `conf_int()` 输出
【发布时间】:2017-01-02 05:02:59
【问题描述】:

我一直在尝试使用 statsmodels 的 SARIMAX 模型,但返回了一个围绕我的预测的置信区间。

我的目标是为置信区间的上限和下限生成一系列预测。

我尝试拟合我的模型,然后使用get_prediction(),最后使用conf_int()。 get_prediction() 按我的预期返回每个索引的数据。但是,conf_int() 返回一个奇怪的矩阵:

        0   1
ar.S.L7 0.018806    0.194818
ma.S.L7 -0.830238   -0.717128
sigma2  40.832875   48.105937

我不明白。我注意到这些是模型的参数,但我不知道如何使用这些来获得每个指数的上限和下限预测。

我咨询过:this、this 和 this,但他们似乎都没有同样的问题。我也看过this question。我试图尽可能地遵循他们的代码,但无法重现问题。

【问题讨论】:

  • conf_int 表示不同的东西,具体取决于所指的统计数据。模型结果实例的conf_int 是估计参数的置信区间。预测或预测中的conf_int 是新观测值的预测区间或新观测值的预期值的置信区间。

标签: python forecasting statsmodels


【解决方案1】:

当你这样做时:

model = sm.tsa.statespace.SARIMAX(params)
fit_model = model.fit()

nforecast = 144
forecast = fit_model.get_prediction(end=model.nobs+nforecast)

ci = forecast.conf_int()

print(ci.head())

你应该得到:

          upper [name of your feature]     lower [name of your feature]

 time1           0.018806                    0.194818 
 time2          -0.830238                   -0.717128
 time3           40.832875                   48.105937

如果原始数据中没有特征标题,则 ci 的默认标题只是“上”和“下”。

【讨论】:

    猜你喜欢
    • 2021-09-17
    • 2020-10-17
    • 2017-07-30
    • 2017-07-24
    • 2019-01-17
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    相关资源
    最近更新 更多