• 关于样本方差的无偏估计


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

     首先给出样本方差的计算方法:

    [S^2=frac{1}{n-1}sum_{i=1}^{n}{(X_i-ar{X})}^2]

    其中样本均值

    [ar{X}=frac{1}{n}sum_{i=1}^{n}X_i]

    总体方差(在总体均值$mu$已知的情况下)的定义是

    [{sigma}^2=frac{1}{n}sum_{i=1}^{n}{(X_i-mu)}^2]

    那为什么样本方差的分母要使用n-1而不是n,证明如下:

    ======插入:证明需要用到以下性质======

    (1)期望的线性可加性:若$X$和$Y$是两个随机变量,则他们的期望的和等于和的期望,即

    [E(aX+bY)=aE(X)+bE(Y)]

    (2)方差的性质

     若$X$和$Y$相互独立,则

    [D(aX+bY)=a^2DX+b^2DY]

    (3)若总体$X$的均值、方差均存在,且$EX=mu$,$DX={sigma}^2$,则

    [Ear{X}=mu]

    [Dar{X}=frac{sigma^2}{n}]

    证明:

    [Ear{X}=Eleft(frac{1}{n}sum_{i=1}^{n}X_i ight)=frac{1}{n}sum_{i=1}^{n}{EX_i}=frac{1}{n}sum_{i=1}^{n}EX=mu]

    [Dar{X}=Dleft(frac{1}{n}sum_{i=1}^{n}X_i ight)=frac{1}{n^2}sum_{i=1}^{n}{DX_i}=frac{1}{n^2}sum_{i=1}^{n}DX=frac{1}{n^2}nsigma^2=frac{sigma^2}{n}]

    ======

    [Eleft(S^2 ight)=frac{1}{n-1}Eleft(sum_{i=1}^{n}left(X_i-ar{X} ight)^2 ight)=frac{1}{n-1}Eleft(sum_{i=1}^{n}left(X_i-mu+mu-ar{X} ight)^2 ight)=frac{1}{n-1}Eleft(sum_{i=1}^{n}left(left(X_i-mu ight)^2-2(X_i-mu)(ar{X}-mu)+left(ar{X}-mu ight)^2 ight) ight)=frac{1}{n-1}Eleft(sum_{i=1}^{n}{left(X_i-mu ight)^2-2(ar{X}-mu)sum_{i=1}^{n}{(X_i-mu)}+{nleft(ar{X}-mu ight)}^2} ight)=frac{1}{n-1}Eleft(sum_{i=1}^{n}{left(X_i-mu ight)^2-2n(ar{X}-mu)(ar{X}-mu)+{nleft(ar{X}-mu ight)}^2} ight)=frac{1}{n-1}Eleft(sum_{i=1}^{n}{left(X_i-mu ight)^2-{nleft(ar{X}-mu ight)}^2} ight)=frac{1}{n-1}sum_{i=1}^{n}{E(left(X_i-mu ight)^2)-nE(left(ar{X}-mu ight)^2)}=frac{1}{n-1}left(nsigma^2-nfrac{sigma^2}{n} ight)=sigma^2]

    因此样本方差$S^2$是总体方差$sigma^2$的无偏估计。

    2.什么是无偏估计

     无偏估计是用样本统计量来估计总体参数时的一种无偏推断。估计量的数学期望等于被估计参数的真实值,则称此估计量为被估计参数的无偏估计,即具有无偏性,是一种用于评价估计量优良性的准则。无偏估计的意义是:在多次重复下,它们的平均数接近所估计的参数真值。——来源于百度百科

    3.软件的计算方法

    在matlab和R中,默认使用的都是样本标准差,即分母是n-1,如下。

    >> std([1,2,3])
    ans =
         1
    
    > sd(c(1,2,3))
    [1] 1
    

    而在Python中,需要注意默认是用的分母为n的标注差,需要加ddof = 1才是样本标准差。

    import numpy as np
    a=np.std([1,2,3])
    b=np.std([1,2,3],ddof = 1)
    print('a=',a,',b=',b)
    

    a= 0.816496580927726 ,b= 1.0

    4.关于是否有偏的测试

    mus=[];
    sigmas=[];
    means=[];
    std_ns=[];
    std_n_1s=[];
    mse_n=[];
    mse_n_1=[];
    for i=1:10000
        mu=rand;
        sigma=rand;
        r = normrnd(mu,sigma,[1,20]);
        mus=[mus,mu];
        sigmas=[sigmas,sigma];
        means=[means,mean(r)];
        std_ns=[std_ns,std_n(r)];
        std_n_1s=[std_n_1s,std_n_1(r)];
        mse_n=[mse_n,mean(std_ns-sigmas)];
        mse_n_1=[mse_n_1,mean(std_n_1s-sigmas)];
    end
    plot(mse_n);hold on;plot(mse_n_1);
    hold off;
    legend('std n','std n-1');
    function s=std_n(x)
    s=sqrt(sum((x-mean(x)).^2)/length(x));
    end
    function s=std_n_1(x)
    s=sqrt(sum((x-mean(x)).^2)/(length(x)-1));
    end
    

    可以看到,使用n-1为分母计算出的比n更加精确。 

  • 相关阅读:
    LLVM生成中间码以及汇编代码
    汇编知识
    delphi 连接 c++ builder 32 生成obj文件
    新知识
    Java的Guid生成
    sql:一对多【转载】
    关于使用js完成购物车计算时的一些问题。
    mysql多条件查询,当某个条件为空时忽略该条件,所有条件为空时查询全部
    转载:获取用户的真实ip地址
    ssh 报错hibernate java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to XXX
  • 原文地址:https://www.cnblogs.com/dingdangsunny/p/15265412.html
Copyright © 2020-2023  润新知