対応のないt検定をシミュレーションする

MikuHatsune2011-09-17

遺伝学コースの、ただRだけをひたすらやる集中講義
やりたい検定、したい解析を見つける。
そのためにデータセットをシミュレーションして作る。
ということで、対応のないt検定をやろう。
 
とりあえず、t検定にたどり着くまでの
とてもちいさな、とてもおおきな、とてもたいせつな、あいとゆうきのおとぎばなし
 
データの確認。
2群作って、身長が収まっていることにしよう。
 
シミュレーションデータの作成。
片方は、平均と分散を与えて、正規分布から作成し、もう片方は、指数分布から作成する。
 
t検定を行うときに、平均、分散、分布でそれぞれ同じ、異なる、というパターンでやろう。
 
という訳で中身はできた。あとは、t検定をしてくれる関数を探そう。
 
帰無仮説としては、身長の平均に差はない、ということになろうか。
 
あとは、このシミュレーションを複数回行い、p値が一様に分布しているか確かめよう。

n1<- 25
n2<- 30
mean12<- c(160,170)
sd12<- c(10,30)
result_p<- rep(0,8)
set_mean<- c("MEAN","mean")
set_sd<- c("SD","sd")
set_dis<- c("DISTRIBUTION","distribution")
par(mfrow=c(2,4))
for(m in 1:2){
for(s in 1:2){
for(d in 1:2){
	if(d == 1){
		g1<- rnorm(n1,mean12[1],sd12[1])
		g2<- rnorm(n2,mean12[m],sd12[s])
	}else{
		g1<- rnorm(n1,1/mean12[1])
		g2<- rexp(n2,1/mean12[m])
	}
	p_value<- t.test(g1,g2)$p.value
	boxplot(g1,g2,frame=FALSE,axes=FALSE,xlab=paste("p=",p_value))
	axis(2)
	title(paste(set_mean[m],set_sd[s],set_dis[d]))
}
}
}