样本方差的分母

随机变量的方差描述的是变量的离散程度,$$\text{Var}(X)=E[(X-\mu)^2]=E[{1\over n}\sum_{i=1}^n (X_i-\mu)2]=\sigma2$$

而样本方差是对整体方差做的无偏估计:\(s^2={\sum_{i=1}^n(X_i-\bar X)^2\over n-1}\).

无偏估计

上中学时第一次学习样本方差时便对分母n-1感到疑惑,为什么不是n呢?当年没有细究.现在消减一些困惑吧_.

为什么分母为n不行?

注意到公式中使用了最大似然法,用\(\bar X\)来估算整体的均值\(\mu\),

设\(\mathbb S^2={1 \over n}\sum_{i=1}^n(X_i-\bar X)^2\),则有

\[\begin{align}

E[\mathbb S^2] &=E[{1\over n}\sum_{i=1}^n(X_i-\bar X)^2] \\

&= E[{1\over n}\sum_{i=1}^n [(X_i-\mu)+(\mu-\bar X)]^2] \\

&= E[[{1\over n}\sum_{i=1}^n (X_i-\mu)^2]-(\bar X-\mu)^2] \\

&=\text{Var}(X)-E[(\bar X-\mu)^2] \\

&= \sigma^2-{1\over n}\sigma^2={n-1\over n}\sigma^2 \tag{*}\\

&\le \sigma^2

\end{align}

\]

其中,$$E[(\bar X-\mu)^2] = \text{Var}(\bar X)=\text{Var}({1\over n}\sum_{i=1}^n X_i)={1\over n2}\sum_{i=1}n \text{Var}(X_i)={\sigma^2\over n}$$

可以看到,分母为n时对整体方差的估计可能会变小,只有当\(\bar X=\mu\)时才是无偏估计,因此我们可以将分母变小来使方差更接近真实值. 那么分母该为多少呢?

为什么分母n-1行?

对上式(*)变形得到\(\text{Var}(X) =\sigma^2= \frac{n}{n-1}\mathbb{E}[\mathbb S^2]=\frac{\sum_{i=1}^n(X_i-\bar X)}{n-1}\), 因此\({\sum_{i=1}^n(X_i-\bar X)^2\over n-1}\)是\(\sigma^2\)的无偏估计.

因此样本方差等于总体方差减样本均值的方差。如果用样本均值去估计总体均值,对总体方差的估计是有偏差的,偏差是样本均值的方差。需要做Bessel's correction去修正偏差,让偏差的期望等于0。

当然了,当n很大的时候,其实除以n和除以n-1的区别并不大。随着样本的增多,两者都会收敛到真实的总体方差。

方差是协方差的特殊情况,就是当两个变量x与y相等时候的情况。既然我们已经知道样本方差为什么是除以n-1。那么样本协方差也是一样的道理。

有偏

分母是m-1的情况下,估计值是总体方差的无偏估计。

分母是m的情况下,值是最大似然估计。

分母是m+1的情况下,值是最小MSE(Mean Squared Error) 的估计。

如果觉得样本够大,那么用m-1是不错的,因为在大样本下,参数的方差就算大一点儿也不会多多少,影响也不会大到哪儿去。

如果要保证信息利用充分,那我肯定选择最大似然估计的方差。

如果样本数量较小,我就选择最小MSE,因为此时无偏性其实不是第一准则,因为无偏导致了大方差是不可取的行为。

统计是一门很灵活的学科,不同的数据,会有不同的方法来处理。

python计算标准差为什么分母要-1_为什么样本方差的分母是除以n-1相关推荐

  1. Python计算标准差和方差

    例题:计算下面数据的标准差和方差 86,87,88,86,87,85,86 import numpy as np a=[86,87,88,86,87,85,86] std=np.std(a)#标准差 ...

  2. python计算标准差函数_Python pandas,pandas常用统计方法,求和sum,均值mean,最大值max,中位数median,标准差std...

    mean()平均值   median()中位数   max()最大值   min()最小值   sum()求和   std()标准差 Series类型独有的方法: argmax()最大值的位置   a ...

  3. python 计算标准差和平均值

    直接上代码,要用就拿去 最近问这种平均值和标准差怎么算的人好多啊,我打算直接把代码放在这里了. 记得改个变量名称,不然被发现就完了. from math import sqrt def getnum( ...

  4. 计算标准差分母是n还是n-1?

    概述 提问:在我们计算某些数据标准差(或者方差)的时候,会发现有些公式分母是n,而有些公式的分母却是(n-1),那么到底哪个公式才是正确的呢? 答案: 如果是算总体的标准偏差,分母就用n,这就是真实的 ...

  5. python计算excel平均值_python计算excel平均值和标准差

    ############################################## ######## python计算excel平均值和标准差 ####### ############### ...

  6. 怎么用python编写程序计算标准差_自学生信Python(第五天)|如何计算标准差?...

    如何计算标准差? 本人是一枚生物学的学生,由于对生物信息学特别感兴趣,于是想自学生物信息学(新手莫怪).了解到生物信息学要有编程基础,尤其是要会一门编程语言,例如:R语言.Python.Perl等,还 ...

  7. python计算excel数据_python计算excel平均值和标准差

    ############################################## ######## python计算excel平均值和标准差 ####### ############### ...

  8. python 计算平均值、中位数、标准差

    python计算平均值.中位数.标准差(通过导入原有txt文件中的数组) 运行截图: 代码: def getdata(filename): #导入原有txt文件中的数组with open(filena ...

  9. python计算平均数、中位数及标准差

    哈喽,大家好呀,下面是我整理的python计算平均数.中位数和标准差的方法,咱们一起学习,共同进步! 1.计算平均数 方法① lst=[1,2,3,4,5]                 #首先定义 ...

最新文章

  1. 传美的投40亿进军卫浴行业
  2. 阿里云配置负载均衡实例
  3. erp系统服务器怎么关机,服务器怎么设置自动关机
  4. 联通g网java业务的是什么_联通发力G网增值业务
  5. visual studio 11开发Win8模板
  6. 如何高效高质进行Android技术开发
  7. VS清理中间文件bat脚本
  8. ASCII码(C语言)
  9. 驱动人生安装驱动计算机无法启动,驱动人生怎么安装驱动程序?驱动人生基本功能...
  10. Swagger注解 详解
  11. maya显示已安装_安装cad2010显示已安装怎么办?峰哥教你怎么解决
  12. 第一次使用拉勾网求职经历
  13. matlab确定分段函数的间断点,分段函数必有间断点( )
  14. IFD-x 微型红外成像仪(模块)与计算机工具软件 IFD_Tool 连接
  15. 【虚幻引擎】实现类LOL缓慢扣血血条
  16. std::accumulate的用法
  17. 数据结构个人笔记 第12课 数组
  18. 从零学Java(19)之 if else分支结构详解,小AD要搞对面心态!
  19. Android 应用icon适配
  20. ubuntu kernel编译

热门文章

  1. 蚂蚁金服分布式链路跟踪组件 SOFATracer 数据上报机制和源码分析 | 剖析
  2. (转)在游戏中使用“CEGUI” — 第一章(底层)
  3. 点到直线的垂直交点坐标(斜率必须存在)
  4. 高视医疗在港交所招股:IPO募资要用于贷款,高铁塔为控股股东
  5. 雨晨QQ2013beta2(5865) 双显IP纯净完整自选版
  6. 搜狐白社会消息应用: Mochiweb
  7. php的按钮submit,html5中submit是按钮么
  8. github的使用,从建库开始
  9. docker开发环境搭建(windows)
  10. 噪音对比估计(NCE)