样本方差与总体方差

article/2025/9/20 19:42:37

样本方差与总体方差

一、方差(variance):衡量随机变量或一组数据时离散程度的度量。                                

概率论中方差用来度量随机变量和其数学期望(即均值)之间的偏离程度。

 统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数。                                        

概率论中的方差表示方法 :                        

样本方差,无偏估计、无偏方差(unbiased variance)。对于一组随机变量,从中随机抽取N个 样本,这组样本的方差就 是Xi^2平方和除以N-1。

总体方差,也叫做有偏估计,其实就是我们从初高中就学到的那个标准定义的方差,除数是N。

统计中的方差表示方法 :  
         

二、为什么样本方差的分母是n-1?为什么它又叫做无偏估计?

简单的回答,是因为因为均值你已经用了n个数的平均来做估计在求方差时,只有(n-1)个数和均值信息是不相关的。

而你的第n个数已经可以由前(n-1)个数和均值来唯一确定,实际上没有信息量。所以在计算方差时,只除以(n-1)。

那么更严格的证明呢?

样本方差计算公式里分母为n-1的目的是为了让方差的估计是无偏的。

无偏的估计(unbiased estimator)比有偏估计(biased estimator)更好是符合直觉的,尽管有的统计学家认为让mean square error即MSE最小才更有意义,这个问题我们不在这里探讨;

不符合直觉的是,为什么分母必须得是n-1而不是n才能使得该估计无偏。

首先,我们假定随机变量的数学期望是已知的,然而方差未知。在这个条件下,根据方差的定义我们有

\mathbb{E}\Big[\big(X_i -\mu\big)^2 \Big]=\sigma^2, \quad\forall i=1,\ldots,n,

由此可得

\mathbb{E}\Big[\frac{1}{n} \sum_{i=1}^n\Big(X_i -\mu\Big)^2 \Big]=\sigma^2

\frac{1}{n} \sum_{i=1}^n\Big(X_i -\mu\Big)^2是方差\sigma^2的一个无偏估计,注意式中的分母不偏不倚正好是n

这个结果符合直觉,并且在数学上也是显而易见的。

现在,我们考虑随机变量X的数学期望\mu是未知的情形。这时,我们会倾向于无脑直接用样本均值\bar{X}替换掉上面式子中的\mu。这样做有什么后果呢?后果就是,

如果直接使用\frac{1}{n} \sum_{i=1}^n\Big(X_i -\bar{X}\Big)^2作为估计,那么你会倾向于低估方差!

这是因为:
\begin{eqnarray}\frac{1}{n}\sum_{i=1}^n(X_i-\bar{X})^2 &=&\frac{1}{n}\sum_{i=1}^n\Big[(X_i-\mu) + (\mu -\bar{X}) \Big]^2\\&=&\frac{1}{n}\sum_{i=1}^n(X_i-\mu)^2 +\frac{2}{n}\sum_{i=1}^n(X_i-\mu)(\mu -\bar{X})+\frac{1}{n}\sum_{i=1}^n(\mu -\bar{X})^2 \\&=&\frac{1}{n}\sum_{i=1}^n(X_i-\mu)^2 +2(\bar{X}-\mu)(\mu -\bar{X})+(\mu -\bar{X})^2 \\&=&\frac{1}{n}\sum_{i=1}^n(X_i-\mu)^2 -(\mu -\bar{X})^2 \end{eqnarray}
换言之,除非正好\bar{X}=\mu,否则我们一定有
\frac{1}{n}\sum_{i=1}^n(X_i-\bar{X})^2 <\frac{1}{n}\sum_{i=1}^n(X_i-\mu)^2,
而不等式右边的那位才是的对方差的“正确”估计!
这个不等式说明了,为什么直接使用\frac{1}{n} \sum_{i=1}^n\Big(X_i -\bar{X}\Big)^2会导致对方差的低估。

那么,在不知道随机变量真实数学期望的前提下,如何“正确”的估计方差呢?答案是把上式中的分母n换成n-1,通过这种方法把原来的偏小的估计“放大”一点点,我们就能获得对方差的正确估计了:
\mathbb{E}\Big[\frac{1}{n-1} \sum_{i=1}^n\Big(X_i -\bar{X}\Big)^2\Big]=\mathbb{E}\Big[\frac{1}{n} \sum_{i=1}^n\Big(X_i -\mu\Big)^2 \Big]=\sigma^2.

三、理论推导

 

为了方便叙述,在这里说明好数学符号:

前面说过样本方差之所以要除以(n-1)是因为这样的方差估计量才是关于总体方差的无偏估计量。在公式上来讲的话就是样本方差的估计量的期望要等于总体方差。如下:

