[这里似乎有很多类似的问题,所以如果已经回答,请指出正确的方向,但我认为这是合理的区分。]
在 Kruskal-Wallis 测试之后,有许多不同的事后分析实现。我试图了解它们是如何(为什么?)不同的,以了解何时一个可能是正确的选择。
在 R 中工作,考虑这个模拟数据集
generate.sim.data<-function(seed){
set.seed(seed)
sim1<-rnorm(20,4,3)
sim2<-rnorm(20,7,3)
sim3<-rnorm(20,1,3)
sim4<-rnorm(20,1,3)
simdata<-c(sim1,sim2,sim3,sim4)
simgroup<-c(rep(c("sim1","sim2","sim3","sim4"),each=20))
data.frame(simdata,simgroup)
}
kruskal包中的功能agricolae;kruskalmcin the package pgirmess、posthoc.kruskal.nemenyi.testin the packagePMCMR和dunn.testin the packagedunn.test都给出不同的统计信息(对于任何输入)。对于某些值,它们还在成对比较中给出不同的结果
sim<-generate.sim.data(123)
kruskal(sim$simdata,sim$simgroup,console=T) #a,b,c,c
kruskalmc(sim$simdata,sim$simgroup) #a,a,b,b
posthoc.kruskal.nemenyi.test(sim$simdata,sim$simgroup) #a,a,b,b
dunn.test(sim$simdata,sim$simgroup) #a,b,c,c
但在一些更明确的情况下同意:
sim<-generate.sim.data(321)
kruskal(sim$simdata,sim$simgroup,console=T) #a,a,b,b
kruskalmc(sim$simdata,sim$simgroup) #a,a,b,b
posthoc.kruskal.nemenyi.test(sim$simdata,sim$simgroup) #a,a,b,b
dunn.test(sim$simdata,sim$simgroup) #a,a,b,b
似乎kruskalmcandposthoc.kruskal.nemenyi.test无论如何都会给出相似的结果,并且kruskalanddunn.test往往会给出相似的结果,但后者并非总是如此,例如
sim<-generate.sim.data(4444)
kruskal(sim$simdata,sim$simgroup,console=T) #a,b,c,c
kruskalmc(sim$simdata,sim$simgroup) #ac,a,b,bc
posthoc.kruskal.nemenyi.test(sim$simdata,sim$simgroup) #ac,a,b,bc
dunn.test(sim$simdata,sim$simgroup) #ac,b,c,c
我意识到我对基于非常接近 0.05 的 p 值的测试的一些不同行为持怀疑态度,但这些测试也确实为真实数据集提供了不同的诊断(例如,observation~method来自 中的corn数据agricolae;occupation~eligibility来自 中的homecare数据dunn.test)。我想知道测试之间的潜在差异是什么,以及是否有一个合理的标准来选择一个而不是另一个。