rrus中的kruskal-wallis对比试验

时间:2015-04-26 05:28:56

标签: r rank contrast kruskal-wallis

所有

我想在等级排序中位移测试中执行相当于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

我现在想分析对比。请帮忙。谢谢。 瑞克

2 个答案:

答案 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

(好吧,在这个例子中,这些组不被认为是不同的,结果与其他答案相同......)