Statistics 统计删除错误值

Statistics 统计删除错误值,statistics,Statistics,我们有一个应用程序,用户可以全天输入价格。这些价格记录在带有时间戳的表格中,然后用于制作价格变动的图表。。。用户不时错误地输入价格(例如,输入零到多或到少),这在一定程度上破坏了图表(你会得到大的峰值)。如果价格变动超过20%,我们甚至会加入额外的确认对话,但这并不能阻止他们输入错误的值 在绘制图表之前,我可以使用什么统计方法来分析这些值,以排除任何与其他值不同的值 编辑:在骨骼中添加一些肉。假设价格是股票价格(它们不是,但它们的行为方式相同)。你可以看到价格在一天中显著上升或下降。我们平均每天

我们有一个应用程序,用户可以全天输入价格。这些价格记录在带有时间戳的表格中,然后用于制作价格变动的图表。。。用户不时错误地输入价格(例如,输入零到多或到少),这在一定程度上破坏了图表(你会得到大的峰值)。如果价格变动超过20%,我们甚至会加入额外的确认对话,但这并不能阻止他们输入错误的值

在绘制图表之前,我可以使用什么统计方法来分析这些值,以排除任何与其他值不同的值


编辑:在骨骼中添加一些肉。假设价格是股票价格(它们不是,但它们的行为方式相同)。你可以看到价格在一天中显著上升或下降。我们平均每天记录大约150个价格,有时一两个价格是错误的。其他时候它们都很好…

计算并跟踪一段时间。在您有了一个合理的积压工作之后,您可以通过查看偏离平均值的标准偏差来忽略异常值。更好的是,如果你有时间,你可以利用这些信息来做一些事情。

你可以测量现有人群的标准偏差,并排除那些平均值大于1或2个标准偏差的人群


这将取决于您的数据如何给出更精确的答案…

或用价格移动平均值而不是实际价格绘制图表。

引用:

统计学家设计了几种检测异常值的方法。所有方法首先量化异常值与其他值的距离。这可以是离群值与所有点的平均值之间的差值、离群值与剩余值的平均值之间的差值或离群值与下一个最近值之间的差值。接下来,将该值标准化,方法是除以一些分散度量,例如所有值的SD、剩余值的SD或数据范围。最后,计算一个P值来回答这个问题:如果所有的值都是从一个高斯总体中抽样的,那么从其他值中随机获得离群值的几率有多大?如果P值很小,则得出结论,异常值与其他值的偏差在统计上是显著的


你知道,谷歌是你的朋友

这是一个很好的问题,但可能会引起相当多的讨论,因为答案可能会千差万别。这取决于

  • 你愿意为此付出多少努力

  • 有些答案真的会相差+/-20%吗?或者你发明的任何测试?那么,是否总是需要一些人为干预

  • 为了发明一个相关的测试,我需要对主题有更多的了解

尽管如此,以下是可能的替代方案

  • 根据之前的值(或之前10或20个值的平均值/模式)进行简单测试可以直接实现

  • 下一个复杂程度将涉及对所有值(或之前的x值,或过去3个月的值)的一些统计测量,正态分布或高斯分布将使您能够确定每个值是错误还是准确。这种确定程度通常以百分比表示

请参阅,这些页面中有足够的链接来帮助编程,也取决于您使用的语言,可能有函数和/或插件可用于帮助编程

  • 一种更高级的方法是使用某种学习算法,该算法可以考虑其他参数(在最后的x值之上),例如,学习算法可以考虑产品类型或制造商。或者甚至监控一天中的时间或输入图形的用户。此选项似乎超出了您所需的范围。但是,编写代码和训练学习算法需要大量工作

我认为第二种选择对你来说是正确的。使用标准偏差(许多语言都包含一个函数)可能是一个更简单的选择,这只是一个测量值偏离x先前值平均值的程度的方法,我将标准偏差选项放在选项1和选项2之间的某个位置,以解决绘图的具体问题,在你的特定场景中,平均每天150个错误中有1-2个错误,最简单的方法可能是绘制修剪后的平均值,或者中间95%的值的范围,或者类似的东西。这实际上取决于您希望从绘图中获得的值

如果您真的关心一天价格的真最大值和真最大值,那么您必须将异常值作为异常值处理,并适当排除它们,可能使用之前提出的异常值测试之一(数据点比下一个点多x%,或最后n个点,或离日平均值超过5个标准差)。另一种方法是查看异常值之后发生的情况。如果它是一个异常值,那么它将有一个急剧上升,然后是急剧下降

然而,如果你关心整体趋势,绘制每日平均值、中位数、5%和95%的百分位数将很好地描绘历史

根据分析问题选择您的显示方法以及需要进行多少异常检测。如果你关心中位数或百分位数,它们可能是不相关的