但是没有修正的方差公式,它的期望是不等于总体方差的

                            

也就是说,样本方差估计量如果是用没有修正的方差公式来估计总计方差的话是有偏差的

下面给出比较好理解的公式推导过程:

也就是说,除非否则一定会有

需要注意的是不等式右边的才是的对方差的“正确”估计,但是我们是不知道真正的总体均值是多少的,只能通过样本的均值来代替总体的均值。

所以样本方差估计量如果是用没有修正的方差公式来估计总计方差的话是会有偏差,是会低估了总体的样本方差的。为了能无偏差的估计总体方差,所以要对方差计算公式进行修正,修正公式如下:

这种修正后的估计量将是总体方差的无偏估计量,下面将会给出这种修正的一个来源;

为了能搞懂这种修正是怎么来的,首先我们得有下面几个等式:

1.方差计算公式:  

             

2. 均值的均值、方差计算公式:

             

对于没有修正的方差计算公式我们有: 

因为:

                  

所以有:

                  

在这里如果想修正的方差公式,让修正后的方差公式求出的方差的期望为总体方差的话就需要在没有修正的方差公式前面加上来进行修正,即:

                  
所以就会有这样的修正公式:

    

而我们看到的都是修正后的最终结果:

                       

这就解释了为什么要对方差计算公式进行修正,且为什么要这样修正。

上面的解释如果有什么错误,或者有哪些解释不正确的地方欢迎大家指正。谢谢大家。希望能对大家有点帮助。

 

参考:

https://blog.csdn.net/zxyhhjs2017/article/details/79149111

https://blog.csdn.net/qq_39521554/article/details/79633207

https://blog.csdn.net/cqfdcw/article/details/78173839

https://www.matongxue.com/madocs/607.html

https://www.matongxue.com/madocs/808.html

posted @ 2018-12-08 11:59 小时候挺菜 阅读( ...) 评论( ...) 编辑 收藏

http://chatgpt.dhexx.cn/article/rPdVuGsj.shtml

相关文章

完整的Axios封装-单独API管理层、参数序列化、取消重复请求、Loading、状态码...

前言 Axios 相信对Vue熟悉的铁汁对它不会感到陌生了&#xff08;当然不熟悉Vue你也可以认识它&#xff09;&#xff0c;这简直就是前端近年来的一大杀器&#xff0c;自从Vue2开始之后&#xff0c;官方推荐使用axios来进行网络请求&#xff0c;后面基本大部分Vue项目都能瞧见它…

Ajax介绍和Axios基本使用

Ajax介绍 Ajax本身就是Asynchronous JavaScript And XML的缩写&#xff0c;直译为&#xff1a;异步的JavaScript和XML。 在实际应用中Ajax指的是&#xff1a;不刷新浏览器窗口&#xff0c;不做页面跳转&#xff0c;局部更新页面内容的技术。 『同步』和『异步』是一对相对的…

Axios使用详解

文章目录 一、Promise的使用1. 基本语法2. Promise三种状态3. Promise链式调用1. 基本写法2. 使用静态方法3. 直接返回 4. Promise.all5. Promise.race 二、Axios使用1. 安装并引入2. 发送请求3. config配置4. 响应结构5. 并发请求6. 全局配置6. 创建实例7. 实例方法8. 拦截器请…

