-4
× 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 并得到哪个组显着不同。

谢谢!

4

2 回答 2

4

Kruskal-Wallis 是一种非参数检验,它比较多个组以查看一个组是否显着大于其他组。它不决定任何组中的特定值是否重要。

于 2012-09-05T21:11:18.763 回答
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

在包 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.
于 2012-09-05T21:17:43.060 回答