stl 和 decompose 哪个更好?

机器算法验证 r 时间序列
2022-02-02 12:18:22

我正在使用 R 进行时间序列分析。我必须将我的数据分解为趋势、季节性和随机分量。我有 3 年的每周数据。我在 R 中找到了两个函数 -stl()decompose(). 我读过这stl()对乘法分解不利。谁能告诉我在什么情况下可以使用这些功能?

3个回答

我会说STLSTL 做趋势和季节性见:http ://www.wessa.net/download/stl.pdf

分解只做季节性看到这里的文档:http: //stat.ethz.ch/R-manual/R-devel/library/stats/html/decompose.html

当您与他们合作时,请务必包括您的趋势类型(乘法、加法)和季节类型(乘法、加法)。趋势有时也可能有阻尼因素。

通过乘法分解,我假设您的意思是趋势的情况。除非您分解指数增长函数,否则您不太可能使用乘法分解。

decomposeR中函数的缺点:

  1. 对于前几次和最后几次观察,趋势的估计是不可用的。
  2. 它假设季节性成分每年都在重复。

所以我更喜欢STL。通过首先获取数据的日志然后对组件进行反向转换,可以获得乘法分解。

STL 是一种更先进的提取季节性的技术,从某种意义上说,它允许季节性变化,而decompose.

要了解 STL 的工作原理:

  • 该算法估计每个季节性子系列(在 7 天的季节性中,它将估计 7 个子系列:周一时间系列、周二时间系列等),
  • 然后,它将通过对每个子系列运行黄土回归来估计当地的季节性。

这允许捕捉季节性变化的影响。如果您不希望您的季节性变化(换句话说,每个子系列的估计效果将在整个时间系列中保持不变),您可以将季节性窗口指定为无限或“周期性”。这相当于平均每个子系列并对所有点赋予相同的权重(您不再具有任何“局部”效果)。decompose本质上是相同的,因为季节性子组件将在整个时间系列中保持不变,这是 STL 的一种特殊配置。

这在这里得到了很好的解释:https ://www.otexts.org/fpp/6/1 。

STL 以加法方式估计季节性。正如前几页后面的资料中所解释的那样,您可以通过使用对数变换(或 Cox-Box 变换)以乘法方式估计季节性。