1

我有一个非常大的网络跟踪文件,每个数据包上有两个时间戳。我计算每对连续数据包的时间戳之间的差异。

delta_ts1 = ts1(packet N) - ts1(packet N-1)
delta_ts2 = ts2(packet N) - ts2(packet N-1)

假设 ts_2 是参考值,我想针对 ts_2 测试 ts_1。

而方差 ts_variance = (delta_ts2 - mean_ts)^2/packet_count

现在上述方法的问题是,直到我到达文件末尾我才得到平均值。我想在一个解析中实现这一点。我正在考虑使用如下方法

running_mean_till_now += ts2/packet_count_till_now

ts_variance = (delta_ts2 - running_mean_till_now)^2/packet_count_till_now

这种方法可以接受吗?使用这种方法,估计的方差和标准偏差有多准确?

4

2 回答 2

2

公式不太对。在这里,您可以使用在线算法的描述。

于 2013-09-09T00:10:59.843 回答
0

首先,不用做任何研究,我就可以知道计算一系列数字的运行平均值是可能的。无需每次都扫描系列。

基本思想是让你有四个数字的平均值(2,3,4,1 平均值 = 10/4)。现在,您的代码读取第五个数字(比如 5)。现在,将新平均值计算为 (10/4 * 4 + 5) / 5 = 3。

现在,当您读取第六个数字时,下一个新平均值是 (15 + 9) / 6 = 4。

Mihai Maruseac 给出的链接显示了此示例背后的符号计算,并显示了如何计算“运行”(在线)标准开发。

于 2013-09-09T04:58:37.137 回答