如何判断数据点是否严重偏离规范

机器算法验证 时间序列 异常值 假设检验 预言 质量控制
2022-03-23 09:47:09

这是Statistics 101,但我不是统计学家,所以似乎无法在谷歌上找到合适的技术术语。

我的公司收集不同时间点的数据。今天的数据点与其他数据点的定位有些不同,因此我们正在争论这是否是偶然的事故或表明实际的潜在影响。你站在哪一边取决于你如何看待数据,但我们需要能够检测到这些数据。这本质上是一个阈值放置的问题。

“给定一组随时间变化的数据点,一个给定的数据点在被认为是异常之前必须有多大的不同?”,以及“一个给定的异常点是偶然发生的可能性有多大?”

这是异常值或标准偏差的简单问题吗?这个问题是否需要某种模型拟合才能解决?我最初在这里考虑 p 值和假设 - 例如,假设可疑数据点只是偶然产物的零假设我们可以根据数据计算该零假设为真的概率吗?

我在这里什至不需要完整的答案,只需指向正确的方向即可。肯定有比目测更好的方法来决定这些事情。

2个回答

时间序列中的异常值检测包含大量文献。首先,您需要一个时间序列模型,在没有可疑观察的情况下能够很好地拟合数据。例如,如果 ARMA 模型有效,您可能会假设噪声分布是高斯分布。至少有两种异常值。Fox 在 1972 年的一篇论文中对它们进行了定义。关于这个主题的最佳来源是 Wiley 出版的最新版 Barnett 和 Lewis 的“统计数据中的异常值”。他们有一章是关于时间序列的。我在 1982 年与唐宁合作的论文采用了研究自相关的影响函数的方法。我们的想法是,如果观察对一个或多个滞后相关性产生重大影响,它也会对模型参数产生不利影响。马丁,Yohai 和其他人以不同的方式定义了时间序列的影响泛函,这似乎具有更好的理论依据,但解决了相同的问题。Ruel Tsay、George Tiao 等人也发表了关于时间序列异常值的工作。我对此不太熟悉。但我们的同事 IrishStat 可能会对此发表评论,甚至更多。多年来,在改进他的 autobox 软件的过程中,IrishStat 和他的儿子 Tom 投入了时间来跟上关于异常值和水平变化(有时称为干预)的文献,以使他们的产品成为最先进的产品。就像与时间无关的数据中的异常值一样,应该研究使用时间序列方法检测到的任何异常值,以了解它们发生的原因。他们是测量错误吗?也许改变了过程的行为?也许是临时干预(例如美联储改变利率)?如果可以找到它的原因将决定应如何处理异常值。

我要说一些在更简单的结尾有点低调的东西,以防你最终淹没在 ARMA 模型中(尽管这当然是正确的方法)。

带有拟合线和某种可变性度量的图表可以改善您的观察力。我昨天画了这张图:

在此处输入图像描述

在 R 中将此代码与 ggplot2 一起使用:

ggplot(mydata, aes(x=Time2, y=Reception, group=1)) + geom_smooth() +
facet_wrap(~Prison) + opts(axis.text.x=theme_text(angle=90, hjust=1)) + geom_point()

平滑等有很多默认选项,所以你不必像我一样开箱即用,你可以比这更好地设置它。但是您可以立即在 B 监狱中看到几个“异常值”(我松散地使用这个词)。

或者 R 中的预测包也非常有用。

正如我所说,这更像是一种快速而肮脏的方法,所以买者自负等等。