gpt4 book ai didi

Python/Pandas - 如何调整 auto_arima 模型参数以获得 future 预测

转载 作者:太空宇宙 更新时间:2023-11-04 02:11:55 25 4
gpt4 key购买 nike

python 3.6

我的数据集如下所示:

它是旅游预订,例如旅游公司。航空公司/火车/公共(public)汽车等

date           bookings
2017-01-01 438
2017-01-02 167
...
2017-12-31 45
2018-01-01 748
...
2018-11-29 223

我需要这样的东西(即超出数据集的预测数据):

date           bookings
2017-01-01 438
2017-01-02 167
...
2017-12-31 45
2018-01-01 748
...
2018-11-29 223
2018-11-30 98
...
2018-12-30 73
2018-12-31 100

代码:

import pyodbc
import pandas as pd
import cufflinks as cf
import plotly.plotly as ply
from pmdarima.arima import auto_arima

sql_conn = pyodbc.connect(# connection details here)
query = #sql query here
df = pd.read_sql(query, sql_conn, index_col='date')
df.index = pd.to_datetime(df.index)

stepwise_model = auto_arima(df, start_p=1, start_q=1,
max_p=3, max_q=3, m=7,
start_P=0, seasonal=True,
d=1, D=1, trace=True,
error_action='ignore',
suppress_warnings=True,
stepwise=True)
stepwise_model.aic()

train = df.loc['2017-01-01':'2018-06-30']
test = df.loc['2018-07-01':]

stepwise_model.fit(train)
future_forecast = stepwise_model.predict(n_periods=len(test))
future_forecast = pd.DataFrame(future_forecast,
index=test.index,
columns=['prediction'])
pd.concat([test, future_forecast], axis=1).iplot()

结果 enter image description here

如您所见,预测偏差很大,我认为问题出在没有使用正确的 auto_arima 参数。获取这些参数的最佳方法是什么?我也许可以反复试验,但最好了解获得最佳匹配的标准/非标准程序。

如有任何帮助,我们将不胜感激。

来源:

最佳答案

您在 2018 年 8 月左右有一个结构性中断,但您只训练到 2018 年 7 月。ARIMA(或与此相关的任何单变量时间序列方法)永远无法预测该结构性中断。您必须扩展训练数据集以包含 2018 年 8 月和 9 月的值。

参见 the first section of this blog post更好地理解为什么会这样。

关于Python/Pandas - 如何调整 auto_arima 模型参数以获得 future 预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53554402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com