等分散の仮定とvQTL

MikuHatsune2013-04-23

phenotype分散について、

平均値は同じで分散が違う、というこの記事のようなデータを解析すると、どうなるんでしょう、そして、その結果とvQTLの結果とはどういう関係になっているんでしょう…

という話が出たのでシミュレーションしてみる。

niter <- 2000 # シミュレーション回数
s0 <- 3 # 母集団からのサンプル数
m0 <- 5 # 正規分布の平均
sd0 <- 1 # 片方の母集団の分散
sd1 <- c(1, 2, 5, 10, 50, 100, 500, 1000) # 他群の母集団の分散
g0 <- rep(1:2, each = s0) # 群分け

par(mfrow = c(2, 4))
for(j in seq(length(sd1))){
	res0 <- matrix(0, nr=niter, nc=2)
	for(i in seq(niter)){
		tmp0 <- mapply(rnorm, s0, m0, c(sd0, sd1[j]))
		for(v0 in seq(2)){ # 当分散を仮定するかしないかで t.test を行う。
			res0[i, v0] <- t.test(c(tmp0) ~ g0, var.equal = c(FALSE, TRUE)[v0])$p.value
		}
	}
	xl <- yl <- c(0, 1)
	plot(res0, cex=0.2, xlim=xl, ylim=yl, xlab="var.equal = FALSE", ylab="var.equal = TRUE")
	title(paste("Population SD is different", sd1[j]/sd0, "fold"))
	abline(0, 1, lty=2)
}

母集団SD比が大きいと、等分散を仮定したときにp値が小さくなりやすい。
またそのp値の小さくなりやすい具合は、p値が小さいときに影響が大きい。
p値が0.05を下回ってくれないときに小細工したい人が使いそうな手段だな…

vQTLは…どうだろう?