Uncaught (in promise) Error: Network Error at e.exports (axios.js:8:6410) at d.onerror (axio

axios报错&#xff1a; 原因&#xff1a; 后端没有给跨域权限&#xff0c;后端需要设置允许跨域的响应头&#xff0c;即可解决。 解决&#xff1a; node端设置响应头&#xff0c;解决跨域问题 。

axios封装

不要过度封装&#xff01;封装一个最简单的Axios&#xff01; - 掘金 (juejin.cn) 1 初始化 axios 实例 通过 create 方法我们得到了一个 axios 的实例&#xff0c;该实例上有很多方法&#xff0c;比如拦截器等等。我们创建实例的时候可以配置一些基础设置&#xff0c;比如基础…

axios学习

文章目录 前言一、axios的理解和使用axios的特点axios的安装方式axios的基本配置 二、axios的基本使用1.axios四种常用请求方式2.四种方式的基本使用基本架构代码示例&#xff1a;1. GET请求2. POST请求3. PUT请求4. DELETE请求 3.axios的别名方式请求使用 前言 axios是一个基…

vue封装axios

(4条消息) Vue——axios的二次封装_前端杂货铺的博客-CSDN博客 1.下载axios依赖包 npm install axios2.在src目录下新建utils文件夹&#xff0c;在utils文件夹下新建request.js文件 3.request.js import axios from axios import { Message, MessageBox } from element-ui …

axios

SegmentFault 头条问答专栏讲堂职位活动 消息注册 登录 home javascriptphppythonjavamysqliosandroidnode.jshtml5linuxccss3gitgolangrubyvimdockermongodb 文 axios 中文文档 翻译 axiosjavascript farmerz 2月24日发布 2 推荐 45 收藏&#xff0c;3.2k 浏览 axios 版…

Axios介绍

Axios是专注于网络数据请求的库&#xff0c;相比于XMLHttpRequest对象。axios简单易用&#xff0c;相比于jQuery&#xff0c;axios更加轻量化&#xff0c;只专注于网络数据请求 引入外部js文件 <script src"https://unpkg.com/axios/dist/axios.min.js"><…

VUE的axios的详细介绍和用法

Vue中发送网络请求有非常多的方式, 那么, 在开发中, 我们该如何选择呢? 选择一: 传统的Ajax是基于XMLHttpRequest(XHR) 为什么不用它呢? 非常好解释, 配置和调用方式等非常混乱.编码起来看起来就非常蛋疼. 所以真实开发中很少直接使用, 而是使用jQuery-Ajax 选择二: 在前…

AJAX,Axio异步框架(对原生AJAX封装)。web分区

1.Ajax的理解 以前服务器里的数据&#xff0c;都是存在Servlet域里&#xff0c;然后发给JSP&#xff0c;来进行显示。 有了AJAX&#xff0c;可以和服务器通信。不需要JSP作页面。 可以在Servlet把数据发给浏览器&#xff0c;然后在HTML页面显示。 1.1 以前的方法 1.2 现在的方…

类方法和对象方法的区别

类方法和对象方法 1.类方法属于本类的方法&#xff0c;不会因创建对象的不同而改变&#xff0c;类方法随着类的字节码文件加载而加载&#xff1b; 2.对象方法属于当前类创建的某个对象&#xff0c;会随着创建对象的不同而改变。如下图所示代码&#xff1a;

python中什么叫类、什么叫对象_Python中的类和对象是什么

一、面向过程和面向对象 面向过程:根据业务逻辑从上到下写代码。 面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程。 二、类和对象 1、类的概念 面向对象编程的2个非常重要的概念:类和对象是面向对象编程的核心。 在使用对…

类与对象的区别?

对于初学者来说&#xff0c;类与对象之间的关系的非常模糊不清的&#xff0c;在这里跟大家分享一下&#xff0c;让初学者有所帮助。 一、类的概念&#xff1a; 类是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述&#xff0c;其内部包括属性…

Java类和对象 详解(一)

一、面向对象简述 面向对象是一种现在最为流行的程序设计方法&#xff0c;几乎现在的所有应用都以面向对象为主了&#xff0c;最早的面向对象的概念实际上是由IBM提出的&#xff0c;在70年代的Smaltalk语言之中进行了应用&#xff0c;后来根据面向对象的设计思路&#xff0c;才…

C++类和对象详细总结

目录 目录 类与对象概念 什么是对象 什么是类 什么是方法&#xff1a; 自定义类型&#xff08;类的关键字&#xff1a;class&#xff09; 定义类的格式 封装 类的特性 访问权限以及访问限定符 struct 定义的类和class定义的类的区别&#xff1a; 小结 对象中包含了…

C++类和对象详解

类与对象上篇&#xff1a; 主要内容&#xff1a; 1.类和对象的区别。 2.类的定义。 3.类的访问限定符和封装 4.类的作用域 5.类的实例化&#xff08;用类类型创建对象&#xff09; 6.计算类对象的大小 7.this指针 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析…

面向过程和面向对象区别

&#xff08;1&#xff09;从设计思路来看。 面向过程&#xff1a;程序设计的重点是分析解决问题的步骤&#xff0c;以及完成步骤的流程&#xff0c;是一种结构化自上而下的程序设计方法。面向对象&#xff1a;程序设计的重点是把构成问题的事物分解成对象&#xff0c;从局部着…

Java基础——类和对象

目录 一、类和对象的基本概念 二、类与对象的定义与使用 1.创建类的语法&#xff1a; 2. 创建具体的对象&#xff1a; 3.范例&#xff08;创建一个Person 类的对象&#xff09; 三、static关键字 &#xff08;一&#xff09;static修饰属性&#xff08;类属性、类变量&a…

类,对象,方法与函数的区别

面向对象&#xff08;Object oriented Programming&#xff0c;OOP)编程 的思想主要是针对大型软件设计而来的。面向对象编程将数据和操作数据相关的方法封装到对象中&#xff0c;组织代码和数据的方式更加接近人的思维&#xff0c;使程序的扩展性更强、可读性更好&#xff0c;…