方差算法

类别:    标签: 数理   阅读次数:   版权: (CC) BY-NC-SA

2013-08-04 15:20:43

计算方差时需要对平方进行累加, 因此, 有时会出现数值不稳定和溢出的问题. 好的算法在于能尽量避免这些问题.

简单算法

利用定义

方差

无偏方差 $s^2 = {N \over N-1}\sigma^2$

两步法

先计算出平均值, 再计算方差

$\bar x = { 1\over N }\sum\limits_{i=1}^N x_i$

$\sigma^2={ 1\over N }\sum\limits_{i=1}^N(x_i-\bar x)^2$

上两种算法都存在舍入误差累积问题

校正两步算法(Corrected Two-pass Algorithm)或补偿算法(Compensated Algorithm)

若 $\bar x$ 为精确值时, 第二项为零, 否则, 能修正第一项的舍入误差.

实时/在线算法(Online Algorithm)

当采集数据不能全部保存, 只能读取一次时, 可以使用这种递推方法. 计算时保存平均值与方差

下面是几种常用软件的方差计算方法

测试数据 1 2 3 4

对比可知, 这三种软件给出的都是样本方差的无偏估计 $s^2$ 及其相应的标准差.

参考

  1. Algorithms for calculating variance
  2. Java 实现样本方差的计算
随意赞赏

微信

支付宝
◆本文地址: , 转载请注明◆
◆评论问题: https://jerkwin.herokuapp.com/category/3/博客, 欢迎留言◆


前一篇: 坐标轴刻度范围及刻度值的设定
后一篇: 球谐函数及Legendre多项式

访问人次(2015年7月 9日起): | 最后更新: 2017-08-15 19:57:07 UTC | 版权所有 © 2008 - 2017 Jerkwin