2015-12-06 25 views
2

我使用簡單的數據集進行成對Wilcoxon檢驗,得到令人驚訝的結果。使用全套(A,B和C)比較A組和C組返回的P值不同於將A和C與數據子集(僅限A和C組)進行比較。Wilcoxon秩和檢驗

dfx <- data.frame(group = c(rep('A', 8), rep('B', 15), rep('C', 6)), sex = sample(c("M", "F"), size = 29, replace = TRUE), age = runif(n = 29, min = 18, max = 54)) 
pairwise.wilcox.test(dfx$age, dfx$group, pool.sd=F, paired=F) 

Pairwise comparisons using Wilcoxon rank sum test 
data: dfx$age and dfx$group 
    A B 
B 0.55 - 
C 0.13 0.19 
P value adjustment method: holm 

dfx.ac<-dfx[which(dfx$group!='B'),] 
pairwise.wilcox.test(dfx.ac$age, dfx.ac$group, pool.sd=F, paired=F) 

Pairwise comparisons using Wilcoxon rank sum test 
data: dfx.ac$age and dfx.ab$group 
    A  
C 0.043 
P value adjustment method: holm 

對單個數據使用Wilcoxon測試會返回相同的p值。

a<-dfx[which(dfx$group=='A'),]$age 
c<-dfx[which(dfx$group=='C'),]$age 
wilcox.test(a,c) 
W = 8, p-value = 0.04262 

wilcox.test(dfx.ac$age~dfx.ac$group) 
W = 8, p-value = 0.04262 

,該怎麼辦錯pairwise.wilcox.test(DFX $年齡,DFX $組,pool.sd = F,配對= F)?

如果我比較一組3組或4組,則差異相同。 ('A',8),代表('B',15),代表('C',6),代表('D',9)),數據框( 組) 性別=樣品(C( 「M」, 「F」),大小= 38,替換= TRUE), 年齡= runif(N = 38,最小= 18,最大值= 54))

dfx.nb<-dfx[which(dfx$group!='B'),] 

pairwise.wilcox.test(dfx$age,dfx$group, pool.sd=F, paired=F) 
    A B C 
B 1.00 - - 
C 0.57 0.62 - 
D 0.56 0.56 1.00 

pairwise.wilcox.test(dfx.nb$age,dfx.nb$group, pool.sd=F, paired=F) 
    A C 
C 0.28 - 
D 0.28 0.95 

回答

4

檢查?pairwise.wilcox.test。該功能對多重比較進行修正,從而解決差異。

編輯補充:

當你做一個比較,那麼P p值可以被解釋爲沒有效果的零假設下獲得的觀測數據的概率等於P 。因此,如果我們要確保在無效假設下觀察我們的數據的概率小於0.05,我們只需檢查是否p<0.05(在統計中,我們稱爲顯着性閾值alpha,並且經常是感興趣的是p < alpha=0.05)。但是如果你比較大量的組,那麼你會發現至少有一個的p值小於alpha的概率遠遠大於alpha!

例如,假設我做了兩個獨立的比較。如果零假設爲真,那麼每個產生小於alpha=0.05的p值的概率爲0.05。但至少其中一個將產生小於alpha=0.05的p值的機會是1-0.95*0.95 = 0.0975。所以我們幾乎有一個十分之一的I型錯誤機會(如果零假設是正確的)。如果我們進行100次比較,如果我們不加批判地解釋我們的p值,我們幾乎可以確定我們會犯第一類錯誤。

爲了避免這種情況,我們可以「調整」p值以確保控制I型錯誤率。被稱爲Bonferroni修正的最保守的選擇是調整alpha除以我們執行的比較次數(其效果類似於將p值乘以比較次數)。

pairwise.wilcox.test會自動調整p值,以便它們可以解釋爲針對alpha=0.05而不會嚴重誇大I型錯誤率。您進行的比較越多,爲了控制類型1錯誤率,需要調整的p值越多。 [順便說一句,請注意修正有點複雜,因爲三次比較不再完全獨立(可以通過注意(a > b) & (b > c)意味着a > c來看到這一點)。在實踐中,當我們進行調整時,我們通常不會考慮這種非獨立性。]

調整方法定義瞭如何估計必要的調整。改變調整方法會改變估計必要調整的細節,並可能改變你的p值。調整方法Holm據推測實施了Holm-Bonferroni method

+0

在這兩種情況下,我使用霍爾姆調整方法。唯一的區別是一組包含兩組,其他三組。我分別做了3組和4組。 – Pierre

+1

但是你在兩種情況下進行了不同數量的比較!我將在我的回答中添加多個測試更正的邏輯和目的的解釋。 –

+0

好吧,另一個調整函數會給出相同的結果嗎?我會比較所有的羣體,就好像我會用wilco.test來循環它們一樣。 – Pierre