python计算标准差为什么分母要-1_为什么样本方差的分母是除以n-1
样本方差的分母
随机变量的方差描述的是变量的离散程度,$$\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相关推荐
- Python计算标准差和方差
例题:计算下面数据的标准差和方差 86,87,88,86,87,85,86 import numpy as np a=[86,87,88,86,87,85,86] std=np.std(a)#标准差 ...
- python计算标准差函数_Python pandas,pandas常用统计方法,求和sum,均值mean,最大值max,中位数median,标准差std...
mean()平均值 median()中位数 max()最大值 min()最小值 sum()求和 std()标准差 Series类型独有的方法: argmax()最大值的位置 a ...
- python 计算标准差和平均值
直接上代码,要用就拿去 最近问这种平均值和标准差怎么算的人好多啊,我打算直接把代码放在这里了. 记得改个变量名称,不然被发现就完了. from math import sqrt def getnum( ...
- 计算标准差分母是n还是n-1?
概述 提问:在我们计算某些数据标准差(或者方差)的时候,会发现有些公式分母是n,而有些公式的分母却是(n-1),那么到底哪个公式才是正确的呢? 答案: 如果是算总体的标准偏差,分母就用n,这就是真实的 ...
- python计算excel平均值_python计算excel平均值和标准差
############################################## ######## python计算excel平均值和标准差 ####### ############### ...
- 怎么用python编写程序计算标准差_自学生信Python(第五天)|如何计算标准差?...
如何计算标准差? 本人是一枚生物学的学生,由于对生物信息学特别感兴趣,于是想自学生物信息学(新手莫怪).了解到生物信息学要有编程基础,尤其是要会一门编程语言,例如:R语言.Python.Perl等,还 ...
- python计算excel数据_python计算excel平均值和标准差
############################################## ######## python计算excel平均值和标准差 ####### ############### ...
- python 计算平均值、中位数、标准差
python计算平均值.中位数.标准差(通过导入原有txt文件中的数组) 运行截图: 代码: def getdata(filename): #导入原有txt文件中的数组with open(filena ...
- python计算平均数、中位数及标准差
哈喽,大家好呀,下面是我整理的python计算平均数.中位数和标准差的方法,咱们一起学习,共同进步! 1.计算平均数 方法① lst=[1,2,3,4,5] #首先定义 ...
最新文章
- 传美的投40亿进军卫浴行业
- 阿里云配置负载均衡实例
- erp系统服务器怎么关机,服务器怎么设置自动关机
- 联通g网java业务的是什么_联通发力G网增值业务
- visual studio 11开发Win8模板
- 如何高效高质进行Android技术开发
- VS清理中间文件bat脚本
- ASCII码(C语言)
- 驱动人生安装驱动计算机无法启动,驱动人生怎么安装驱动程序?驱动人生基本功能...
- Swagger注解 详解
- maya显示已安装_安装cad2010显示已安装怎么办?峰哥教你怎么解决
- 第一次使用拉勾网求职经历
- matlab确定分段函数的间断点,分段函数必有间断点( )
- IFD-x 微型红外成像仪(模块)与计算机工具软件 IFD_Tool 连接
- 【虚幻引擎】实现类LOL缓慢扣血血条
- std::accumulate的用法
- 数据结构个人笔记 第12课 数组
- 从零学Java(19)之 if else分支结构详解,小AD要搞对面心态!
- Android 应用icon适配
- ubuntu kernel编译
热门文章
- 蚂蚁金服分布式链路跟踪组件 SOFATracer 数据上报机制和源码分析 | 剖析
- (转)在游戏中使用“CEGUI” — 第一章(底层)
- 点到直线的垂直交点坐标(斜率必须存在)
- 高视医疗在港交所招股:IPO募资要用于贷款,高铁塔为控股股东
- 雨晨QQ2013beta2(5865) 双显IP纯净完整自选版
- 搜狐白社会消息应用: Mochiweb
- php的按钮submit,html5中submit是按钮么
- github的使用,从建库开始
- docker开发环境搭建(windows)
- 噪音对比估计(NCE)