首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两种统计函数在wilcoxon检验中的差异

两种统计函数在wilcoxon检验中的差异
EN

Stack Overflow用户
提问于 2019-09-02 19:00:56
回答 1查看 60关注 0票数 0

我知道stats::wilcox.test和stats::pairwise.wilcox.test之间的主要区别是计算p.adjust值。该值仅由stats::pairwise.wilcox.test在一步中计算得出。但是当我在下面的代码中得到一个错误的时候,有一些东西被连接起来了。我希望得到相同的结果,但它得到了组大小的错误?!

代码语言:javascript
复制
df <- dataframe(group = c(rep("before",5), rep("after",5)),
                a = runif(1:10),
                b = runif(1:10),
                c = runif(1:10))
#wilcox.test withour error
df %>%
   summarise_each(funs(wilcox.test(.[group == "before"], .[group == "after"], 
                                   paired = TRUE)$p.value), vars = a:c)

#pairwise.wilcox.test with error
df %>%
   summarise_each(funs(pairwise.wilcox.test(.[group == "before"], .[group == "after"])), 
                  vars = a:c)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-02 19:11:57

您的代码有多个问题。因此,我会尝试这样做:

首先,使用简单的子集来检查函数和结果

代码语言:javascript
复制
wilcox.test(a ~ group, df)
pairwise.wilcox.test(df$a, df$group, p.adjust.method = "none") 

然后,尝试tidyverse

代码语言:javascript
复制
df %>% 
  gather(key, value, -group) %>% 
  group_by(key) %>% 
  summarise(pvalue = wilcox.test(value ~ group)$p.value)
# A tibble: 3 x 2
  key   pvalue
  <chr>  <dbl>
1 a     0.0916
2 b     0.386 
3 c     0.969

绝对不需要使用成对版本,因为您的数据中只有两个组值。如果您坚持使用总结,请尝试

代码语言:javascript
复制
df %>% 
  summarise_at(vars(-1), list(~wilcox.test(. ~ group)$p.value))
           a         b         c
1 0.09155406 0.3858534 0.9693262

使用的数据

代码语言:javascript
复制
set.seed(123)
df <- data.frame(group = c(rep("before",5), rep("after",5)),
                a = runif(50),
                b = runif(50),
                c = runif(50))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57755794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档