SAS编程:中心极限定理的模拟

这篇文章利用SAS编程,进行中心极限定理的模拟。

中心极限定理是概率论和统计学中的一个基本定理,定理说明,当样本量足够大时,无论原始随机变量的分布如何,独立同分布的随机变量的均值会渐进服从正态分布

本文不进行公式推导,只进行模拟验证。模拟过程中,关于随机变量的分布,分别选取了0-1分布、二项分布、超几何分布,以及卡方分布,并辅以示例说明。模拟样本量设为100,试验次数设为1000,并画出1000个均值的直方图。

从直方图中,可以看出这些均值渐进服从正态分布,从而验证中心极限定理。

1. 0-1分布/两点分布

0-1分布,也称为伯努利分布,是一种离散概率分布,描述了一个只有两个可能结果的随机试验。每个试验只有两个可能的结果,通常称为“成功”和“失败”。成功的概率记为 p,失败的概率记为1-p

模拟

拿抛掷一枚硬币举例,正面记为1,反面记为0,出现正面、反面的概率都为0.5。进行多次独立的抛硬币试验,比如100次。每次都记录结果,我们可以计算出100次结果的均值。重复这个过程,可以得到第二个均值;以此类推,可以得到很多个均值。

以上过程,单次试验为投掷硬币100次,重复试验1000次,画出1000个均值的直方图。

SAS程序如下:

/* 0-1 distribution*/

**Create dummy datasets;
data dummy;
  call streaminit(20240621);
  do trial = 1 to 1000; 
      sum = 0;
      do num = 1 to 100;   
          outcome = rand("Bernoulli", 0.5);
          sum + x;
      end;

      mean = sum/100;
      output;
  end;
run;

**Histogram of the mean;
proc sgplot data=means;
    histogram mean / binwidth=0.01;
    density mean / type=normal;
    title "Means distribution of samples from 0-1 distribution by Jihai";
run;

均值直方图如下:

2. 二项分布

二项分布 (Binomial Distribution) 是一种离散概率分布,描述了一组独立的伯努利试验中成功次数的分布情况。每个伯努利试验只有两个可能的结果:成功(用1表示)和失败(用0表示),且每次试验成功的概率 p是恒定的。

进行n次伯努利试验,成功k次的概率如下:

模拟

假设一个盒子里有100个球,其中红球有10个,白球有90个。如果从盒子里有放回地抽取20次,记录抽中红球的个数;以上步骤重复100次,计算抽中红球个数的均值;以上过程重复1000次,得到1000个均值,画出均值的直方图。

SAS模拟程序如下:

/*Binomial distribution*/

**Create dummy datasets;
data dummy;
    call streaminit(20240621);
    do trial = 1 to 1000;
        sum = 0;
        do num = 1 to 100;
            outcome = rand("binomial", 0.1, 20);
            sum + outcome;
        end;

        mean = sum/100;
        output;
    end;
run;

**Histogram of the mean;
proc sgplot data=dummy;
    histogram mean / binwidth=0.05;
    density mean / type=normal;
    title "Means distribution of samples from Binomial distribution by Jihai";
run;

均值直方图如下:

3. 超几何分布

超几何分布 (Hypergeometric Distribution) 是一种离散概率分布,用于描述在不放回抽样的情况下,从有限总体中抽取样本时,成功次数的分布情况。

N个总体中,有K个感兴趣的个体,不放回抽取n个样本,其中k次成功的概率为:

模拟

假设一个盒子里有100个球,其中红球有10个,白球有90个。如果从盒子里不放回地抽取20次,记录抽中红球的个数;以上步骤重复100次,计算抽中红球个数的均值;以上过程重复1000次,得到1000个均值,画出均值的直方图。

SAS模拟程序如下:

/*Hypergeometric  distribution*/

**Create dummy datasets;
data dummy;
    call streaminit(20240621);
    do trial = 1 to 1000;
        sum = 0;
        do num = 1 to 100;
            outcome = rand("hyper", 100, 10, 20);
            sum + outcome;
        end;

        mean = sum/100;
        output;
    end;
run;

**Histogram of the mean;
proc sgplot data=dummy;
    histogram mean / binwidth=0.05;
    density mean / type=normal;
    title "Means distribution of samples from Hypergeometric distribution by Jihai";
run;

均值直方图如下:

4. 卡方分布

卡方分布 (Chi-Square Distribution) 是一种常见的连续型概率分布,常用于统计推断中。卡方分布主要描述的是一组独立标准正态分布随机变量平方和的分布情况。

假设Z_1, Z_2, \ldots, Z_kk个相互独立的标准正态分布随机变量,即Z_i \sim N(0, 1),则这些随机变量的平方和:X = \sum_{i=1}^{k} Z_i^2服从自由度为 k 的卡方分布,记作 X \sim \chi^2(k)

模拟

在一次试验中,生成100个服从自由度为10的卡方分布的随机数,并计算均值。重复试验1000次,得到1000个均值,并画出均值的直方图。

SAS模拟程序如下:

/*Chi-Square  distribution*/

**Create dummy datasets;
data dummy;
    call streaminit(20240621);
    do trial = 1 to 1000;
        sum = 0;
        do num = 1 to 100;
            outcome = rand("chisquare", 10);
            sum + outcome;
        end;

        mean = sum/100;
        output;
    end;
run;

**Histogram of the mean;
proc sgplot data=dummy;
    histogram mean / binwidth=0.1;
    density mean / type=normal;
    title "Means distribution of samples from Chi-Square distribution by Jihai";
run;

均值直方图如下:

5. 总结

文章利用SAS编程,进行中心极限定理的模拟。选取了4类随机变量的分布,每个分布都有一个简单的示例说明,方便读者理解。模拟过程是,单次试验生成100个特定分布的随机数,并计算均值;重复试验1000次,得到1000个均值,并画出均值的直方图。

从直方图中,可以看出这些均值渐进服从正态分布,从而验证中心极限定理。

感谢阅读, 欢迎关注:SAS茶谈!
若有疑问,欢迎评论交流!

梳理不易,转载请注明出处 (by Jihai / SAS茶谈)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容