stl或分解哪个更好?


10

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


1
您将需要提供一些背景,您的问题,否则我们将不得不迁移到堆栈交换或关你试试建议?stl?decompose
AdamO 2014年

Answers:


4

我会说STL。STL确实具有趋势和季节性,请参见:http : //www.wessa.net/download/stl.pdf

仅分解不季节性,请参阅此处的文档:http : //stat.ethz.ch/R-manual/R-devel/library/stats/html/decompose.html

当您使用它们时,请确保包括趋势类型(乘法,加法)和季节类型(乘法,加法)。趋势有时也可能具有阻尼因素。

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


在简单情况下,乘法分解是基础模型为Y =趋势*季节*误差。乘法模型出现在非指数环境中。例如,对于销售,您具有一定的流量水平和一定的转化率,因此季节性因素会随趋势成比例地变化。解决方案是Natalie描述的一种。

5

decomposeR 中功能的缺点:

  1. 对于前几个观察和最后几个观察,都无法获得趋势的估计值。
  2. 假定季节性因素每年重复一次。

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


1

从允许季节性变化的意义上讲,STL是一种提取季节性的更先进的技术,而在这种情况下不是这样decompose

要了解STL的工作原理,请执行以下操作:

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

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

这在这里很好地解释了:https : //www.otexts.org/fpp/6/1

STL以累加方式估算季节性。如上一资源后面几页所述,您可以通过对数转换(或Cox-Box转换)以乘法的方式估算季节性。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.