首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我是否使用dunn.test函数遵循正确的过程?

我是否使用dunn.test函数遵循正确的过程?
EN

Stack Overflow用户
提问于 2018-04-20 22:43:58
回答 1查看 1K关注 0票数 1

我用kruskal.test测试了不同取样点的丰度值的差异。但是,我想确定站点之间的多重差异。

dunn.test函数可以选择使用带有分类向量的向量数据,或者使用公式表达式作为lm

我以在有许多列的数据框架中使用的方式编写函数,但我没有找到证实我的过程的示例。

代码语言:javascript
复制
library(dunn.test)

df<-data.frame(a=runif(5,1,20),b=runif(5,1,20), c=runif(5,1,20))

kruskal.test(df)

dunn.test(df)

我的结果是:

Kruskal-Wallis chi-平方= 6.02,df = 2,p-值= 0.04929 Kruskal-Wallis chi-平方= 6.02,df = 2,p-值= 0.05,按1到2 2.050609,0.0202在1和3 -0.141421之间,0.4438在2 -2.192031,0.0142之间。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-21 05:32:02

我看了你的代码,你就很接近了。一个问题是,您应该使用method参数指定一个用于多个比较的校正方法。

校正多个比较

对于您的示例数据,我将使用变体的错误发现率(FDR)。我认为这是数据良好表现的原因超出了StackOverflow的范围,但是您可以阅读更多关于它和其他纠正方法的here。我还建议你阅读相关的报纸,其中大部分是开放访问的。

代码语言:javascript
复制
library(dunn.test)

set.seed(711) # set pseudorandom seed

df <- data.frame(a = runif(5,1,20),
                 b = runif(5,1,20), 
                 c = runif(5,1,20))

dunn.test(df, method = "by") # correct for multiple comparisons using "B-Y" procedure

# Output
data: df and group
Kruskal-Wallis chi-squared = 3.62, df = 2, p-value = 0.16


                           Comparison of df by group                           
                             (Benjamini-Yekuteili)                             
Col Mean-|
Row Mean |          1          2
---------+----------------------
       2 |   0.494974
         |     0.5689
         |
       3 |  -1.343502  -1.838477
         |     0.2463     0.1815

alpha = 0.05
Reject Ho if p <= alpha/2

解释结果

每个单元格中的第一行为每个比较提供Dunn的成对z测试统计数据,第二行提供校正后的p值。

注意,经过多次比较修正后,在alpha值为0.05的情况下,没有一个配对测试是显着的,这并不奇怪,因为每个示例“站点”都是由完全相同的发行版生成的。我希望这是有帮助的。快乐的分析!

P.S.在未来,如果要使用runif (或任何其他类型的伪随机数生成)构造示例数据格式,则应该使用set.seed()。此外,如果您还有其他有关统计分析的问题,最好访问:https://stats.stackexchange.com/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49950604

复制
相关文章

相似问题

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