如何快速遍历一次就期望和方差

本文探讨了在大数据背景下,如何通过增量计算法改进传统方差计算效率,特别是在样本量巨大且持续增加时。通过介绍均值和方差的增量计算技巧,对比了常规的两遍计算方式,并提供了一段Matlab代码示例。方法适用于实时处理大量数据,显著提升计算性能。
摘要由CSDN通过智能技术生成

在统计学中,经常需要样本的方差计算,比较麻烦的方式是
(1)第一次遍历计算出样本的平均值
(2)第二次遍历才能计算出样本的方差
上述方法在样本较少的情况下,非常合适,但如果样本非常大,这种方式就不可取了,而且如果样本是持续增长的,就都不适用了。

先上代码

#第一步:遍历一遍样本
样本e in 样本集:
    self.n += 1
    self.sum += e.val
    self.sum_sq += e.val * eval

#第二步:计算样本的均值、均差和方差,
self.mean = self.sum / self.n
tmp = (self.sum_sq - (self.sum * self.sum) / self.n)
self.var = tmp / (self.n - 1)
self.var = math.sqrt(self.var)

test_matlab

x = rand(1,100);
mean_x=mean(x);
std_x=std(x);
sum_x=0;
sum_sq=0;
for i=1:100
    sum_x=sum_x+x(i);
    sum_sq=sum_sq+x(i)*x(i);
end
sum_mean =sum_x/100;
tmp=sum_sq-sum_x*sum_x/100;
sum_var=tmp/(100-1);
sum_std=sqrt(sum_var);

一次遍历,即可求出样本的方差。

更快捷的方差计算:

参考:均值、方差、协方差的增量计算_增量计算均值方差_stiga-huang的博客-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值