如何在时间序列中找到有趣的点

时间:2011-08-08 13:29:55

标签: algorithm statistics time-series

我有一个date =>值的数组,比如这个

"2010-10-12 14:58:36" =>13.4
"2010-10-17 14:58:36" =>12
"2010-10-22 14:58:36" =>17.6
"2010-10-27 14:58:36" =>22
"2010-11-01 14:58:36" =>10
[...]

我使用这个日期 - 值组合在javascript中绘制图形。 现在我想标记那些“非常特别”的日期。

我的问题(和问题)是,哪个方面应该考虑找到那些特定的日期?

作为一个人,我更喜欢日期“2010-10-17 14:58:36”,因为“东西”应该在这个日期发生,因为下一个日期的值会上升5.6点,这是最大的进步,然后是一个大的进步。另一方面,日期“2010-10-27 14:58:36”也是一个“亮点”,因为这是

  1. 所有值的顶部和
  2. 在此日期之后,出现了最大的一步。
  3. 所以作为人类,我会选择两个日期。

    我的问题是:算法怎么样?

    1. 我尝试了当前值之前和之后的n个日期的平均值,这导致在图表的开头和结尾累积这些特定日期
    2. 所以我试图找到最大的百分比(取决于之前的日期),但我不确定,如果我真的找到具体日期,我正在寻找?!
    3. 你会如何解决这个问题?

      谢谢。

4 个答案:

答案 0 :(得分:2)

看起来像财务库存问题:-)您正在寻找Time series analysis - 这是一个统计问题。我建议使用R编程语言来玩它(你可以非常快速地完成复杂的统计事务)。有几十个特殊的套餐,肯定也是金融套餐。一旦你知道你想要什么,你就可以用任何其他语言实现解决方案。

尝试google time series analysis r

编辑:请注意R非常强大 - 我敢打赌有一个工具如何使用其他语言的R包。

答案 1 :(得分:1)

如果您有时间轴信息,可以使用 Inerpolation

Polynomial interpolation 会为您提供一个通过这些点的近似多项式。
这有什么好处,你可以使用 Mathematical analysis ,这在多项式上很容易找到有趣的点(大的渐变,最小 - 最大点等......)

此外,您还可以获得函数行为的近似值,这样您就可以“获得未来”点,并了解在不久的将来会发生什么。

当然,展望未来并不是那么准确,但是在分析中使用插值形式来看待趋势和行为。

当然,绘制多项式很容易,这总是很好。

答案 2 :(得分:0)

这实际上是统计http://en.wikipedia.org/wiki/Statistics的问题以及您的数据背景以及您希望突出显示的内容,例如,12月10日至17月10日期间数据移动为负1.4个单位在某些情况下可能比更大的积极步骤更有用。

答案 3 :(得分:0)

您需要样本数据,在该数据上构建可以为任何给定日期计算expected值的函数;例如,平均前一天的前一天,前一周的同一周的值,前一个月的值,依此类推。在此之后,确定threshold:有趣的日期是实际值超出expected value +- threshold

的日期