如何跳过 ARIMA 模型(python)中的第一个滞后 N 天?
Posted
技术标签:
【中文标题】如何跳过 ARIMA 模型(python)中的第一个滞后 N 天?【英文标题】:How to skip the the first lag N days in ARIMA model (python)? 【发布时间】:2021-09-24 15:17:41 【问题描述】:我的数据包含 21 周的每日销售额(17 周的训练数据,4 周的验证数据),并且想要预测下周的每日销售额,例如站在第 10 周的星期一,我想用第 1-9 周的数据在 python 中预测第 11 周的每日销售额。
由于在目标日期之前缺少 1-2 周的数据(对于第 11 周星期一,我错过了滞后 1-7,对于第 11 周星期日,我错过了滞后 1-13),我应该如何构建自变量,数据结构或配置 arima 模型,以便在训练数据中可以反映缺失的日期,并且不会将最近的滞后作为输入?
谢谢!
【问题讨论】:
【参考方案1】:我在这里看到了两种可能性。
我假设您正在使用 statsmodels ARIMA 类。您可以在定义订单时指定 ARIMA 应该使用哪些滞后。例如,如果您提供order=(4,0,0)
,它将使用最后四个滞后作为自回归组件。如果你给order=([1,0,1,1],0,0)
,它只会使用最后一个、第三个和第四个倒数滞后,而忽略倒数第二个。在[]
中,您可以使用 1 定义要使用的滞后,以及使用 0 忽略特定组件的滞后。
您可以使用插补来填充缺失值。有很多方法可以做到这一点,您需要为您的用例找到一个好的方法,对于初学者,您可以在这里查看:https://machinelearningmastery.com/statistical-imputation-for-missing-values-in-machine-learning/
我不知道你的用例,但我建议第二种方式。
【讨论】:
以上是关于如何跳过 ARIMA 模型(python)中的第一个滞后 N 天?的主要内容,如果未能解决你的问题,请参考以下文章
Python中的ARIMA模型SARIMA模型和SARIMAX模型对时间序列预测
使用 Python 训练 arima 模型时如何解决 LinAlgError 和 ValueError