× 6.18 3.76 5.15 4.02 2.52 1.41 3.36 8.67 9.36 是 9.39 13.50 10.80 12.70 14.70 13.40 10.10 4.12 10.30 z 6.35 3.90 5.32 5.08 8.38 5.84 3.96 3.78 b 1.15 2.26 1.47 1.93 1.25 2.87 4.19 2.55
我想比较 4 个组 x、y、z、b 并得到哪个组显着不同。
谢谢!
Kruskal-Wallis 是一种非参数检验,它比较多个组以查看一个组是否显着大于其他组。它不决定任何组中的特定值是否重要。
您可能会考虑首先查看方法(在将此数据放入数据框“datm”之后):
> aggregate(datm$value, datm['variable'], mean, na.rm=TRUE)
variable x
1 x 0.9566667
2 y 1.4277778
3 z 2.3700000
4 b 0.0787500
或在中位数:
> aggregate(datm$value, datm['variable'], median, na.rm=TRUE)
variable x
1 x 0.750
2 y 1.710
3 z 2.265
4 b 0.010
在包 coin 中有一个基于等级的事后测试(如 kruskal.test 是。)它实际上在 LocationTests 帮助页面的示例中,除了更改公式中的列名称外,无需修改即可复制和数据集名称。该页面没有被引用的作者,但软件包作者在这里:Torsten Hothorn、Kurt Hornik、Mark A. van de Wiel 和 Achim Zeileis:
### Nemenyi-Damico-Wolfe-Dunn test (joint ranking)
### Hollander & Wolfe (1999), page 244
### (where Steel-Dwass results are given)
if (require("multcomp")) {
NDWD <- oneway_test(value~variable, data = datm,
ytrafo = function(data) trafo(data, numeric_trafo = rank),
xtrafo = function(data) trafo(data, factor_trafo = function(x)
model.matrix(~x - 1) %*% t(contrMat(table(x), "Tukey"))),
teststat = "max", distribution = approximate(B = 90000))
### global p-value
print(pvalue(NDWD))
### DWin note: prints pairwise p-value for comparison of rankings
print(pvalue(NDWD, method = "single-step"))
}
#-----------------------
[1] 0
99 percent confidence interval:
0.000000e+00 5.886846e-05
y - x 0.8287000
z - x 0.1039889
b - x 0.1107667
z - y 0.5421778
b - y 0.0053000
b - z 0.0000000
为了回答评论中的问题,这就是我所做的:
dat <- read.table(text="x y z b
2.06 1.71 2.47 0.00
1.08 2.73 1.75 0.00
1.94 2.29 2.44 0.01
1.32 1.71 2.50 0.01
0.75 2.40 4.17 0.01
0.18 0.45 2.09 0.20
0.72 0.58 1.77 0.30
0.22 0.35 1.77 0.10
0.34 0.63 NA NA", header=TRUE)
require(reshape2)
#Loading required package: reshape2
datm <- melt(dat) # then proceeded as above.