x 6.18 3.76 5.15 4.02 2.52 1.41 3.36 8.67 9.36 y 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,并得出哪些组有显着差异。
谢谢!
答案 0 :(得分:4)
Kruskal-Wallis是一种非参数检验,可以比较多个群体,看是否有一个明显大于其他群体。它不会决定任何组中的特定值是否显着。
答案 1 :(得分:2)
您可以考虑首先查看均值(将此数据放入数据框“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
在包硬币中有一个基于排名的事后测试(如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.