方差的迭代计算公式 - 指南

news/2025/12/6 22:10:12/文章来源:https://www.cnblogs.com/yangykaifa/p/19316703

1️、方差基础公式

给定一组数据 x1,x2,…,xnx_1, x_2, \dots, x_nx1,x2,,xn,其 均值方差 定义如下:

均值:

xˉn=1n∑i=1nxi \bar{x}_n = \frac{1}{n} \sum_{i=1}^{n} x_i xˉn=n1i=1nxi

方差:

无偏样本方差
sn2=1n−1∑i=1n(xi−xˉn)2 s_n^2 = \frac{1}{n-1} \sum_{i=1}^{n} (x_i - \bar{x}_n)^2 sn2=n11i=1n(xixˉn)2

总体方差
σn2=1n∑i=1n(xi−xˉn)2 \sigma_n^2 = \frac{1}{n} \sum_{i=1}^{n} (x_i - \bar{x}_n)^2 σn2=n1i=1n(xixˉn)2

注意:样本方差比总体方差除以 n−1n-1n1,以消除偏差。


2️、为什么需要迭代公式?

直接计算方差需要存储所有数据,尤其对于大规模数据或流式数据(streaming data),这是不现实的。
迭代公式允许 每来一个新数据 xn+1x_{n+1}xn+1 时更新均值和方差,无需重新扫描整个数据集。


3️、均值迭代公式

已有 nnn 个样本均值 xˉ∗n\bar{x}*nxˉn,加入新样本 x∗n+1x*{n+1}xn+1 后,新的均值 xˉn+1\bar{x}_{n+1}xˉn+1

xˉn+1=xˉn+xn+1−xˉnn+1 \bar{x}_{n+1} = \bar{x}_n + \frac{x_{n+1} - \bar{x}_n}{n+1} xˉn+1=xˉn+n+1xn+1xˉn

简单理解:新均值是旧均值加上新数据偏差的 1/(n+1)1/(n+1)1/(n+1)


4️、方差迭代公式推导(Welford 算法)

  1. 定义当前样本数量 nnn累计平方差
    M2,n=∑i=1n(xi−xˉn)2 M_{2,n} = \sum_{i=1}^{n} (x_i - \bar{x}_n)^2 M2,n=i=1n(xixˉn)2

  2. 当加入新样本 xn+1x_{n+1}xn+1

    • 更新均值:
      xˉn+1=xˉn+xn+1−xˉnn+1 \bar{x}_{n+1} = \bar{x}_n + \frac{x_{n+1} - \bar{x}_n}{n+1} xˉn+1=xˉn+n+1xn+1xˉn
    • 差值:
      δ=xn+1−xˉn \delta = x_{n+1} - \bar{x}_n δ=xn+1xˉn
      δ2=xn+1−xˉn+1 \delta_2 = x_{n+1} - \bar{x}_{n+1} δ2=xn+1xˉn+1
  3. 更新累计平方差:
    M2,n+1=M2,n+δ⋅δ2 M_{2,n+1} = M_{2,n} + \delta \cdot \delta_2 M2,n+1=M2,n+δδ2

  4. 迭代计算方差:

  • 样本方差:
    sn+12=M2,n+1n s_{n+1}^2 = \frac{M_{2,n+1}}{n} sn+12=nM2,n+1
    或无偏样本方差:
    sn+12=M2,n+1n s_{n+1}^2 = \frac{M_{2,n+1}}{n} sn+12=nM2,n+1

核心思想:每次只用上一轮累计平方差 + 新样本与均值的偏差,保证数值稳定,不容易溢出。


5️、数值稳定性说明

Welford 方法相比直接公式:
sn2=1n∑xi2−xˉn2 s_n^2 = \frac{1}{n} \sum x_i^2 - \bar{x}_n^2 sn2=n1xi2xˉn2
优势:

  • 不需要存储所有 xix_ixi
  • 避免 平方和减去平方均值 导致的数值精度丢失;
  • 可以实时处理大规模或流式数据。

6️、C++ 实战示例

