1. 程式人生 > >統計學——中心極限定理(R語言)

統計學——中心極限定理(R語言)

中心極限定理用通俗的話來講就是,假設有一個服從(μ,σ2)的總體,這個總體的分佈可以是任意分佈,不用是正態分佈,既可以是離散的,也可以是連續的。我們從該分佈裡隨機取n個樣本x1,x2,...,xn,然後求這些樣本的均值x_mean,這個過程我們重複m次,我們就會得到x_mean_1,x_mean_2,...,x_mean_m,如果n-->∞,這些樣本的均值服從N(μ,σ2/n)的正態分佈。

舉例:我有1000個蘋果,它們的重量服從μ=100,σ2=50的分佈,每次從中隨機的抽取5個蘋果稱重:

第一次選取的5個蘋果的重量為:(89,78,101,22,150),均值x_mean_1=88

第二次。。。。。

。。。。

第m次選取的5個蘋果的重量為:(77,90,34,88,140),均值x_mean_m=99.2

那這m次的樣本的均值的分佈為μ_mean = μ = 100, σ2_mean = σ2 / 5 = 50 / 5 = 10

以下是我們用R語言模擬該過程

library(moments)
options(digits = 3)
options(scipen = 200)

X = rexp(10000, rate=1)# 原始分佈,可以隨便設定,我設定的是一個指數分佈
X_mean = mean(X) # 原始分佈的均值
X_var= var(X) # 原始分佈的方差



m=10000 # 抽取的次數
par(new=TRUE)
par(mfrow=c(2,3)) 

list_result = list()


for(n in c(5,10,50,100,500,1000)){# 每次從原始分佈裡隨機抽取樣本的個數
  
  s=c()
  
  for(j in 1:m){
    sample=sample(X,n)# 從原始分佈裡隨機選取n個樣本
    sample_mean = mean(sample)# 求樣本的均值
    s[j]=sample_mean
  }
  
  s_mean = mean(s)# 樣本均值的均值
  s_var = var(s)# 樣本均值的方差
  hist(s,breaks = 50,main = paste('n = ',n,sep=''))
  
  result =c(
    n,
    X_mean,
    s_mean,
    X_var,
    s_var,
    X_var/n,
    skewness(s),# 偏度
    kurtosis(s)) # 峰度
  
  cat(result)
  cat('n')
}

hist(X)
以下是選擇不同的n時樣本均值的分佈圖,可以看到隨著n的變大,分佈圖越來越接近正態分佈:


從以下的列表可以看出,隨著n的增大,樣本均值的均值越來越接近總體的均值,樣本均值的分佈的偏度越來越小,越符合正態分佈。



例1

題目:你從200,000蘋果裡挑出36個蘋果作為樣本,這36個樣本的均值是112g,標準差是40g,那麼這200,000個蘋果的均值在100g124g之間的概率為多少?

分析:這裡給出一個樣本集的情況,這36個樣本(或者n=36的一次樣本集取樣中的均值是112,這36個樣本的σ=40。注意這裡給出的是一個樣本集的情況,不是多個樣本集的sampling distribution of the sample mean。

我們知道,抽樣分佈的均值等於總體的均值,

從樣本的方差,可以估算總本方差:不止大家是否記得還記得無偏差樣本方差嗎?是除以n-1,而不是n,無偏差樣本方差,可以近似為總本差σ2,所以總體200,000個蘋果的方差可以認為是樣本的方差,標準差為40g進而可得樣本均值的方差σ2/n=40*40/36,標準差即為6.67

這個題目的相當於


根據上面的公式我們可以認為題目求的是對於一個特定的抽樣均值,我們求其在抽樣均值的均值12附近的概率。

由於樣本均值的分佈接近與正態分佈,所以我們可以利用z-score來算概率,z-score=12/6.67=1.8,用z-table可得此區間的概率是0.9641,但是注意這是單尾的值,雙尾的值為(0.9641-0.5)*2=0.9282

所以200,000個蘋果的均值在100g124g之間的概率為92.8%。

例2

題目:成年男性在戶外活動平均要喝2L的水,標準差為0.7L,如果50個男性戶外活動,準備110L的水,不夠喝的概率是多少?

分析:總體服從μ=2,σ=0.7。

題目問的是50個男性喝的水超過110L的概率,也就是說平均一個人喝水超過2.2L的概率,這也就是樣本均值。從中心極限定理我們知道,那麼樣本均值服從μ_m = μ = 2,σ_m = σ/sqrt(50) = 0.099的正態分佈。

所以本題也就是求:

同理我們求z-score = (2.2-2)/0.099 = 2.02,通過檢視z-table可以看到概率為:0.9861,所以水不夠喝的概率為1.39%

附錄: