我的问题建立在上一篇关于通用时间序列中异常值检测的文章的基础上,特别是始终出色的 Rob H.
我在一家小型制造公司工作,目前正在处理这个问题,即检测销售数据时间序列中的异常值,采用(可疑的)自动化现成软件程序。
我认为这种方法充其量是有问题的,而且我通常对得到的结果不满意。因此,我想使用一些替代方法“仔细检查”我们软件的输出。
Rob 的想法似乎合理、直接且易于实施,因此我决定尝试一下。问题是:如果我的时间序列不是“通用的”怎么办?
Stl 分解突出显示了我的数据中的强烈季节性和变化趋势:

(顺便说一句,我stl(x,s.window="periodic")像 Rob 建议的那样使用,但恕我直言stl(x,s.window="periodic",robust=TRUE),因为异常值检测是手头的问题,所以恕我直言。此外,我不太确定这s.window="periodic"部分,我尝试了一些不同的值,但我没有知道如何解释结果。也许有人可以指出我正确的方向?)。
回到我的问题,我是销售数据,季节性模式(或者我认为是)受到日历效应的强烈影响。我也有理由相信,2009 年的水平大转变是金融危机造成的,与趋势无关。
我在这里做什么?我应该让模型处理这个问题,还是应该预处理数据?我是在 2009 年之前和 2009 年之后执行工作日调整并重新对齐(有这样的事情吗?),还是让 STL 分解来完成这项工作?
我可以再写 1000 行,但我认为这应该足以让信息通过。我为 WOT 和我糟糕的英语道歉。另外我希望我没有违反太多的论坛规则......
我希望有人可以提供帮助!

。
此处列出了异常值,即 PULSES 。一个非常有启发性的图形是经过清洗的与此处显示的实际图形
。最后,拟合/实际/预测图是一个很好(但很忙)的总结
。预测图是
. 最终的模型统计数据显示在最后三张图像 和
和
和
中。模型的残差是合理随机
的,没有剩余的自
相关结构。希望这个小例子对大家有帮助!我是我在这里使用的软件的开发人员之一。还有其他商业上可用的产品可以提供类似的东西。