Wilcoxon秩和检验

时间:2015-12-06 13:26:47

标签: r

我正在使用简单的数据集进行成对的Wilcoxon测试并获得令人惊讶的结果。使用完整集(A,B和C)比较组A和C将返回与将A和C与数据子集(仅限A和C组)进行比较时不同的p值。

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 $ age,dfx $ group,pool.sd = F,配对= F)我做错了什么?

如果我比较一组3组或4组,则相同。     dfx&lt; - data.frame(     group = c(rep('A',8),rep('B',15),rep('C',6),rep('D',9)),     sex = sample(c(“M”,“F”),size = 38,replace = TRUE),     age = runif(n = 38,min = 18,max = 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

1 个答案:

答案 0 :(得分:4)

检查?pairwise.wilcox.test。此功能实现了多重比较的校正,这可以解释差异。

已编辑添加:

当您进行单一比较时,p值P可以解释为意味着在无效假设的无效假设下获得观察数据的概率等于P。因此,如果我们想确保在零假设无效的情况下观察我们的数据的概率小于0.05,我们只需检查是否p<0.05(在统计中,我们称之为重要性阈值alpha,并且经常对p < alpha=0.05)感兴趣。但是,如果你比较大量的群体,那么你发现至少一个 p值小于alpha的概率远大于alpha!

例如,假设我做了两次独立的比较。如果零假设为真,则每个假设的概率为0.05,产生的p值小于alpha=0.05。但至少其中一个产生的p值小于alpha=0.05的可能性为1-0.95*0.95 = 0.0975。因此,我们有几乎十分之一的I型错误机会(如果零假设是正确的)。如果我们进行100次比较,我们几乎可以肯定,如果我们不加批判地解释我们的p值,我们将提交类型I错误。

为避免这种情况,我们可以“调整”p值,以确保我们控制I类错误率。最保守的选择,称为Bonferroni校正,是将alpha除以我们执行的比较次数(其效果类似于将我们的p值乘以比较次数)。

pairwise.wilcox.test会自动调整p值,以便可以针对alpha=0.05对其进行解释,而不会严重夸大I类错误率。您进行的比较越多,为了控制类型1错误率,需要调整的p值越多。 [另外,请注意,更正有点复杂,因为三个比较不再完全相互独立(您可以通过注意(a > b) & (b > c)暗示a > c)来看到这一点。实际上,我们在进行调整时通常不会考虑这种非独立性。]

调整方法定义了pairwise.wilcox.test估算必要调整的方式。更改调整方法将更改估计必要调整的详细信息,并可能更改您的p值。调整方法Holm可能会实现Holm-Bonferroni method