樣本平均數及樣本變異數都是隨機變數,它們分別屬於同樣或不同的機率分配。
那樣本平均數及樣本變異數之間獨立嗎?
也就是說,樣本變異數的大小會影響樣本平均數嗎?它們之間會互相影響嗎?
事實上是會的!在大部分的情況底下,兩者是不獨立的,樣本平均和樣本變異的估值存在某些相關,換句話說, 樣本平均的大小會影響樣本變異數的大小 ,這是一個非常有趣的現象,大家也可以找個簡單的分配自己算算看。
但當常態假設成立時,樣本平均及樣本變異數就是互相獨立的!
該怎麼確認這一論述正確呢? 除了動手推導理論解去證明此一論述之外,我們也可以用Julia執行統計模擬來看看這樣的結論是不是合理的!
Julia程式碼
using Distributions, Plots, LaTeXStrings; pyplot()
# 定義函數statPair(),
# 計算給定不同分配及特定樣本大小的情況下的樣本平均及樣本變異數
function statPair(dist,n)
sample = rand(dist,n)
[mean(sample),var(sample)]
end
# uniform分配
stdUni = Uniform(-sqrt(3),sqrt(3))
n, N = 3, 10^5
# 模擬母體分配為uniform分配情況下其
# 抽樣得到的樣本平均及樣本變異數的數值
dataUni = [statPair(stdUni,n) for _ in 1:N]
# 模擬母體分配為uniform時
# 計算若樣本平均及樣本變異為獨立的數字
dataUniInd = [[mean(rand(stdUni,n)),var(rand(stdUni,n))] for _ in 1:N]
# 模擬母體分配為Normal分配情況下其
# 抽樣得到的樣本平均及樣本變異數的數值
dataNorm = [statPair(Normal(),n) for _ in 1:N]
# 模擬母體分配為Normal時
# 計算若樣本平均及樣本變異為獨立的數字
dataNormInd = [[mean(rand(Normal(),n)),var(rand(Normal(),n))] for _ in 1:N]
p1 = scatter(first.(dataUni), last.(dataUni),
c=:blue, ms=1, msw=0, label="Same group")
p1 = scatter!(first.(dataUniInd), last.(dataUniInd),
c=:red, ms=0.8, msw=0, label="Separate group",
xlabel=L"\overline{X}", ylabel=L"S^2")
p2 = scatter(first.(dataNorm), last.(dataNorm),
c=:blue, ms=1, msw=0, label="Same group")
p2 = scatter!(first.(dataNormInd), last.(dataNormInd),
c=:red, ms=0.8, msw=0, label="Separate group",
xlabel=L"\overline{X}", ylabel=L"$S^2$")
# 從圖中可以很清楚的看出在uniform分配時
# 若樣本平均及樣本變異為獨立抽樣,所計算出的數字的分布和
# 樣本平均及樣本變異由同一樣本一起計算出的數字的分布
# 有所差異。
# 而在Normal分配時
# 若樣本平均及樣本變異為獨立抽樣,所計算出的數字的分布和
# 樣本平均及樣本變異由同一樣本一起計算出的數字的分布
# 並無差別。
plot(p1, p2, ylims=(0,5), size=(800, 400))