我在R中进行数据分析时遇到了一个问题。我的一个假设基本上是,我的小组在分数分布上会有所不同,这表明两组之间的肢体会有差异。
我决定用Levenes检验来检验我的假设,事实证明该假设很重要,因此应强调各组之间的标准差显着不同。 但是我不知道Levenes检验的任何事后检验,在阅读了可能的事后分析后,我决定对残差进行ANOVA,然后对ANOVA进行事后检验。
leveneTest(SS_mean~RA01, DF)
DF$residuals <- abs(DF$SS_mean - DF$SS_mean_big) #SS_mean = Participants score,
#SS_mean_big = mean for each group.
我的测试和事后测试看起来像这样:
levene.anova<-aov(residuals~RA01, DF) #RA01 is the groups. Four in total
summary(levene.anova)
TukeyHSD(levene.anova)
残差的ANOVA也很明显,但是p值从0.04(Levenes检验)变为0.01(残差的ANOVA)。 当阅读它时,Levene检验似乎只是对残渣的方差分析,因此它应该给我相同的结果。而且我也不确定我应该使用哪种事后测试。我考虑了Dunnett并考虑了一个基线,该基线对应于我的一个小组。
最后,我对残差进行了leveneTest以及“ leveneTest(residuals〜RA01)”,结果很有意义。对我来说,使用非参数检验会更好吗? Kruskal-Wallis h检验对我的kruskal wallis检验进行事后检验吗?如果是这种情况,什么是适当的测试?我应该使用成对的Mann Whitney u检验还是Dunn检验?
由于这是我第一次这样做,所以我不确定这是否是合法的分析,非常感谢您的帮助或投入!
答案 0 :(得分:0)
Levene检验在残差上的确应提供与ANOVA相同的p值。
例如参见以下代码:
Expression
也许您不小心运行了Brown–Forsythe检验,这是data("mtcars")
mtcars$cyl <- as.factor(mtcars$cyl)
# Calculate means and add them to data
cyl_means <- aggregate(disp ~ cyl, data = mtcars, FUN = mean)
colnames(cyl_means)[2] <- "disp_mean"
mtcars2 <- merge(mtcars, cyl_means, by = "cyl")
# Residuals and anova
mtcars2$residuals <- abs(mtcars2$disp - mtcars2$disp_mean)
res.aov <- aov(residuals ~ cyl, data = mtcars2)
summary(res.aov)
# Levene's test
lawstat::levene.test(mtcars$disp, mtcars$cyl, location = "mean")
中的默认检验,它使用中位数而不是均值来计算残差。
如果仅对将组与一个基准组进行比较感兴趣,请使用Dunnett。 如果要在组之间进行所有成对比较,请使用TukeyHSD。