【发布时间】:2014-04-19 21:33:08
【问题描述】:
我有一个很大的对象列表(更具体地说是主干模型),其中包含一个值和一个时间。简化后我的对象如下所示:
{
"time": {moment.js object},
"value": {float value}
}
不同对象之间的时间并不总是相同的,所以我不能循环遍历所有对象,将它们加在一起,然后除以对象的数量。
如何计算此数据的正确平均值?
【问题讨论】:
-
The time between different objects is not always the same, so I can't just loop through all objects, add them together and divide that by the number of objects.为什么不呢?请解释更多。 -
我正在计算一天的平均温度。可能是我有两个非常接近彼此的非常高的温度(例如,一小时的差异),然后是两个彼此相距很远的“正常”温度(例如,10 小时)。只需将所有值相加并除以 4 就会导致失真,并且最终的平均温度会比实际发生的温度高得多。这是因为这将赋予温度过高的非常短时期与温度正常的非常长时期相同的权重。
-
因此,您并不是在寻找数据的“平均值”,而不是如何定义“average”。那么为什么不先把数据过一遍,去掉这些点(
reduce按时差计算)再计算平均值呢? -
如果这对您的数据来说太简单了(未知),那么不妨看看如何分析
Unevenly spaced time series
标签: javascript algorithm math backbone.js statistics