【问题标题】:significant difference tests between independent groups in RR中独立组之间的显着差异检验
【发布时间】:2012-08-30 16:05:09
【问题描述】:
× 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 并得到哪个组显着不同。

谢谢!

【问题讨论】:

  • 你得到了反对票,因为你的问题对于它的目标不是很清楚。如果我已经(或没有)正确解释了您的意图,您应该做出适当的说明。
  • 我建议转帖到stats.stackexchange.com
  • 如果您喜欢@DWin 的回答,您可以改写您的标题(和问题)以指定“post hoc 组间成对差异测试”(而不是“如何使用 Kruskal-Wallis”(您已经证明可以这样做)和“原始数据中的重要值”(很难以任何合理的方式解释)
  • @S4M。你不是第一个这样建议的人:stackoverflow.com/questions/12287924/…
  • “找出这四个组之间的不同值”是什么意思?找出不太可能来自其他组,但一个组范围内的值?还是什么?

标签: r anova


【解决方案1】:

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

【讨论】:

  • 谢谢。但是如果我想得到一些特定的值,有没有什么测试可以做到这一点?
  • 您能解释一下您所说的单个重要值是什么意思吗?你在寻找异常值吗?还是……??
  • 谢谢,在这里讨论后我在这里改变了我的问题。
  • @user1586241:您还想要对哪些组不同的非参数测试吗?没有迹象表明您显示的任何组都不是正态分布的(您可以通过shapiro.test(x) 来查看)
【解决方案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.

【讨论】:

  • 非常感谢,我只是试着理解一下
  • 嗨 DWin,我想你明白我的想法。我只是想问一个技术问题。如何将我的数据(我在我的问题中更正)更改为数据框,然后可以在您的方法聚合中使用。谢谢!
猜你喜欢
  • 1970-01-01
  • 2015-01-09
  • 2020-10-03
  • 2010-10-29
  • 2013-01-19
  • 1970-01-01
  • 1970-01-01
  • 2012-12-20
  • 2016-06-12
相关资源
最近更新 更多