与 R 中的权重成对比较

问题描述 投票:0回答:1

我使用 R 中的调查包进行了加权 Kruskal Wallis 测试

结果显示组间有显着差异,但没有具体说明是哪些组。因此,我想跟进加权成对比较(事后测试)。

在 stats 包中,有一个“pairwise.wilcox.test”函数,它就是这样做的。但是,据我所知,它不允许使用权重。因此,我尝试通过分组变量的水平循环 weighted wilcoxon test - 但没有成功。即使这有效,我仍然需要手动调整所有 p 值以纠正多重比较......

因此我的问题是:如何在 R 中对权重进行成对比较?

r survey weighted posthoc kruskal-wallis
1个回答
0
投票

你没有说你尝试过循环关卡,也没有提供示例,而是使用帮助页面中的示例:

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
© www.soinside.com 2019 - 2024. All rights reserved.