【发布时间】:2011-01-03 04:09:06
【问题描述】:
我有一组流式值,我想分析这些值的突然变化,并可能忽略数据中的尖峰/噪声。我查看了移动平均线、winsorised 均值和其他几种可能的解决方案,包括控制系统中的 PID 控制器、colt 库和 numpy,以获取有关如何解决此问题的线索。
下面是一个示例数据集。
22.0, 22.0, 22.0, 22.0, 20.8806130178211, 20.8806130178211, 20.8806130178211, 20.8806130178211, 20.8806130178211, 20.8806130178211, 21.840329667841555, 21.840329667841555, 20.8806130178211, 20.8806130178211, 20.8806130178211,20.8806130178211, 20.8806130178211, 20.8806130178211, 21.840329667841555, 21.840329667841555, 21.840329667841555,21.840329667841555, 22.80350850198276
理想情况下,我想检测到第 1、第 3 和第 4 部分中的值是否以粗体显示。第二部分可以视为尖峰。
寻找一种优雅的数学/算法解决方案,其工作方式类似于移动平均线,因为如果数据长时间没有变化(动态窗口),它将忽略旧数据。对于上述数据,在考虑下一个数据窗口 20.8806130178211 时,会忽略 22 的初始值。
解决方案(程序/类)应该能够接受一个新的数据输入值 (22.0232),如果它计算出该值在可接受的范围内,即它没有发生很大变化,则返回 true 或 false 值。
谢谢
sfk
【问题讨论】:
标签: java statistics