这次我的问题更多的是方法论而不是技术问题。我有每周更新的每周时间序列数据。不幸的是,时间序列非常不稳定。因此,我想应用过滤器/平滑方法。我尝试了 Hodrick-Prescott 和 LOESS。这两个结果看起来都很好,如果出现与历史数据点有很大差异的新数据点,则必须修改/正在更改旧值。有人知道在 R 中实现的方法,它可以做我想要的吗?方法/函数的名称可能就足够了。然而,它应该比左侧移动平均线更复杂,因为我不想在时间序列开始时丢失数据。感谢每一个帮助评论!非常感谢!
此致,
安德烈亚斯
这次我的问题更多的是方法论而不是技术问题。我有每周更新的每周时间序列数据。不幸的是,时间序列非常不稳定。因此,我想应用过滤器/平滑方法。我尝试了 Hodrick-Prescott 和 LOESS。这两个结果看起来都很好,如果出现与历史数据点有很大差异的新数据点,则必须修改/正在更改旧值。有人知道在 R 中实现的方法,它可以做我想要的吗?方法/函数的名称可能就足够了。然而,它应该比左侧移动平均线更复杂,因为我不想在时间序列开始时丢失数据。感谢每一个帮助评论!非常感谢!
此致,
安德烈亚斯
我认为(?)您可能正在寻找的术语是因果过滤,即不依赖于未来值的过滤。在这个类别中,最简单/最知名的方法可能是指数平滑法,它在forecast
andexpsmooth
包 ( library("sos"); findFn("{exponential smoothing}")
) 中实现。
这有帮助吗?
看来您需要一个强大的双面平滑器。问题是端点的异常值与趋势的突然变化无法区分。只有在收集了更多的观察结果后才清楚它是一个异常值(即使这样,也需要对趋势平滑度做出一些强有力的假设)。
我认为你会发现很难做得比 更好loess()
,但其他旨在进行稳健平滑的函数包括
smooth()
用于 Tukey 的平滑器;supsmu()
对于弗里德曼的超级平滑;Hodrick-Prescott 平滑对异常值不稳健。