母分散が未知のときの平均値の検定のシミュレーション

母分散が未知のときの平均値の検定に使う検定量はサンプルの大きさをnとすると、自由度n-1のt分布に従うことが計算から分かります。これをR言語で、以下のコードで確かめることができます。このコードではn=20の場合にあたります。

# test_t.R
size <- 10000
sample_size <- 20
mu <- 50
sigma <- 10
ts <- numeric(length=size)
for(i in 1:size) {
  sample <- rnorm(n=sample_size, mean=mu, sd=sigma)
  xbar <- mean(sample)
  z <- (xbar - mu)/sqrt(sigma^2 /sample_size)
  y <- sum((sample - xbar)^2/sigma^2)
  ts[i] <- z/sqrt(y/(sample_size-1))
}

これを、自由度19のt分布と比較します。

> png("sample_t.png")
> hist(ts, freq=FALSE)
> curve(dt(x, 19), add=TRUE)
> dev.off()

f:id:nabeyang:20130327175808p:plain