一旦检测到时间序列数据预测,如何纠正异常值?


10

一旦我在时间序列数据中找到/检测到异常值,我就试图找到一种纠正异常值的方法。某些方法(例如R中的nnetar)会给出具有较大/较大异常值的时间序列的一些错误。我已经设法纠正了缺失的值,但是离群值仍在损害我的预测...


你所说的“纠正”是什么意思?
rbatt 2013年

替换或替换...还是应该减去...?
Mila 2013年

3
离群值是“真实的”吗?我的意思是,异常值是由模型无法预测极端事件或冲击引起的吗?还是它们是“错误”,例如数据输入问题?
概率

Answers:


9

预测包中现在有一个用于R的工具,用于识别和替换异常值。(它也可以处理缺失的值。)由于您显然已经在使用预测包,因此这可能是您的便捷解决方案。例如:

fit <- nnetar(tsclean(x))

tsclean()函数将使用黄土(针对非季节性序列)拟合稳健的趋势,或者使用STL(针对季节性序列)拟合稳健的趋势和季节性分量。计算残差并计算以下范围:

U=q0.9+2(q0.9q0.1)L=q0.12(q0.9q0.1)
q0.1q0.9

UL

对于非季节时间序列,离群值由线性插值代替。对于季节性时间序列,在重新季节性化结果之前,应删除STL拟合中的季节性分量,并线性内插经季节性调整的序列以替换异常值。


1
您的详细说明也很有帮助:stats.stackexchange.com/questions/1142/…(tsclean调用tsoutliers)

4

当您识别ARIMA模型时,您应该同时识别脉冲/水平移动/季节性脉冲和/或本地时间趋势。您可以在http://www.ebay.com/ctg/Time-Series-Analysis-Univariate-and-Multivariate-Methods-David-P-Reilly-and-William-Wei-1999上获得有关干预检测程序的一些阅读材料 。 -/ 85697http://www.unc.edu/~jbhill/tsay.pdf。正如我所看到的免费软件一样,您可能必须使用SAS / SPSS / AUTOBOX等商业软件才能获得有用的结果。顺便说一句,我在这方面为AUTOBOX做出了重大的技术改进。

编辑:

更好的方法是使用严格的ARIMA方法加上干预检测程序来识别异常值,从而获得可靠的ARIMA参数和良好的预测。现在考虑开发包含无脉冲效应的重新采样残差的模拟预测。通过这种方式,您可以得到两全其美的效果,即通过一个好的模型和更现实的不确定性陈述来进行预测,这些假设不假定估计的模型参数是总体值。


1

我同意@Aksakal。代替消除异常值,更好的方法是使用某种统计程序来处理异常值。我建议您winsorise您的数据。如果实施得当,winsorisation对异常值可能会相对稳健。在此页面上:http : //www.r-bloggers.com/winsorization/,您将找到用于实现winsorisation的R代码。如果您考虑取消数据存储,则需要仔细考虑分布的尾巴。预期的异常值是极低的,还是预期的极高,或者两者都有。这将影响您的Winsorise是否处于5%或10%和/或95%或99%的水平。


1
出于估计总体均值的目的,Winsorization在数据中没有任何趋势或季节性成分的情况下可能具有一定意义,但否则有可能破坏重要信息。
ub

0

在预测环境中,除去异常值是非常危险的。例如,您正在预测杂货店的销售。假设相邻建筑物发生瓦斯爆炸,导致您关闭商店几天。这是这家商店十年来唯一一次关闭。因此,您将获得时间序列,检测异常值,将其删除并进行预测。您无声地认为将来不会发生任何此类情况。实际上,您压缩了观察到的方差,并且系数方差缩小了。因此,如果显示预测的置信带,则它们将比不删除离群值的情况要窄。

当然,您可以保留异常值,并照常进行,但这也不是一个好方法。原因是该异常值将使系数偏斜。

我认为在这种情况下,更好的方法是允许错误分布并带有粗尾,也许是稳定分布。在这种情况下,您的离群值不会使系数偏斜太多。它们将接近系数,而离群值被删除。但是,异常值将显示在误差分布中,即误差方差。本质上,您将获得更宽的预测置信度范围。

置信带传达了非常重要的信息。如果您预测本月的销售额为1,000,000 美元,但是有5%的可能性是10,000美元,这会影响您在支出,现金管理等方面的决定。


-1

要使用(或不使用)已删除异常值的模型进行预测,取决于未来发生异常值的可能性及其影响的预期分布(如果确实存在)。训练数据足以说明这一点吗?贝叶斯方法应该可以帮助...


1
这是不正确的。如果您不针对离群值进行调整,则您的预测可能会不准确,尤其是在离群值位于序列的末尾时。
预报者
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.