コルモゴロフ=スミルノフ統計量おまけ(連検定)

  • こちらにもあるように。
  • 2標本が同一母集団から取られているとすると、それらを併せて順序をつけると、第1群、第2群としたときに1,2,2,1,1,1,1,1,2,2,1,2,2,みたいな1,2の数値列ができるけれど、この1,2がばらばらなのか、という検定をすることでも検定可能
  • これを連検定という
  • Rではtseriesパッケージのruns.test()関数
  • 両者、それなりのp値分布を返すようだが、両者のp値の間の相関はよくない

library(tseries)

n1 <- 100
n2 <- 100

n.iter <- 1000
p.ks <- p.runs <- rep(NA,n.iter)

for(i in 1:n.iter){
	x1 <- rnorm(n1)
	x2 <- rnorm(n2,mean = 0.2,sd=1)
	x <- c(x1,x2)
	col <- c(rep(1,n1),rep(2,n2))[order(x)]

	#plot(rep(1,n1+n2),col=col,cex=0.1)

	runs.out <- runs.test(as.factor(col))
	ks.out <- ks.test(x1,x2,exact=TRUE)
	p.ks[i] <- ks.out$p
	p.runs[i] <- runs.out$p
}

par(mfcol=c(2,2))
plot(p.ks,p.runs)
hist(p.ks)
hist(p.runs)
matplot(apply(cbind(p.ks,p.runs),2,sort),type="l")