岩原信九郎「ノンパラメトリック法」p.31
x <- c(2,4,5,10,16) y <- c(12,20,60,80,120,120) xy <- c(x,y) names(xy) <- c(rep("x",length(x)), rep("y",length(y))) rank(xy) (R1 <- sum( rank(xy)[names(rank(xy)) == "x"] )) (R2 <- sum( rank(xy)[names(rank(xy)) == "y"] )) (U1 <- length(x)*length(y) + ( length(x)*( length(x)+1)/2) - R1) (U2 <- length(x)*length(y) + ( length(y)*( length(y)+1)/2) - R2) U <- ifelse(U1 > U2, U2, U1)
# 近似法
# という名前だが n1, n2 > 20 なら近似的に正確な P 値を計算できるということ
CR <- (U - length(x)*length(y)/2) / sqrt(length(x)*length(y)*(length(x)+length(y)+1)/12) pnorm(CR) # 両側の場合 wilcox.test(x,y, corr = F)
corr は連続性の修正 岩原信九郎「ノンパラメトリック法」p.30 脚注参照.