K060 中心極限定理clt
- 7. 7
u2 <- function(z)
switch(length(which(c((z >= 0), (z >= 1), (z > 2)))) + 1, 0, z, 2 - z, 0)
u2s <- function(z)
u2(z / sqrt(6) + 1) / sqrt(6)
x <- seq(-3, 3, length = 101)
plot(x, sapply(x, u2s), type = "l")
curve(dnorm, -3, 3, add = T, col = 2)
u3 <- function(z)
switch(length(which(c((z >= 0), (z >= 1), (z > 2), (z > 3)))) + 1,
0, z^2 / 2, -z^2 + 3 * z - 3 / 2, (z - 3)^2 / 2, 0)
u3s <- function(z)
u3(1.5 + (z * 0.5))* 0.5
x <- seq(-3, 3, length = 101)
plot(x, sapply(x, u3s), type = "l", ylim = c(0, 0.4))
curve(dnorm, -3, 3, add = T, col = 2)
- 11. 11中心極限定理のシミュレーション(一様分布の場合)
n <- 10
nsim <-1000
rslt <- apply(sapply(rep(n, nsim), runif),
2, mean)
rslt
rslt <- c()
n <- 10
nsim <-1000
for(i in 1:nsim){
rslt[i] <- mean(runif(n))
}
rslt
stdata <- scale(rslt)
hist(stdata, nclass = 20, xlim = c(-4, 4),
freq = F)
curve(dnorm, -4, 4, add = T, col = 2)
nsim 個の平均の
値の平均と標準
偏差を求め,基
準化する
標準正規分布の密
度関数を重ね書き
して,正規分布へ
の収束の度合いを
眺める
- 12. 12中心极限定理のシミュレーション(一様分布の場合)
cltplot <- function(data, n){
hist(scale(data), nclass = 20, xlim = c(-4, 4),
ylim = c(0, 0.5), freq = F, main = paste("N =" , n))
curve(dnorm, -4, 4, col = 2, add = T)
}
clturand <- function(n, nsim){
if(n == 1)
result <- apply(matrix(sapply(rep(n, nsim), runif), n, nsim), 2, mean)
else
result <- apply(sapply(rep(n, nsim), runif), 2, mean)
cltplot(result, n)
}
- 14. 14n を変化させる
nsim<-1000
cltunif <- function(nmax){
for(i in 1:nmax){
if (options()$device == "X11")
X11()
if (options()$device == "windows")
win.graph()
clturand(i, nsim)
}
}
> cltunif(5)
nsim を 100 や 500 に変えてみて
収束の具合を見る
どのぐらいで収束しているか見よ
う。
出てきたグラフをすべて削除するに
は, graphics.off()
- 15. 15一様分布だけではなく,分布を指定する
source(“dist.r”)
cltrand <- function(n, nsim, rdist){
if(n == 1)
result <- apply(matrix(sapply(rep(n, nsim), rdist), n, nsim), 2, mean)
else
result <- apply(sapply(rep(n, nsim), rdist), 2, mean)
cltplot(result, n)
}
clt <- function(nmax, rdist){
for(i in 1:nmax){
if (options()$device == "X11")
X11()
if (options()$device == "windows")
win.graph()
cltrand(i, nsim, rdist)
}
}
- 16. 16使い方
? 教科書 95 ページ参照
? 二次分布の場合
clt(5, rquad)
N = 5
scale(data)
Density
-4 -2 0 2 4
0.00.10.20.30.40.5
N = 1
scale(data)
Density
-4 -2 0 2 4
0.00.10.20.30.40.5