####################################### # 中心極限定理の確認 # カイ二乗分布の平均 # 密度関数のグラフの確認 curve(dchisq(x,1), xlim=c(0.01,20),ylim=c(0,1)) curve(dchisq(x,2),add=T,col=2, xlim=c(0.01,20),ylim=c(0,1)) curve(dchisq(x,5),add=T,col=3, xlim=c(0.01,20),ylim=c(0,1)) curve(dchisq(x,10),add=T,col=4, xlim=c(0.01,20),ylim=c(0,1)) # chi_mean(自由度, 標本数, 要素数) chi_mean <- function(df,n,N){ chim <- numeric(N) for (i in 1:N){ chim[i] <- mean(rchisq(n,df)) } return(chim) } # 自由度1の平均からなるベクトルの生成 x2 <- chi_mean(1,2,1000) x5 <- chi_mean(1,5,1000) x10 <- chi_mean(1,10,1000) x20 <- chi_mean(1,20,1000) x30 <- chi_mean(1,30,1000) x <- cbind(x2,x5,x10,x20,x30) summary(x) # ヒストグラム情報の取得 hx2 <- hist(x2,breaks=seq(0,7,0.2)) hx5 <- hist(x5,breaks=seq(0,4,0.2)) hx10 <- hist(x10,breaks=seq(0,3,0.2)) hx20 <- hist(x20,breaks=seq(0,3,0.2)) hx30 <- hist(x30,breaks=seq(0,2,0.2)) # ヒストグラムの折れ線表示 plot(0,0,type="n", xlim=c(0,5),ylim=c(0,1.5), xlab="",ylab="") lines(hx2$mids,hx2$density,col=1) lines(hx5$mids,hx5$density,col=2) lines(hx10$mids,hx10$density,col=3) lines(hx20$mids,hx20$density,col=4) lines(hx30$mids,hx30$density,col=5) # 標準化 nor_chim <- function(x,df,n){ (x-df)/sqrt(2*df/n)} nor_x2 <- nor_chim(x2,1,2) nor_x5 <- nor_chim(x5,1,5) nor_x10 <- nor_chim(x10,1,10) nor_x20 <- nor_chim(x20,1,20) nor_x30 <- nor_chim(x30,1,30) nor_xchi <- cbind(nor_x2,nor_x5, nor_x10,nor_x20,nor_x30) summary(nor_xchi) # ヒストグラム情報の取得 nor_hx2 <- hist(nor_x2,breaks=seq(-1,8,0.5)) nor_hx5 <- hist(nor_x5,breaks=seq(-2,6,0.5)) nor_hx10 <- hist(nor_x10,breaks=seq(-2,5,0.5)) nor_hx20 <- hist(nor_x20,breaks=seq(-3,5,0.5)) nor_hx30 <- hist(nor_x30,breaks=seq(-3,4,0.5)) # 標準化データでヒストグラムの折れ線表示 plot(0,0,type="n", xlim=c(-5,5),ylim=c(0,.5), xlab="",ylab="") lines(nor_hx5$mids,nor_hx5$density,col=1) lines(nor_hx10$mids,nor_hx10$density,col=2) lines(nor_hx30$mids,nor_hx30$density,col=3) curve(dnorm(x,0,1),xlim=c(-5,5), ylim=c(0,0.5),add=T) # 標準化しないで、n=30 の場合の棒グラフ hist(x30,breaks=seq(0,2,0.1),freq=F) curve(dnorm(x,1,sqrt(2/30)),add=T)