https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campaign=commission&utm_source=cp-400000000398149&utm_medium=share

大家好,今天给大家介绍标准差。标准差在统计领域是一个重要概念,有些地方晦涩难懂,特别是样本标准差的分母为何是n-1,而不是n或n-2,接下来我会一一介绍并用计算机模拟难点。

什么是标准差?下面看两组数[28,29,30,31,32],[10,20,30,40,50],它们的平均数都是30。这两组数是一致的吗?实际上,这两组数离散程度有很大区别。

用numpy模块计算,两组数的标准差相差10倍

方差是实际值与期望值之差平方的平均值。方差,通俗点讲,就是和中心偏离的程度!用来衡量一批数据的波动大小(即这批数据偏离平均数的大小)并把它叫做这组数据的方差。记作S2。
在样本容量相同的情况下,方差越大,说明数据的波动越大,越不稳定。标准差就是方差的平方根。方差和标准差用于不同场合,方便计算。

(标准差英文解释)

方差公式

标准差公式

难点来了,总体标准差和样本标准差的公式是有区别的,如下图

样本标准差公式中,分母是n-1。

为何样本标准差的分母为何是n-1,而不是n或n-2?

我们用计算机建模,环境Anaconda(python2.7)

参数解释:

Sigma表示总体标准差

S表示样本标准差

ddofValue=0 表示样本标准差分母是n

ddofValue=1 表示样本标准差分母是n-1

ddofValue=2 表示样本标准差分母是n-2

算法思路:

1.模拟出一个总体(服从正态分布的1000个随机数)

2. 从总体中随机抽样(100个随机数)

3.分别算出总体和样本的标准差,然后相减得到distance差值

4.循环1000次试验,把1000个distance相加,得到total_distance

5.在步骤3中,分别对样本标准差的分母取n, n-1,n-2,  最终得到dict_modes

观察dict_modes,ddof1的绝对值最小3.8

ddof1=1 表示样本标准差分母是n-1

总结:s样本标准差的分母采用n-1更加接近真实的总体标准差。通过计算机模拟,我们证明了为什么样本标准差的分母n-1比较合适,而不是n或n-2。

源代码:

如果允许代码有任何问题,请反馈至邮箱231469242@qq.com

# -*- coding: utf-8 -*-

'''

为什么样本标准差的分母是n-1

'''

import random

import numpy as np

#试验次数

trial=1000

#正态分布总体大小

size_total=1000

#正态分布样本大小

size_sample=100

#分母状态

#ddofValue=0 表示样本标准差分母是n

#ddofValue=1 表示样本标准差分母是n-1

#ddofValue=2 表示样本标准差分母是n-2

list_ddofValues=[0,1,2]

#返回样本标准差和总体标准差的距离总和

def Total_distance(ddofValue):

#总体标准差
和样本标准差的差值

total_distance=0

for i in range(trial):

normal_values=list(np.random.normal(size=size_total))

#总体标准差

sigma=np.std(normal_values,ddof=0)

#随机抽样

sample=random.sample(normal_values,size_sample)

s=np.std(sample,ddof=ddofValue)

distance=sigma-s

total_distance+=distance

return total_distance

#选择最佳模型

def Dict_modes():

distance_ddof0=Total_distance(list_ddofValues[0])

distance_ddof1=Total_distance(list_ddofValues[1])

distance_ddof2=Total_distance(list_ddofValues[2])

dict_modes={}

dict_modes["ddof0"]=distance_ddof0

dict_modes["ddof1"]=distance_ddof1

dict_modes["ddof2"]=distance_ddof2

return dict_modes

dict_modes=Dict_modes()

print dict_modes

'''

for i in range(trial):

normal_values=list(np.random.normal(size=n))

#总体标准差

sigma=np.std(normal_values,ddof=0)

#plt.hist(normal_values)

#随机抽样

sample=random.sample(normal_values,100)

#plt.hist(sample)

s=np.std(sample,ddof=ddofValue)

distance=sigma-s

total_distance+=distance

print"when ddofValue is:",ddofValue

print"Distance:",total_distance

'''

End.

