我正在使用简单的数据集进行成对的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 < - 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 回答
检查
?pairwise.wilcox.test
. 此功能实现了多重比较的校正,这可以解释差异 .Edited to add:
当您进行单一比较时,
P
的p值可以被解释为意味着在无效的零假设下获得观察数据的概率等于P
. 因此,如果我们想确保在零假设无效的情况下观察我们的数据的概率小于0.05
,我们只需要检查是否p<0.05
(在统计中,我们称之为重要性的阈值alpha
,并且经常是感兴趣的是p < alpha=0.05
) . 但是如果你比较大量的组,那么你发现 at least one p值小于alpha
的概率远大于alpha!例如,假设我做了两次独立的比较 . 如果零假设为真,则每个假设的概率为0.05,产生的p值小于
alpha=0.05
. 但 at least one of them 产生p值小于alpha=0.05
的可能性是1-0.95*0.95 = 0.0975
. 因此,我们有几乎十分之一的I型错误机会(如果零假设是正确的) . 如果我们进行100次比较,我们几乎可以肯定,如果我们不加批判地解释我们的p值,我们将提交类型I错误 .为了避免这种情况,我们可以"adjust"的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 .