我有来自5个发行版的5种方法: 意思 A组33 B组5500 C组33 D组32223 E组80
我想确定平均值的差异是否显着,因此我运行anova并且p值< .05因此至少存在2种方式的差异。
n=500
value<- stack(data.frame(x= rnorm(n,33,7),y=rnorm(n,5500,5), z=rnorm(n,33,7) , a=rnorm(n,32223,7) , b=rnorm(n,80,4) ) )
ex = rep(LETTERS[1:5],each=n)
dat = data.frame(value= value$values,ex)
results = aov(value ~ ex, data=dat) #NULL is EQUAL MEANS FOR ALL GROUPS, alternative is at least 2 means different. p-value < .05 means reject null and have difference in means
summary(results)
然后我想确定哪些差异是显着的,所以我运行TukeyHSD测试并报告这些结果
t=TukeyHSD(results, conf.level = 0.95) #p-value<.05 means difference are significant
t
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = value ~ ex, data = dat)
$ex
diff lwr upr p adj
B-A 5467.316931 5.466280e+03 5468.353394 0.0000000
C-A 0.591297 -4.451667e-01 1.627761 0.5251299
D-A 32190.195837 3.218916e+04 32191.232301 0.0000000
E-A 47.576884 4.654042e+01 48.613347 0.0000000
C-B -5466.725634 -5.467762e+03 -5465.689170 0.0000000
D-B 26722.878907 2.672184e+04 26723.915370 0.0000000
E-B -5419.740047 -5.420777e+03 -5418.703583 0.0000000
D-C 32189.604540 3.218857e+04 32190.641004 0.0000000
E-C 46.985587 4.594912e+01 48.022050 0.0000000
E-D -32142.618953 -3.214366e+04 -32141.582490 0.0000000
我的问题是如何向观众报告TUKEYHSD的结果。 有10个不同,只有C-A不重要,但我向观众报告的只是手段
Mean
Group A 33
Group B 5500
Group C 33
Group D 32223
Group E 80
实际上我有50个手段而不是10个因此Tukey HSD测试将返回(50 ^ 2-50)/ 2 = 1225个差异!我如何报告这1225个差异?
我知道这个问题更多的是关于报道,但这似乎是一个真正的问题。如何判断一些差异是否显着,而其他差异不是在测试的手段数量很大的时候?
谢谢。
答案 0 :(得分:1)
考虑使用热图:
# the unique values of `ex`
uex = unique(ex)
# create a matrix to told the comparisons
mat <- matrix(NA,length(uex),length(uex))
dimnames(mat) <- list(uex,uex)
# fill it with the differences (or p-values)
mat[lower.tri(mat)] <- t$ex[,'diff']
# plot a heat map using image()
image(t(mat),
breaks= c(-1,.01,.5,2),# break points for significance
col = c('red','green','white'),# colors to indicate significance
axes=FALSE)
# make nice labels
box()
axis(1,at=(seq(length(uex))-1)/(length(uex)-1),labels=uex)
axis(2,at=(seq(length(uex))-1)/(length(uex)-1),labels=uex)
您也可以使用heatmap(mat)
,但根据显着性水平分配颜色会变得很难。