样本标准差分母为何是n-1的更多相关文章

  1. C#基础_C#计算样本标准差和总体标准差

    首先我们先了解样本标准差和总体标准差: 样本标准差=方差的算术平方根=s=sqrt(((x1-x)^2 +(x2-x)^2 +......(xn-x)^2)/(n-1)) 总体标准差=σ=sqrt(( ...

  2. 样本方差:为嘛分母是n-1

    在样本方差计算式中,我们使用Xbar代替随机变量均值μ. 容易证明(参考随便一本会讲述样本方差的教材),只要Xbar不等于μ,sigma(Xi-Xbar)2必定小于sigma(Xi-μ)2. 然而,要 ...

  3. 为什么样本方差(sample variance)的分母是 n-1?

    为什么样本方差(sample variance)的分母是 n-1? (補充一句哦,題主問的方差 estimator 通常用 moments 方法估計.如果用的是 ML 方法,請不要多想不是你們想的那樣 ...

  4. 为什么样本方差分母是n-1

    https://blog.csdn.net/qq_39521554/article/details/79633207 为什么样本方差的分母是n-1?为什么它又叫做无偏估计? 至于为什么是n-1,可以看 ...

  5. 去除zabbix calculate 模式下,有时候分母为零的情况(Cannot evaluate expression: division by zero. )

    zabbix的监控类型支持一种calculate的方式,可以对几个item结果进行简单的计算,但有时会出现分母为零的情况,这时候监控项就会报错 Cannot evaluate expression: ...

  6. Codeforces Round #450 (Div. 2) B. Position in Fraction【数论/循环节/给定分子m 分母n和一个数c,找出c在m/n的循环节第几个位置出现,没出现过输出-1】

    B. Position in Fraction time limit per test 1 second memory limit per test 256 megabytes input stand ...

  7. 为什么方差的分母有时是n,有时是n-1 源于总体方差和样本方差的不同

    为什么样本方差(sample variance)的分母是 n-1? 样本方差计算公式里分母为n-1的目的是为了让方差的估计是无偏的.无偏的估计(unbiased estimator)比有偏估计(bia ...

  8. Excel查询序列所相应的值-vLoopup函数,求比例分子改变但分母不变

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWV3ZWlvdXlhbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  9. 分母为0的坑(float)

    分母不能为0 对于int 类型,如果分母为0,在程序运行时,会报错. 而对于float 类型,如果分母为0,则不会报错,而是会返回一个infinity(无穷大),也就是NAN. 因为除一个无穷小的数, ...

随机推荐

  1. Spring Boot(七):Mybatis 多数据源最简解决方案

    说起多数据源,一般都来解决那些问题呢,主从模式或者业务比较复杂需要连接不同的分库来支持业务.我们遇到的情况是后者,网上找了很多,大都是根据 Jpa 来做多数据源解决方案,要不就是老的 Spring 多 ...

  2. 《深入浅出NodeJS》mindmap

    接触NodeJS有快两年了,但因为和我的工作内容关系不大,所以一直没有系统的学习.最近终于有空能系统地了解学习一下这门技术,于是买了一本朴灵老师的<深入浅出NodeJS>仔细研读.这本书内 ...

  3. Jq_浏览器兼容性及其浏览器版本

    JQuery 中用 方法 jQuery.browser 来判断浏览器,返回值可以为: safari opera msie mozilla. 当然有时候我们还需要区分版本 这就要用到 jQuery.br ...

  4. unity纯粹物理驱动方式

    首先见官方文档 In most cases you should not modify the velocity directly, as this can result in unrealistic ...

  5. PAT甲题题解-1002. A+B for Polynomials (25)-多项式相加

    注意两点:1.系数也有可能加起来为负!!!一开始我if里面判断为>0导致有样例没过...2.如果最后所有指数的系数都为0,输出一个0即可,原本以为是输出 1 0 0.0... #include ...

  6. No.1101_第十次团队会议

    今天项目进展很多,大家都在现在的成果而开心,信心高涨,后面的任务的完成也基本都能指日可待.之前团队出现了各种问题,沟通出现了很多障碍,导致各方面受阻.现在大家再面对面坦诚相对,交流了一下自己的想法,结 ...

  7. springboot+mybatis结合使用

    springboot+mybatis结合使用与普通的ssm配置差别不大,但是少了很多的配置,如spring.xml  web.xml,  给程序员减轻了很多负担 首先创建带有mybatis框架的项目 ...

  8. vmwear导出OVF模板解析(解决ovf导入服务器失败问题,虚拟机版本等)

    我们将vmwear虚拟机导出ovf模板后,有三个文件: 1,.mf 保存着.ovf和.vmdk两个文件的SHA1值,用于校验文件的完整性 2,.ovf 以XML格式保存着虚拟机的配置信息 3,.vmd ...

  9. Centos7 安装netcat

    1.下载 下载地址:https://sourceforge.net/projects/netcat/files/netcat/0.7.1/ 下载的是netcat-0.7.1.tar.gz版本 2.安装 ...

  10. Git使用:安装,使用及常用命令整理

    对于程序猿而言,git是最常接触的工具之一,因此需要熟练快速掌握其技巧. git安装: windwos:  [原创]Windows平台下Git的安装与配置 Ubuntu:git与github在ubun ...