所有
我想在等级排序中位移测试中执行相当于TukeyHSD的操作,例如kruskal wallis
X=matrix(c(1,1,1,1,2,2,2,4,4,4,4,4,1,3,6,9,4,6,8,10,1,2,1,3),ncol=2)
anova=aov(X[,2]~factor(X[,1]))
TukeyHSD(anova)
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = X[, 2] ~ factor(X[, 1]))
##
## $`factor(X[, 1])`
## diff lwr upr p adj
## 2-1 1.25 -5.927068 8.427068 0.8794664
## 4-1 -1.35 -7.653691 4.953691 0.8246844
## 4-2 -2.60 -9.462589 4.262589 0.5617125
kruskal.test(X[,2]~factor(X[,1]))
##
## Kruskal-Wallis rank sum test
##
## data: X[, 2] by factor(X[, 1])
## Kruskal-Wallis chi-squared = 1.7325, df = 2, p-value = 0.4205
我现在想分析对比。请帮忙。谢谢。 瑞克
答案 0 :(得分:0)
如果您想在Kruskal-Wallis测试后进行多次比较,则需要kruskalmc
包中的pgirmess
函数。在实现此功能之前,您需要将矩阵转换为数据帧。在您的示例中:
# convert matrix to dataframe
dfx <- as.data.frame(X)
# the Kruskal-Wallis test & output
kruskal.test(dfx$V2~factor(dfx$V1))
Kruskal-Wallis rank sum test
data: dfx$V2 by factor(dfx$V1)
Kruskal-Wallis chi-squared = 1.7325, df = 2, p-value = 0.4205
# the post-hoc tests & output
kruskalmc(V2~factor(V1), data = dfx)
Multiple comparison test after Kruskal-Wallis
p.value: 0.05
Comparisons
obs.dif critical.dif difference
1-2 1.75 6.592506 FALSE
1-4 1.65 5.790265 FALSE
2-4 3.40 6.303642 FALSE
答案 1 :(得分:0)
如果您希望紧凑字母显示类似于从TukeyHSD输出的内容,对于Kruskal测试,库agricolae
允许使用函数kruskal
。使用您自己的数据:
library(agricolae)
print( kruskal(X[, 2], factor(X[, 1]), group=TRUE, p.adj="bonferroni") )
#### ...
#### $groups
#### trt means M
#### 1 2 8.50 a
#### 2 1 6.75 a
#### 3 4 5.10 a
(好吧,在这个例子中,这些组不被认为是不同的,结果与其他答案相同......)