# 信頼区間を求めるプログラム(分散既知) conf.interval<-function(x,conf,sigma2){ n <-length(x) alpha<-1-conf k<-qnorm(1-alpha/2,0,1) barx<-mean(x) mL<-barx-k*sqrt(sigma2/n) mU<-barx+k*sqrt(sigma2/n) return(c(mL,mU)) } # 信頼区間の複数を求めるプログラム(分散既知) sim.conf.interval<-function(nsim,n,conf,sigma2){ result<-c() for (i in 1: nsim){ result<-rbind(result, conf.interval(rnorm(n,0,sqrt(sigma2)),conf,sigma2)) } return(result) } # 信頼区間の複数をグラフに出力するプログラム(分散既知) plot.conf.interval<-function(r){ nsim<-nrow(r) gx<-c(0,0) gy<-c(0,nsim) rft<-apply(r,1,prod)>0 plot(gx,gy,type="l",xlim=range(-2,2),ylim=range(0,nsim)) for ( i in 1:nsim){ if(!rft[i]) lines(c(r[i,1],r[i,2]),c(i,i),col=2) else lines(c(r[i,1],r[i,2]),c(i,i),col=3) } cat(length(which(rft)),"intervals.\n") } # 信頼区間の複数を求めるプログラム(分散未知) sim.t.conf.interval<-function(nsim,n,conf){ result<-c() for (i in 1:nsim){ result<-rbind(result,t.test(rnorm(n),conf.level=conf)$conf.int) } return(result) }