#include <vector>#include <iostream>class OnlineVariance {private:int n = 0;double mean = 0.0;double M2 = 0.0;  // 累计平方差public:void addSample(double x) {n++;double delta = x - mean;mean += delta / n;double delta2 = x - mean;M2 += delta * delta2;}double getMean() const { return mean; }double getVariance() const { return n > 1 ? M2 / (n-1) : 0.0; } // 样本方差double getPopulationVariance() const { return n > 0 ? M2 / n : 0.0; } // 总体方差};int main() {std::vector<double> data = {2.0, 4.0, 4.0, 4.0, 5.0, 5.0, 7.0, 9.0};OnlineVariance ov;for (auto x : data) {ov.addSample(x);std::cout << "n=" << ov.n << ", mean=" << ov.getMean()<< ", variance=" << ov.getVariance() << std::endl;}return 0;}

输出示例(部分):

n=1, mean=2, variance=0
n=2, mean=3, variance=2
n=3, mean=3.33333, variance=2.33333
...

每增加一个数据点,均值和方差都会被实时更新。


7️、总结公式

  • 均值迭代
    xˉn+1=xˉn+xn+1−xˉnn+1 \bar{x}_{n+1} = \bar{x}_n + \frac{x_{n+1}-\bar{x}_n}{n+1} xˉn+1=xˉn+n+1xn+1xˉn
  • 累计平方差迭代
    M2,n+1=M2,n+(xn+1−xˉn)(xn+1−xˉn+1) M_{2,n+1} = M_{2,n} + (x_{n+1}-\bar{x}_n)(x_{n+1}-\bar{x}_{n+1}) M2,n+1=M2,n+(xn+1xˉn)(xn+1xˉn+1)
  • 方差
    sn+12=M2,n+1n(总体方差) s_{n+1}^2 = \frac{M_{2,n+1}}{n} \quad \text{(总体方差)} sn+12=nM2,n+1(总体方差)
    sn+12=M2,n+1n−1(样本方差) s_{n+1}^2 = \frac{M_{2,n+1}}{n-1} \quad \text{(样本方差)} sn+12=n1M2,n+1(样本方差)

这种迭代方式适合大数据、流式数据和实时计算,数值稳定且无需存储所有历史数据。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/990587.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu下,MySQL密码遗失时修改密码

问题背景 MySQL密码连接不上,需要重置密码 解决方案 由于修改密码本身需要连接到数据库,因此需要另一个系统账号来登录数据库。 下面是相关步骤: 1. 首先执行以下命令 sudo cat /etc/mysql/debian.cnf 获取到系统账…

支离破碎发言(七)

退役了,曾经的目标变为幻想,当然我其实也知道大概率最后就是幻想。 回想过来这一年多的 OI 生涯,也没什么可埋怨的,毕竟自己实力确实没到省队水准。 不过一年多 OI 生涯给我的最大感触就是,贵圈真乱。 因为竞赛本…

MD-FPN

MD-FPN 是一种优化的特征金字塔网络结构,旨在提高多尺度目标检测的性能。它通过引入多尺度预测融合和注意力机制,增强了特征提取能力 MD-FPN(Multi-Dilation Feature Pyramid Network)可以与 Faster R-CNN 结合使用…

2025最新贵州特产/伴手礼供应商TOP5推荐!贵州/贵阳/遵义/毕节/黔东南特产选购平台/渠道/供应商/采购渠道榜单发布,甄选贵州地道风物好礼

随着消费者对地域特色产品和健康生活方式的追求日益提升,贵州特产凭借独特的自然禀赋与文化底蕴备受青睐。本榜单基于品牌实力、产品特色、服务体系、文化传承四大维度,结合市场口碑与消费者反馈,权威解析2025年五大…

进程监控:通过 SSH 远程监测嵌入式设备进程重启

背景 dhcp频繁请求ip导致cpr反复重启。 为了量化这一问题,并精准捕捉重启发生的时间点(以便与网络日志对齐),我们需要一个外部监控工具。该工具需要满足以下需求:非侵入式:无需修改设备固件,通过 SSH 远程监控。…

