• 标准差计算【转载】


    转自: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	est.pyw =========================
    {'ddof0': 53.50429234250031, 'ddof1': 55.14441660851662, 'ddof2': 55.00743997766253}
    >>> 
    ========================= RESTART: D:Code	est.pyw =========================
    {'ddof0': 47.747774754987645, 'ddof1': 57.2007701058931, 'ddof2': 61.25822087493527}
    >>> 
    ========================= RESTART: D:Code	est.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

  • 相关阅读:
    中国一些web service收藏
    DataSet 和 List<T> 相互 转换
    JS图表
    IIS DirectoryEntry
    JS弹框
    Remoting
    Del SVN Configuare File BAT
    Viewport3D对象转换成图片
    在WPF中进行碰撞检测
    Button自定义样式
  • 原文地址:https://www.cnblogs.com/BlueBlueSea/p/11095997.html
Copyright © 2020-2023  润新知