ウィルコクスンの符合付き順位検定 # ウィルコクスンの符合付き順位和検定 # データが次のように与えられているとして tmpC <- c(54,49,73,65,89,85,78,93,60,79,84) tmpD <- c(61,47,64,60,77,85,70,95,56,73,79) # 差を求める tmpCD <- tmpC -tmpD # 差の絶対値を昇順に並べる rankCD <- rank(abs(tmpCD[tmpCD != 0])) # 差の絶対値を昇順に並べる # ただし 0 は含まない N <- length(rankCD) tmpFlag <- ifelse( tmpCD[tmpCD != 0] > 0, -1, 1) # 差の符号を取得 length(tmpCD) # 符号付きランクを作成 rankCD <- rankCD * tmpFlag Tplus <- sum(rankCD[rankCD>0]) Tminus <- sum(rankCD[rankCD<0])*-1 Tsmall <- ifelse(Tplus > Tminus, Tminus, Tplus) # この数値が表に記載の数値よりも小さければ有意 # 正規近似する場合は (wilcoxZ <- abs(Tsmall - N*(N+1)/4) / sqrt( N*(N+1)*(2*N+1) /24 )) あるいは (wilcoxZ <- sum(rankCD) / sqrt(sum(rankCD^2))) pnorm(wilcoxZ,0,1) * 2 # 片側なら 2 倍する