首页 > 其他 > 详细

标准差计算【转载】

时间:2019-06-27 12:27:29      阅读:97      评论:0      收藏:0      [点我收藏+]

转自: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

https://blog.csdn.net/Hearthougan/article/details/77859173

标准差计算【转载】

原文:https://www.cnblogs.com/BlueBlueSea/p/11095997.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!