0

我想对数据框执行非参数测试。我有三组A,B,C。我想现在 A/B、B/C 和 A/C 组之间的统计显着性。我怎样才能以非参数方式做到这一点?应用 Kruskal-Wallis-Test 时,我得到了组间的整体推断。这可作为对以下事后测试的保护。但是如何对非参数事后检验进行编程(使用 Kruskal-Wallis 或 Mann-Whitney-U)?

x<-c(1,2,3,4,5,6,7,8,9,NA,9,8)
y<-c(2,3,NA,3,4,NA,2,3,NA,2,3,4)
group<-rep((factor(LETTERS[1:3])),4)
df<-data.frame(x,y,group)
df
4

1 回答 1

2

好的,只是为了总结上面评论中的讨论,有几种(不太为人所知)的可能性来执行与 R-project 的多个非参数比较。我在上面的示例中包括了其中两个:

library(pgrimess)
library(nparcomp)

x<-c(1,2,3,4,5,6,7,8,9,NA,8,9)
y<-c(2,3,NA,3,4,NA,2,3,NA,2,3,4)
group<-rep((factor(LETTERS[1:3])),4)
df<-data.frame(x,y,group)


kruskal.test(df$x~df$group)
kruskalmc(df$x~df$group)

m<-nparcomp(x ~ group, data=df, asy.method = "probit", type = "Dunnett", control = "A", alternative = "two.sided", info = FALSE)
summary(m) 

nparcomp 显然更灵活,并允许大量的对比。这里我选择了 Dunnett 作为例子。

有一个建议的程序进行多次测试,根据几篇帖子,在大型数据集中出现了一些准确性问题。 https://stat.ethz.ch/pipermail/r-help/2012-January/300100.html

NDWD <- oneway_test(price ~ clarity, data = diamonds,
        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=1000))

    ### global p-value
    print(pvalue(NDWD))

    ### sites (I = II) != (III = IV) at alpha = 0.01 (page 244)
    print(pvalue(NDWD, method = "single-step"))

另一种可能性是 rms::polr 后跟 rms::contrasts,正如 Frank Harrell https://stat.ethz.ch/pipermail/r-help/2012-January/300329.html所建议的那样

最后,user1317221_G 包含了一些非常有用的链接,包括包含测试结果的箱线图https://stats.stackexchange.com/a/20133,更详细的箱线图高级绘图描述可在http://的进一步链接中找到egret.psychol.cam.ac.uk/statistics/R/graphs2.html

希望这可以解决该领域的几个问题。

于 2013-01-06T13:59:30.653 回答