计算复杂季节性的季节性指数

机器算法验证 时间序列 季节性
2022-03-01 01:03:27

我想使用指数平滑来预测零售商品(按周)。我现在被困在如何计算、存储和应用季节性指数上。

问题是我发现的所有示例都涉及一种简单的季节性。就我而言,我有以下问题: 1. 季节不会在每年的同一周发生:它们是可移动的。狂欢节、借出的、复活节和其他一些。2. 有根据年份而变化的季节。例如,有一个国定假日季节。根据假期是否接近周末,客户会或不会离开城镇。所以这有点像有两个季节:一个是顾客离开城镇,一个是他们不离开城镇。3. 有时两个(或三个)季节同时出现。例如,我们有“狂欢节”季节与情人节季节同时发生。
4. 有时季节会改变持续时间。例如,今年早些时候开始的“万圣节季节”。圣诞节也是另一个例子,我们似乎每年都提早开始携带产品。

在我看来,我需要找到一种方法来设置某种“季节性配置文件”,然后根据特定情况以某种方式添加这些配置文件以获得正确的季节性指数。那有意义吗?

有人知道我在哪里可以找到有关如何执行此操作的实用信息吗?

谢谢,埃德加德

2个回答

对于您描述的那种季节性,虚拟变量方法可能是最好的。然而,这在 ARIMA 框架中比指数平滑框架更容易处理。 其中每个变量对应于节日或节日事件之一。这就是R 中的函数拟合回归变量的方式(作为带有 ARIMA 错误的回归,而不是作为 ARIMAX 模型)。

yt=a+b1Dt,1++bmDt,m+NtNtARIMA
Dt,karima

如果你真的想坚持使用指数平滑框架,我在2008 年出版的关于指数平滑的书中讨论了如何包含协变量你也可以看看我最近关于复杂季节性指数平滑的论文,尽管我们在那里讨论的季节性并发症类型比你描述的移动节日类型更难。

一个简单的解决方法是在您的规范中包含事件假人:

(1)yt^=λ1yt1+...+λkytk+ϕ1Dt,1+ϕmDt,m

其中是一个指标,如果第周有事件(比如狂欢节),则取值为 ,否则,对于您认为重要Dt,m1tmm

规范的第一部分本质上是一个指数平滑器,但权重作为滞后的函数而变化(并由 OLS 估计)。λ1yt1+...+λkytk

这假设您对每个事件至少有 20 次观察(即 20 次“狂欢节”)。如果不是这种情况,您可以尝试将一些事件捆绑在一起(例如狂欢节和劳动节)。

适合 (1) 的 R 相当简单,假设 dlsales 是固定的并且 D 是您的虚拟变量矩阵:

fit<-arima(dlsales,order=c(4,0,0),seasonal = list(order = c(1, 0, 0),period=52),xreg = D)

从这里开始,您可以针对我的回答中您不熟悉的部分提出更具体的问题(我不知道您在统计方面的水平如何)。