Wilcoxon Rank Sum Test
由于樣本均數(shù)、標準差對離群值很敏感偶摔,而t檢驗是基于這些統(tǒng)計量進行的暇唾,所以t檢驗也對離群值比較敏感。此時辰斋,可以選擇使用Wilcoxon rank test進行統(tǒng)計檢驗策州。Wilcoxon rank test檢驗的基本思想是:
1)合并所有數(shù)據(jù);
2)將數(shù)據(jù)轉(zhuǎn)換為秩次宫仗;
3)將秩次放回原組中够挂;
4)計算秩次之和或平均值并進行檢驗。
具體過程:
set.seed(779) ##779 picked for illustration purposes
#生成滿足正態(tài)分布的2組數(shù)據(jù)锰什,每組25個值
N=25
x<- rnorm(N,0,1)
y<- rnorm(N,0,1)
#更改x的某個值下硕,模擬離群值
x[1] <- 5
x[2] <- 7
library(rafalib)
mypar(1,2)
#繪制點帶圖丁逝,就是把點繪制在一條線段
stripchart(list(x,y),vertical=TRUE,ylim=c(-7,7),ylab="Observations",pch=21,bg=1)
abline(h=0)
#將x和y混在一起進行排序,返回每個值得秩次后放回原來的組
xrank <- rank(c(x,y))[seq(along=x)]
yrank <- rank(c(x,y))[-seq(along=y)]
#繪制點帶圖
stripchart(list(xrank,yrank),vertical=TRUE,ylab="Ranks",pch=21,bg=1,cex=1.25)
#將x中的元素一個一個拿出來與y放一起進行排序梭姓,求x的秩次霜幼,但是為啥減一?誉尖?罪既??铡恕?
ws <- sapply(x,function(z) rank(c(z,y))[1]-1)
#在點帶圖上添加文字琢感,文字內(nèi)容是ws
text( rep(1.05,length(ws)), xrank, ws, cex=0.8)
stripchart.png
W <- sum(ws)
W是第一組中每個元素相對第二組的秩次之和,我們可以基于組合數(shù)學去計算W的p值探熔,還可以利用CLT理論去計算驹针,因為根據(jù)CLT理論,W大致滿足正態(tài)分布诀艰。我們可以構(gòu)建一個z-score柬甥,如下:
n1<-length(x);n2<-length(y)
Z <- (mean(ws)-n2/2)/ sqrt(n2*(n1+n2+1)/12/n1)
print(Z)
## [1] 1.523124
由于Z不夠大所以得出的p值大于0.05,上述過程便是R中wilcox.test
函數(shù)的計算過程的一部分其垄。