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

我们知道总体标准差(σ)是按照下面的公式来计算的:

4025027-1ede38e36df0c4e0.png

但是在真实世界中,找到一个总体的标准差是不现实的。大多数情况下,我们都是通过计算样本标准差(s)来估计总体标准差(σ)的。但是s的计算公式是这样的:

4025027-e5f9c5269b05ee1e.png

分母为什么要(n-1)呢,而不是n?

维基百科给出的解释有点费解:

4025027-9900b463497c1be5.png

4025027-230bfc129daca942.png

看过很多统计学的教程和问答,一个比较利于理解的通俗的解释是:__
分母为n的话算出来的s会低估总体标准差(σ)。__

下面用MATLAB编程来证明这一点。大体是,我们随机生成1000个整数作为总体,然后从这个总体里抽取100个数,作为1个sample,共抽取1000个sample。然后我们用两种方式计算一下这个sample的标准差,即分母为n-1或者n,然后我们数一下这两种计算方式得到的s低于总体标准差(σ)的个数,这
里我们统计1000次的结果,代码在最后面。结果如下图,果不其然,分母为n的时候会较多的低估总体标准差(1000个sample平均有550个低估了总体标准差),而分母为(n-1)的时候基本大差不差(1000个sample基本有一半低估,一半高估)。

4025027-e2905f4e35219138.png

4025027-3de0a6bb20f20dfa.png

代码如下,可直接copy运行:

%% 总体(1000个1-100之间的整数),总体均值和总体标准差
population = [1:1000]
mean_population = mean(population);
sigma_population =sqrt(sum((population-mean_population).^2)/1000);

%% 统计1000次结果,每次1000个sample,看有多少次标准差低估总体标准差的
No_underestimate = [];
No_underestimate_real = [];
for m = 1:1000
    
    sigma_sample = [];
    real_sigma_sample = [];
    %随机取1000次sample
    for i = 1:1000

        %从population里随机选取100个数作为sample

        idx_sample = randi(1000,100,1);
        sample = population(idx_sample);

        
        %样本的均值和“标准差(分母不减一)”
        mean_sample = mean(sample);
        sigma_sample = [sigma_sample sqrt(sum((sample-mean_sample).^2)/length(sample))];

        %样本的标准差,分母减一
        real_sigma_sample = [real_sigma_sample sqrt(sum((sample-mean_sample).^2)/(length(sample)-1))];

    end
      %分母不减一求样本标准差时候低估总体标准差的个数
      No_underestimate =[No_underestimate length(sigma_sample(sigma_sample<= sigma_population))];
      %分母减一求样本标准差时候低估总体标准差的个数
      No_underestimate_real = [No_underestimate_real length(real_sigma_sample(real_sigma_sample<= sigma_population))];
end
%绘图
figure(1)
plot(No_underestimate)
title('分母不减一求样本标准差')
figure(2)
plot(No_underestimate_real)
title('实际求样本标准差(分母减一)')
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值