我有一个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”也是一个“亮点”,因为这是
所以作为人类,我会选择两个日期。
我的问题是:算法怎么样?
你会如何解决这个问题?
谢谢。
答案 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