如何为 R 中的数据帧应用 dunn.test?
How to apply dunn.test for dataframes in R?
我有一个包含两列的 CSV 文件:组和权重。
我能够进行 Kruskal–Wallis 检验:
kruskal.test(Weight~Group, data=Data.df)
我想计算与对照组(有不同处理)的成对多重比较。我试过 dunn.test.control
,但我只得到错误。我认为我没有正确使用命令。
知道我做错了什么吗?请随意展示一个例子!
如果您包含一些数据(或使用 R 中已有的数据说明您的问题(参见 data()
),您会得到更好的响应),显示无效代码和错误消息, 并指出给你带来麻烦的函数来自哪个包,因为 dunn.test.control
不包含在 R 中,而是在 PMCMR
包中。例如,我们可以使用 R 中包含的 iris
数据集(?iris
获取信息):
kruskal.test(Sepal.Width~Species, iris)
#
# Kruskal-Wallis rank sum test
#
# data: Sepal.Width by Species
# Kruskal-Wallis chi-squared = 63.571, df = 2, p-value = 1.569e-14
说明有显着差异。现在进行邓恩测试:
library(PMCMR)
dunn.test.control(iris$Sepal.Width, iris$Species)
#
# Pairwise comparisons using Dunn's-test for multiple
# comparisons with one control
#
# data: iris$Sepal.Width and iris$Species
#
# setosa
# versicolor 1.4e-14
# virginica 7.7e-08
没有错误消息,所以您可能没有正确指定测试。但这不是成对测试。你可能想要
posthoc.kruskal.dunn.test(iris$Sepal.Width, iris$Species)
#
# Pairwise comparisons using Dunn's-test for multiple
# comparisons of independent samples
#
# data: iris$Sepal.Width and iris$Species
#
# setosa versicolor
# versicolor 2.0e-14 -
# virginica 1.5e-07 0.016
#
# P value adjustment method: holm
# Warning message:
# In posthoc.kruskal.dunn.test.default(iris$Sepal.Width, iris$Species) :
# Ties are present. z-quantiles were corrected for ties.
注意警告信息。测试运行,但无法计算准确的概率,因为存在并列排名。其中两个比较非常小,除非您的样本量很小,否则关系不是一个因素。我更喜欢 DescTools
中的测试版本,因为它还显示了每对之间的平均排名差异:
library(DescTools)
DunnTest(Sepal.Width~Species, iris)
#
# Dunn's test of multiple comparisons using rank sums : holm
#
# mean.rank.diff pval
# versicolor-setosa -67.38 2.0e-14 ***
# virginica-setosa -46.50 1.5e-07 ***
# virginica-versicolor 20.88 0.0158 *
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
我有一个包含两列的 CSV 文件:组和权重。 我能够进行 Kruskal–Wallis 检验:
kruskal.test(Weight~Group, data=Data.df)
我想计算与对照组(有不同处理)的成对多重比较。我试过 dunn.test.control
,但我只得到错误。我认为我没有正确使用命令。
知道我做错了什么吗?请随意展示一个例子!
如果您包含一些数据(或使用 R 中已有的数据说明您的问题(参见 data()
),您会得到更好的响应),显示无效代码和错误消息, 并指出给你带来麻烦的函数来自哪个包,因为 dunn.test.control
不包含在 R 中,而是在 PMCMR
包中。例如,我们可以使用 R 中包含的 iris
数据集(?iris
获取信息):
kruskal.test(Sepal.Width~Species, iris)
#
# Kruskal-Wallis rank sum test
#
# data: Sepal.Width by Species
# Kruskal-Wallis chi-squared = 63.571, df = 2, p-value = 1.569e-14
说明有显着差异。现在进行邓恩测试:
library(PMCMR)
dunn.test.control(iris$Sepal.Width, iris$Species)
#
# Pairwise comparisons using Dunn's-test for multiple
# comparisons with one control
#
# data: iris$Sepal.Width and iris$Species
#
# setosa
# versicolor 1.4e-14
# virginica 7.7e-08
没有错误消息,所以您可能没有正确指定测试。但这不是成对测试。你可能想要
posthoc.kruskal.dunn.test(iris$Sepal.Width, iris$Species)
#
# Pairwise comparisons using Dunn's-test for multiple
# comparisons of independent samples
#
# data: iris$Sepal.Width and iris$Species
#
# setosa versicolor
# versicolor 2.0e-14 -
# virginica 1.5e-07 0.016
#
# P value adjustment method: holm
# Warning message:
# In posthoc.kruskal.dunn.test.default(iris$Sepal.Width, iris$Species) :
# Ties are present. z-quantiles were corrected for ties.
注意警告信息。测试运行,但无法计算准确的概率,因为存在并列排名。其中两个比较非常小,除非您的样本量很小,否则关系不是一个因素。我更喜欢 DescTools
中的测试版本,因为它还显示了每对之间的平均排名差异:
library(DescTools)
DunnTest(Sepal.Width~Species, iris)
#
# Dunn's test of multiple comparisons using rank sums : holm
#
# mean.rank.diff pval
# versicolor-setosa -67.38 2.0e-14 ***
# virginica-setosa -46.50 1.5e-07 ***
# virginica-versicolor 20.88 0.0158 *
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1