分散の偏り

  • 遊び
  • 2x2分割表がある
  • カイ二乗統計量を計算することが多い
  • 群内分散と群間分散とも計算してその比をとったりしてみよう
n.iter <- 1000
chis <- ss <- ss2 <- rep(0,n.iter)

v <- sample(100:500,4)
m <- matrix(v,2,2)
a <- apply(m,1,sum)
b <- apply(m,2,sum)
m.e <- matrix(c(a[1]*b[1],a[1]*b[2],a[2]*b[1],a[2]*b[2]),2,2)/sum(v)

N <- 100
rs <- rep(0,n.iter)
for(i in 1:n.iter){
	r <- runif(1,-1,1)*100
	rs[i] <- r
	tmp.m <- m + matrix(c(r,-r,-r,r),2,2)
	chis[i] <- sum((tmp.m-m.e)^2/m.e)
	V.whole <- 2*(tmp.m[1,1]*tmp.m[1,2]+tmp.m[1,1]*tmp.m[2,2]+tmp.m[1,2]*tmp.m[2,1]+tmp.m[2,1]*tmp.m[2,2])
	V.1 <- 2*tmp.m[1,1]*tmp.m[1,2]
	V.2 <- 2*tmp.m[2,1]*tmp.m[2,2]
	U.1 <- 2*tmp.m[1,1]*tmp.m[2.1]
	U.2 <- 2*tmp.m[1,2]*tmp.m[2,2]
	ss[i] <- (V.whole-V.1-V.2)/V.whole
	ss2[i] <- (V.whole-U.1-U.2)/V.whole
}

plot(as.data.frame(cbind(chis,ss,ss2)))


plot(chis,ss)

plot(rs,chis/ss)