ぎるばーとのノート

もっともっと遠くへ行きたい 空が広く見える場所まで

一様分布の標本レンジ【ときどき分布・3記事目】

一様分布の標本レンジ

順序統計量の差

 標準一様分布の順序統計量の差はどんな分布に従うでしょうか?

 X(1) … X(i) … X(j) … X(n)(1 ≤ i < j ≤ n)の間には従属性(非独立性)があります。同時分布において、X(i) ≤ X(j)であることから、X(j) − X(i)の値は非負です。
 X(j) − X(i)は次の分布に従うことが知られています。

 X_{(j)} - X_{(i)} \sim \text{Beta}(j - i,\ n + 1 - (j - i))

標本レンジ

 標本最大値から標本最小値を引いた差として標本レンジが定義されます。標本レンジは次の分布に従います。

 X_{(n)} - X_{(1)} \sim \text{Beta}(n - 1,\ 2)

一様分布の標本レンジ

 nが大きくなるにつれ、分布のピークが1の方へ寄っていきます。また、分布が尖ってピーク付近の値をとりやすくなります。

乱数実験

 さて、この連載の方針は「とりあえず乱数実験で確認」です。
 各nの場合の標本レンジを繰り返し(1万回)計算して、理論分布が再現されるか見てみます。

乱数実験結果

 今回もぴったり一致! 理論は強し。

付録:Rコード集

乱数実験本体
rep <- 10000
ranges_n_2 <- numeric(rep)
ranges_n_3 <- numeric(rep)
ranges_n_4 <- numeric(rep)
ranges_n_5 <- numeric(rep)
ranges_n_6 <- numeric(rep)
ranges_n_7 <- numeric(rep)

for (i in 1:rep) {
	x <- runif(2)
	ranges_n_2[i] <- max(x) - min(x)
	x <- runif(3)
	ranges_n_3[i] <- max(x) - min(x)
	x <- runif(4)
	ranges_n_4[i] <- max(x) - min(x)
	x <- runif(5)
	ranges_n_5[i] <- max(x) - min(x)
	x <- runif(6)
	ranges_n_6[i] <- max(x) - min(x)
	x <- runif(7)
	ranges_n_7[i] <- max(x) - min(x)
}
結果図示
library(RColorBrewer)
cols <- brewer.pal(8, "Set2")

par(mfrow=c(2, 3))

hist(ranges_n_2, breaks = seq(0, 1, 0.05), probability = T)
curve(dbeta(x, 1, 2), add = T, col = cols[1], lwd = 2)

hist(ranges_n_3, breaks = seq(0, 1, 0.05), probability = T)
curve(dbeta(x, 2, 2), add = T, col = cols[2], lwd = 2)

hist(ranges_n_4, breaks = seq(0, 1, 0.05), probability = T)
curve(dbeta(x, 3, 2), add = T, col = cols[3], lwd = 2)

hist(ranges_n_5, breaks = seq(0, 1, 0.05), probability = T)
curve(dbeta(x, 4, 2), add = T, col = cols[4], lwd = 2)

hist(ranges_n_6, breaks = seq(0, 1, 0.05), probability = T)
curve(dbeta(x, 5, 2), add = T, col = cols[5], lwd = 2)

hist(ranges_n_7, breaks = seq(0, 1, 0.05), probability = T)
curve(dbeta(x, 6, 2), add = T, col = cols[6], lwd = 2)