我使用 R 中的调查包进行了加权 Kruskal Wallis 测试
结果显示组间有显着差异,但没有具体说明是哪些组。因此,我想跟进加权成对比较(事后测试)。
在 stats 包中,有一个“pairwise.wilcox.test”函数,它就是这样做的。但是,据我所知,它不允许使用权重。因此,我尝试通过分组变量的水平循环 weighted wilcoxon test - 但没有成功。即使这有效,我仍然需要手动调整所有 p 值以纠正多重比较......
因此我的问题是:如何在 R 中对权重进行成对比较?
你没有说你尝试过循环关卡,也没有提供示例,而是使用帮助页面中的示例:
svyranktest(ell~stype, dclus1)
l<-c("E","M","H")
for(i in 1:2){
for(j in (i+1):3){
print(l[c(i,j)])
print(svyranktest(ell~stype, subset(dclus1, stype %in% l[c(i,j)])))
}
}
或者如果你想要对象中的 p 值
> l<-c("E","M","H")
> ps<-matrix(NA,3,3)
> dimnames(ps)<-list(l,l)
> for(i in 1:2){
+ for(j in (i+1):3){
+ ps[i,j]<-svyranktest(ell~stype, subset(dclus1, stype %in% l[c(i,j)]))$p.value
+
+ }
+ }
> ps
E M H
E NA 0.001687062 0.003378391
M NA NA 0.053809416
H NA NA NA
一旦你有了 p 值,你就可以调用
p.adjust
来获得任何你会使用 pairwise.wilcox.test
的 p 值调整
> p.adjust(ps[!is.na(ps)],method="hochberg")
[1] 0.005061186 0.006756783 0.053809416