计算具有不同时间delta的对象的平均值

时间:2014-03-14 14:19:57

标签: javascript algorithm math backbone.js statistics

我有一个很大的对象列表(更具体地说是Backbone Models),它有一个值和一个时间。简化我的对象如下所示:

{
    "time": {moment.js object},
    "value": {float value}
}

不同对象之间的时间并不总是相同的,所以我不能只是遍历所有对象,将它们加在一起并将其除以对象的数量。

如何计算此数据的正确平均值?

1 个答案:

答案 0 :(得分:2)

问题是你如何解释观察之间的“漏洞”。如果你同意点之间的温度等于这两个观测值的平均值(变化是线性的),这可能是解决方案:

tempObservation o0 { t = 0, v = 100}  // time, value
tempObservation o1 { t = 1, v = 120}
tempObservation o2 { t = 2, v = 125}
...
tempObservation on { t = n, v = 145}

temp = 
[ 0.5 * ( o0.v + o1.v)] * ( o1.t - o0.t) +
[ 0.5 * ( o1.v + o2.v)] * ( o1.t - o0.t) +
...
[ 0.5 * ( on-1.v + on.v)] * ( on.t - on-1.t)

average_temp = temp /( on.t - o0.t)