\(M\)個の正規乱数を混合比\(W_s\)で混合したものは正規分布に従うわけではなく、混合正規分布に従う。
平均は、 \(\displaystyle \mu=\sum_{s=1}^M
W_s\mu_s\) (群平均の加重平均)
分散は \(\displaystyle
\sigma^2=\sum_{s=1}^M W_s\sigma_s^2+
\sum_{s=1}^MW_s(\mu_s-\mu)^2\) で与えられる。
(群内分散の加重平均+群間分散)
2013_社会科学_問3が良問であるのでシミュレーションしてみよう。
ある大学1000人の通学時間について、
自宅通学U1 :750名 平均90 標準偏差35
自宅外通学U2 :250名 平均30 標準偏差25
U1,U2をあわせたUを母集団とする。
理論上は、平均75 、分散 \(\sqrt{1750}=41.8\) となるはずである。
このとおりの母集団を構成することはできないが、乱数を用いてそれに近い母集団を構成する。
混合分布を理解するため、個数を10分の1にしてシミュレーションしてみよう。
G1 <- rnorm(75,90,35)
G2 <- rnorm(25,30,25)
G <- c(G1,G2)
par(mfrow = c(1, 2))#グラフを2つ並べる
hist(G1,prob=F,breaks = "Sturges",xlim=c(-40,240),ylim=c(0,30))
hist(G2,prob=F,breaks ="Sturges",xlim=c(-30,240),ylim=c(0,60),add=T,col="lightblue")
hist(G,prob=F,breaks = "Sturges",xlim=c(-40,240),ylim=c(0,30))
mean(G1);mean(G2);mean(G)
## [1] 86.28471
## [1] 23.97603
## [1] 70.70754
sd(G1);sd(G2);sd(G)
## [1] 31.17641
## [1] 25.30881
## [1] 40.21319
乱数によるシミュレーションなので、平均・分散は完全に一致するわけではない。
このような作業を1000回繰返して平均・分散をみよう。
M = c()
V = c()
for (i in 1:1000) {
G1 <- rnorm(75,90,35)
G2 <- rnorm(25,30,25)
G <- c(G1,G2)
m <- mean(G)
v <- var(G)
M <-c(M,m)
V <-c(V,v)
}
mean(M);mean(V)
## [1] 75.01983
## [1] 1751.291
理論値に近い値となっている。
混合正規乱数の発生コード に従うと、
# n: 発生する混合正規乱数の総数
# p1: 最初の正規分布の比率
# N1: 最初の正規分布の平均、標準偏差のベクトル c(mu1, sd1)
# N2: 2番目の正規分布の平均、標準偏差のベクトル c(mu2, sd2)
rmixnorm <- function(n, p1, N1, N2) {
P <- (runif(n) < p1)
(P*N1[2] + (1-P)*N2[2])*rnorm(n) + (P*N1[1] + (1-P)*N2[1])
}
x <- rmixnorm(100,0.75,c(90,35),c(30,25))
混合正規分布 rmixnorm から出力した乱数xと、1.1.1データの混合分布を比べてみる。
par(mfrow = c(1, 2))#グラフを2つ並べる
hist(G,prob=F,breaks = "Sturges",xlim=c(-40,240),ylim=c(0,30))
hist(x,prob=F,breaks = "Sturges",xlim=c(-40,240),ylim=c(0,30))
mean(G);sd(G)
## [1] 75.1649
## [1] 44.19361
mean(x);sd(x)
## [1] 77.72657
## [1] 46.8056
よく似た分布になっている。
分散の誤差が大きいのは2乗計算のためと考えられる。
xについて1000回繰り返すと、
M = c()
V = c()
for (i in 1:1000) {
x <- rmixnorm(100,0.75,c(90,35),c(30,25))
m <- mean(x)
v <- var(x)
M <-c(M,m)
V <-c(V,v)
}
mean(M);mean(V)
## [1] 74.74219
## [1] 1757.901
理論値に近くなってくる。
大学全体で、自宅通学750、自宅街通学250 合計1000名とする。
U1 <- rnorm(750,90,35)
U2 <- rnorm(250,30,25)
U <- c(U1,U2)
mean(U1);mean(U2);mean(U)
## [1] 87.34299
## [1] 29.60823
## [1] 72.9093
sd(U1);sd(U2);sd(U)
## [1] 33.24718
## [1] 26.76783
## [1] 40.40997
通常の抽出による標本平均MSと層化抽出による標本平均MGを1000回出力し、平均と分散を比べてみる。
MG = c()
MS = c()
for (i in 1:1000) {
G1 <- sample(U1, size = 75, replace = FALSE)
G2 <- sample(U2, size = 25, replace = FALSE)
G <- c(G1,G2)
S <- sample(U, size = 100, replace = FALSE)
MG = c(MG,mean(G))
MS = c(MS,mean(S))
}
mean(MG);mean(MS)
## [1] 72.94404
## [1] 72.97212
var(MG);var(MS)
## [1] 8.938749
## [1] 14.85106
平均は一致しているが分散にはズレが生じている。
\(\displaystyle \dfrac{\sigma^2}{n}=\dfrac{1}{n}\sum_{s=1}^M W_s\sigma_s^2+\dfrac{1}{n} \sum_{s=1}^MW_s(\mu_s-\mu)^2\)
右辺第2項は群間分散を標本数で割ったものであり、
層化抽出による標本分散のほうが、左辺より群間分散の分だけ小さいはずである。
群間分散は
\(\displaystyle \dfrac{1}{n} \sum_{s=1}^MW_s(\mu_s-\mu)^2=\dfrac{1}{100}\left[0.75(90-75)^2+0.25(30-75)^2\right]=6.75\)
通常の標本分散と層化抽出による標本分散の差にほぼ一致している。
群間分散が大きければ層化抽出の標本分散は小さく抑えられることになるので、層の構成は分離した(平均の離れた)構成がよいとされる。
上記の抽出は非復元抽出であり、有限母集団修正を行うこともできるが、ここでは修正は行っていない。
・これまでの配分は標本数に比例した配分で比例抽出と呼ばれている。
各群のデータ数\(N_h~
(h=1,2,\cdots,M)\)に比例した割合で抽出数を決定する。
\(n\)個の標本を抽出するとき各群から
\(n_h=\dfrac{N_h}{\sum N_h}\cdot
n\) 個抽出することになる。
・分散の大きい群は影響力が大きいので、(データ数)・(群内標準偏差)に比例した割合で抽出するのがネイマン配分であり、最適な配分とされる。
標準偏差を\(\sigma_i~
(h=1,2,\cdots,M)\)とするとき、
\(n_h=\dfrac{N_h\sigma_h}{\sum N_h}\cdot n\) 個抽出する。
本問では
\(N_1\sigma_1:N_2\sigma_2=(75\cdot
35):(25\cdot 25)\fallingdotseq4:1\)
ネイマン配分を用い抽出数を80,20としてみる。
MG = c()
MS = c()
for (i in 1:1000) {
G1 <- sample(U1, size = 80, replace = FALSE)
G2 <- sample(U2, size = 20, replace = FALSE)
G <- c(G1,G2)
S <- sample(U, size = 100, replace = FALSE)
MG = c(MG,mean(G))
MS = c(MS,mean(S))
}
mean(MG);mean(MS)
## [1] 75.77293
## [1] 72.99283
var(MG);var(MS)
## [1] 9.565025
## [1] 14.17867
抽出配分をネイマン配分とすることで、標本分散がわずかではあるが小さくなっていることがわかる。
標本抽出によって母平均を推定するとき、期待値は母平均に一致する。
しかし、予測精度を意味する標本分散は抽出法により異なる。
推定精度を上げるために考えられたのがネイマン配分法である。
実際の調査では非復元抽出であるので標本平均の有限修正を行うが、ここでは扱わなかった。