键值描述性统计

时间:2017-07-29 11:51:17

标签: java apache statistics apache-commons-math

我使用Apache DescriptiveStatistics来计算统计数据,但是存在问题。我有一堆实体生成值,每次迭代我想更新与实体相关的值。

例如,我可以跟踪整个城市1000个不同位置的当前温度,我希望能够计算该城市的一些平均温度:

for (Location location: locations) {
    double temperature = location.getCurrentTemperature();

    stats.update(location, temperature);
}

// Average: stats.getMean();

有办法吗?

1 个答案:

答案 0 :(得分:0)

Apache Commons Math不提供您要求的基于密钥的确切更新。

但是,如果对于每次迭代,您使用来自所有位置的观察,并且如果从迭代到迭代维护位置的数量和顺序,则DescriptiveStatistics可能有效。

初始化DescriptiveStatistics实例,窗口大小等于位置数。然后,在每次迭代之后,DescriptiveStatistics的均值应该是所有位置的平均值。

// initialize stats with fixed window size
DescriptiveStatistics stats = new DescriptiveStatistics(locations.size());

// add current value from each location
for (Location location : locations) {
    stats.addValue(location.getCurrentTemperature());
}

// after each loop the stats will be computed across all the locations
double average = stats.getMean();