gpt4 book ai didi

python - statespace.SARIMAX model : why the model use all the data to train mode, 和 train 模型预测范围

转载 作者:太空狗 更新时间:2023-10-29 20:55:29 25 4
gpt4 key购买 nike

我按照教程学习了SARIMAX模型:https://www.digitalocean.com/community/tutorials/a-guide-to-time-series-forecasting-with-arima-in-python-3 .数据的日期范围是1958-2001。

mod = sm.tsa.statespace.SARIMAX(y,
order=(1, 1, 1),
seasonal_order=(1, 1, 1, 12),
enforce_stationarity=False,
enforce_invertibility=False)

results = mod.fit()

在拟合 ARIMA 时间序列模型时,我发现作者的所有日期范围数据都适合模型参数。但是在验证 Forecasts 时,作者使用从 1998-01-01 开始的日期作为数据日期范围的一部分来拟合模型。

pred = results.get_prediction(start=pd.to_datetime('1998-01-01'), dynamic=False)

我知道在机器学习模型中,训练数据和验证(测试)数据是不同的,我的意思是不同的范围。我的意思是作者是对的?为什么这样做(我的意思是使用所有火车数据的原因),我是 SARIMAX 模型的新模型。

你们能告诉我更多关于这个模型的信息吗,例如如何预测天或周而不仅仅是月,我的意思是如何设置参数 order=(1,1,1), seasonal_order=(1, 1, 1, 12).谢谢!

最佳答案

作者是对的。当您进行回归(线性、高阶或逻辑回归——无关紧要)时——与你的训练数据有偏差是绝对可以的(例如——即使是训练数据的逻辑回归也可能会给你一个误报)。

Same 代表时间序列。我认为作者想通过这种方式表明模型构建正确。

seasonal_order=(1, 1, 1, 12)

如果您查看 tsa 统计信息 documentation你会看到,如果你想使用季度数据 - 你必须分配最后一个参数(s) - 值为 4。每月 - 12。这意味着如果你想使用每周数据 seasonal_order 应该看起来像这样

seasonal_order=(1, 1, 1, 52)

每日数据将是

seasonal_order=(1, 1, 1, 365)

order组件是分别负责非季节性参数p、d、q的参数。您必须根据您的数据行为找到它们

  • p。您可以将其解释为 enter image description here有影响 enter image description here .或者换句话说,如果您有每日数据并且 p 为 6,您可以理解为星期二的数据是否会对星期日的数据产生影响。
  • d。差分参数。它定义了流程的集成级别。这意味着你应该应用多少次时间序列 differencing operator为了让你的时间序列平稳
  • 问。您可以将其解释为有多少先验噪声(错误)影响当前值

这是一个很好的answer如何找到非季节性成分值

关于python - statespace.SARIMAX model : why the model use all the data to train mode, 和 train 模型预测范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44235558/

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