多重比较 Post-Levene 检验的 Hoc 检验
Multiple Comparison Post-Hoc test for Levene's test
我想在 R 中对 Levene 的测试进行成对比较 post-hoc 测试。我知道如何使用 PROC GLM 在 SAS 中进行,但我似乎无法弄清楚如何在 R 中做。有人知道吗?在下面的示例中,我希望能够测试 "cat" 所有级别之间方差的同质性,即 A-B、A-C、A-D、B-C、B-D、C-D。我发现的最好方法是将我的数据子集化到每一对,然后 运行 对每个子集进行 Levene 检验,然后在最后进行 Bonferroni 校正。但是,当我的因素数量变大时,这不是一个实用的解决方案。
library(car)
dat <- rnorm(100, mean=50, sd=10)
cat <- rep(c("A", "B", "C","D"), each=25)
df <- data.frame(cat,dat)
df$cat <- as.factor(df$cat)
LT <- leveneTest(dat ~ cat, data = df)
因为 Levene 检验只是对样本方差(残差)而不是样本均值进行的方差分析,您可以手动计算残差,然后 运行 方差分析与 TukeyHSD 检验作为 post-特设。
首先如题所示的多重比较:
使用您的示例,加上一个额外的因素 (cat2),这样我们也可以进行交互:
df <- df %>% group_by(cat, cat2) %>%
mutate(dat.med = ifelse(dat,median(Ctmax, na.rm=TRUE), ifelse(dat==NA, NA)))
上面的代码跳过 NA 值并计算每个因子组合的样本中位数,将它们放在数据集中的新列 (dat.med) 中。
然后我们计算残差,将它们换成绝对值,放在另一列中:
df$dat.med.res<-abs(df$dat-df$dat.med)
# Then we run an ANOVA, and post-hoc if necessary:
levene.dat.aov<-aov(dat.med.res~cat*cat2,df)
summary(levene.dat.aov)
TukeyHSD(levene.dat.aov)
要添加重复测量,将方差分析更改为:
aov(dat.med.res~cat+Error(Subject/(cat)),df)
对于两级因子的成对比较(使用包 PairedData):
levene.var.test(df$dat[df$cat=="A"], df$dat[df$cat=="B"],location=c("median"))
我想在 R 中对 Levene 的测试进行成对比较 post-hoc 测试。我知道如何使用 PROC GLM 在 SAS 中进行,但我似乎无法弄清楚如何在 R 中做。有人知道吗?在下面的示例中,我希望能够测试 "cat" 所有级别之间方差的同质性,即 A-B、A-C、A-D、B-C、B-D、C-D。我发现的最好方法是将我的数据子集化到每一对,然后 运行 对每个子集进行 Levene 检验,然后在最后进行 Bonferroni 校正。但是,当我的因素数量变大时,这不是一个实用的解决方案。
library(car)
dat <- rnorm(100, mean=50, sd=10)
cat <- rep(c("A", "B", "C","D"), each=25)
df <- data.frame(cat,dat)
df$cat <- as.factor(df$cat)
LT <- leveneTest(dat ~ cat, data = df)
因为 Levene 检验只是对样本方差(残差)而不是样本均值进行的方差分析,您可以手动计算残差,然后 运行 方差分析与 TukeyHSD 检验作为 post-特设。
首先如题所示的多重比较: 使用您的示例,加上一个额外的因素 (cat2),这样我们也可以进行交互:
df <- df %>% group_by(cat, cat2) %>%
mutate(dat.med = ifelse(dat,median(Ctmax, na.rm=TRUE), ifelse(dat==NA, NA)))
上面的代码跳过 NA 值并计算每个因子组合的样本中位数,将它们放在数据集中的新列 (dat.med) 中。
然后我们计算残差,将它们换成绝对值,放在另一列中:
df$dat.med.res<-abs(df$dat-df$dat.med)
# Then we run an ANOVA, and post-hoc if necessary:
levene.dat.aov<-aov(dat.med.res~cat*cat2,df)
summary(levene.dat.aov)
TukeyHSD(levene.dat.aov)
要添加重复测量,将方差分析更改为:
aov(dat.med.res~cat+Error(Subject/(cat)),df)
对于两级因子的成对比较(使用包 PairedData):
levene.var.test(df$dat[df$cat=="A"], df$dat[df$cat=="B"],location=c("median"))