平均數及變異數是兩個很常見也熱門的統計量,平均數被用來描述分配的位置,而變異數則是一個用來衡量分配之分散程度的指標。
一般來說,我們做資料分析時能夠用手上的資料來計算樣本平均數及樣本變異數,再用這些統計量進一步估計母體參數。而我們透過計算得出的樣本平均數及樣本變異數事實上是隨機變數,換句話說,這些樣本平均數及樣本變異數是服從某個機率分配的,它並不是一個固定的數字。
為什麼這些估計值會是隨機變數呢?
舉個例子,假設我們今天想要得知成大男學生的平均身高及身高的變異數,實際上我們很難(像是可能有些學生根本不來學校)把每一個學生的身高都記錄起來,所以進行抽樣是比較合適的做法。
首先,隨機抽取100個成大男學生的身高並計算其樣本平均及樣本變異數,假設我們手上就有一筆樣本平均及樣本變異數的資料了,我們可以用這個統計量去估計全成大男學生的身高,但樣本平均及樣本變異數並不是一個固定的數字,若我們重新做一次抽樣,抽到另100位成大男學生,這些統計量(樣本平均及變異)也會隨之改變。
因此,這些統計量(樣本平均及樣本變異數)是隨機變數,他們不是固定的數字而是 屬於某個機率分配 。
Julia程式碼
using Random, Distributions, Plots; pyplot()
Random.seed!(0)
# 假設母體分配為exponetial distribution
lambda = 1/4.5
expDist = Exponential(1/lambda)
# n為每一次抽樣的樣本大小
# N為抽樣次數
n, N = 10, 10^6
means = Array{Float64}(undef, N)
variances = Array{Float64}(undef, N)
# 開始進行模擬抽樣,重複N次
for i in 1:N
# 隨機(模擬)抽取樣本資料
data = rand(expDist,n)
# 計算樣本平均及變異數
means[i] = mean(data)
variances[i] = var(data)
end
# 理論的平均和抽樣得出的樣本平均
println("Actual mean: ",mean(expDist),
"\nMean of sample means: ",mean(means))
println("Actual variance: ",var(expDist),
"\nMean of sample variances: ",mean(variances))
# 用直方圖表示其分配
stephist(means, bins=200, c=:blue, normed=true,
label="Histogram of Sample Means")
stephist!(variances, bins=600, c=:red, normed=true,
label="Histogram of Sample Variances", xlims=(0,40), ylims=(0,0.4),
xlabel = "Statistic value", ylabel = "Density")