转自:https://www.cnblogs.com/webRobot/p/7722820.html
1.标准差分为
总体标准差和样本标准差。
2.python3版本的测试代码
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)#ddof即分母上n-ddof,默认ddof=0 distance=abs(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)
但是奇怪的发生了,并没有结果显示n-1效果最好:
{'ddof0': 4.0868364342971955, 'ddof1': 4.947034133787358, 'ddof2': -1.5785751594439086} >>> ========================= RESTART: D:\Code\test.pyw ========================= {'ddof0': 53.50429234250031, 'ddof1': 55.14441660851662, 'ddof2': 55.00743997766253} >>> ========================= RESTART: D:\Code\test.pyw ========================= {'ddof0': 47.747774754987645, 'ddof1': 57.2007701058931, 'ddof2': 61.25822087493527} >>> ========================= RESTART: D:\Code\test.pyw ========================= {'ddof0': 52.731146715108636, 'ddof1': 53.558965517391805, 'ddof2': 52.55194546696517}
后三个是加上abs后相加的结果。
分别是2,0,0,2效果最好。
值越小表示样本标准差越接近总体标准差。 为什么呢?
设置size_sample=50时,得到结果:
{'ddof0': 78.40380428873893, 'ddof1': 76.08517941989425, 'ddof2': 77.20942295883009}
发现n-1是最好的。
设置size_sample=200时,得到结果:
{'ddof0': 37.16476033119325, 'ddof1': 35.09572615526863, 'ddof2': 36.156112099589926}
发现n-1是最好的。
设置size_sample=150时,得到结果:
{'ddof0': 43.52462677605111, 'ddof1': 43.059130130618186, 'ddof2': 42.0134545689584}
发现n-2是最好的。
所以说经过总体实验表明,n-1在大多数情况下都是好的?所以才选择它。
3.标准差与标准误差
那么,关于这两者的区别可以这样表述:标准差是样本数据方差的平方根,它衡量的是样本数据的离散程度;标准误是样本均值的标准差,衡量的是样本均值的离散程度。 而在实际的抽样中,习惯用样本均值来推断总体均值,那么样本均值的离散程度(标准误)越大,抽样误差就越大。 ... 所以,标准误就由样本标准差除以样本量来表示。
http://blog.sina.com.cn/s/blog_66035a700100hn1p.html
样本误差随样本数增加而减小=标准差/sqrt(n)。
4.数学上解释样本标准差分母为何是n-1