街头徒手健身3硬核核心训练

3 硬核核心训练 “我们并非只是这副躯壳,别过分执着于皮囊表象。”—— 乔治・哈里森 作为一名痴迷功能性健身的爱好者,我一直渴望近距离观察人体内部的运转机制。所以几年前,当我的一位客户送给我《人体世界》展览…

我们的休闲娱乐区,会变成什么样子(哽咽)

本文同步发布于洛谷休闲娱乐区 我们的休闲娱乐区,会变成什么样子(哽咽) 或许我们要先追问,最初的休闲娱乐区,是什么样子的呢? 灌水区倒闭之后,审查力度加大,休闲娱乐区最初只是一片净土。 然而,很快,伴随着小…

【ZeroRange WebRTC】对称加密 vs 非对称加密(从原理到实践) - 详解

【ZeroRange WebRTC】对称加密 vs 非对称加密(从原理到实践) - 详解2025-12-06 21:43 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto…

Cloudflare成功抵御AISURU僵尸网络发起的破纪录29.7 Tbps DDoS攻击

Cloudflare在2025年第三季度成功抵御了AISURU僵尸网络发起的一场峰值达29.7 Tbps的破纪录DDoS攻击。报告揭示了DDoS攻击在规模、复杂性和目标行业上的显著演变,并对当前威胁态势下的防御策略提出建议。Cloudflare成功…

2025最新贵州伴手礼厂家/采购渠道/供应商/平台/卖场/超市TOP5推荐!地道风物+文化赋能权威榜单发布,甄选贵礼传递黔地心意

随着文旅消费升级和健康生活理念深入人心,兼具地域特色与文化内涵的伴手礼成为连接游客与目的地的重要纽带。本榜单基于产品地道性、健康属性、文化融合度、服务覆盖力四大核心维度,结合行业协会数据与消费者口碑调研…

从 Spring Boot 2.x 到 3.5.x + JDK21:一次完整的生产环境迁移实战 - Rainbow

从 Spring Boot 2.x 到 3.5.x + JDK21:一次完整的生产环境迁移实战 @目录从 Spring Boot 2.x 到 3.5.x + JDK21:一次完整的生产环境迁移实战升级背景升级目标与核心变化完整升级步骤第一阶段:准备工作(JDK 8 环境)…

2025.12.6日21:24-incapacity无能力

ai智能发布助手当前Windows 11已使用内存:MB是460 南京4℃ 霾Enjoy the beauty and joy of the moment; dont worry too much about the future. 享受当下的美好和快乐,不要过于担忧未来。今日热点如下挑战者杯,我的…

001.makdown快速入门

基础语法 1.标题:# 一级标题## 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题// # 与 标题名 之间要加空格2.代码块://```cpp// ```//在两行```之间添加代码 //第一行```后的cpp表示代码使用的语…

Focal Loss

Focal Loss 是一种用于解决类别不平衡问题的损失函数,特别适用于目标检测任务。在目标检测中,背景类别通常远多于目标类别,这导致模型在训练过程中对背景类别过度拟合,而忽视了目标类别。Focal Loss 通过调整损失函…

2025最新贵州/贵阳手信/伴手礼厂家 TOP5 评测!地道风物+文化赋能权威榜单发布,甄选贵礼传递山水心意

随着文旅消费升级,兼具地域特色与文化内涵的手信成为游客出行必备。本榜单基于产品地道性、文化融合度、全渠道服务、品质保障四大维度,结合百万消费者真实反馈与行业专家评审,权威解析2025年五大贵州手信厂家综合实…

Oracel VirtualBox安装Windows11时无法找到ISO文件或不满足系统要求

如果在启动VirtualBox启动后,出现下面的情况 取消UEFI后,重新启动即可但取消UEFI又会导致下面的问题 这时按Shift+F10,输入 regedit 并按回车键启动注册表编辑器。在注册表编辑器左侧的树状结构中,导航到以下路径:…

百度统计、Google Analytics平替开源网站分析工具:Umami - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

19

19躺了一天。

18

18上了形势与政策。