我有一个部分显示在下面的数据集。我使用了方差分析来观察区域作为协变量的值中性别之间的差异。然而,当使用TukeyHSD进行多次比较校正时,我发现它显示了比必要的更多的比较(如下)。我唯一感兴趣的部分是第一行(即每个区域内的M与F),而不是区域之间。有没有办法在anova模型或Tukey中指定这一点?谢谢
ID Age Sex Hemi Region value
1 62 M R a 1.81
2 62 M R a 1.90
3 72 M R a 2.25
1 61 M L a 1.58
2 57 F L a 2.66
3 62 M L a 2.19
1 72 M R b 1.93
2 64 F R b 1.07
3 65 F R b 1.37
1 64 M L b 0.97
2 77 F L b 1.59
3 27 M L b 1.84
model=aov(value~Sex*Region,data=data
TukeyHSD(model)
$Sex:as.factor(Region)
diff lwr upr p adj
M:a-F:a 0.1125161943 -0.2989139 0.5239462408 1.0000000
F:b-F:a -0.0383423077 -0.4866878 0.4100031910 1.0000000
M:b-F:a 0.1273767206 -0.2840533 0.5388067671 1.0000000
当然有。排除模型中的交互项。
> my.data <- data.frame(y = rnorm(100), region = rep(c("a", "b"), each = 50), gender = sample(c("M", "F"), 100, replace = TRUE))
> head(my.data)
y region gender
1 0.3333316 a M
2 1.6364059 a F
3 0.6679500 a F
4 -0.7460313 a M
5 0.7327712 a F
6 -0.8305134 a M
> tail(my.data)
y region gender
95 -1.387498267 b F
96 0.124378046 b M
97 -0.568782743 b M
98 -0.004699849 b M
99 -1.449213423 b F
100 -1.146313313 b F
>
> mdl1 <- aov(y ~ region * gender, data = my.data)
> TukeyHSD(mdl1)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = y ~ region * gender, data = my.data)
$region
diff lwr upr p adj
b-a -0.0140727 -0.4041448 0.3759994 0.9430592
$gender
diff lwr upr p adj
M-F -0.13387 -0.5267813 0.2590414 0.5004702
$`region:gender`
diff lwr upr p adj
b:F-a:F -0.57419765 -1.3487805 0.20038521 0.2191452
a:M-a:F -0.63398152 -1.3658935 0.09793048 0.1136445
b:M-a:F -0.20795605 -0.9398681 0.52395596 0.8794703
a:M-b:F -0.05978387 -0.7916959 0.67212813 0.9965356
b:M-b:F 0.36624160 -0.3656704 1.09815361 0.5599334
b:M-a:M 0.42602548 -0.2605688 1.11261980 0.3710470
>
> mdl2 <- update(mdl1, . ~ region + gender)
> TukeyHSD(mdl2)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = y ~ region + gender, data = my.data)
$region
diff lwr upr p adj
b-a -0.0140727 -0.4147704 0.3866251 0.9445724
$gender
diff lwr upr p adj
M-F -0.13387 -0.5374843 0.2697444 0.5119119
如果你想删除/保留特定的条款,你可以这样做。
> tk <- TukeyHSD(mdl1)
> str(tk)
List of 3
$ region : num [1, 1:4] -0.0141 -0.4041 0.376 0.9431
..- attr(*, "dimnames")=List of 2
.. ..$ : chr "b-a"
.. ..$ : chr [1:4] "diff" "lwr" "upr" "p adj"
$ gender : num [1, 1:4] -0.134 -0.527 0.259 0.5
..- attr(*, "dimnames")=List of 2
.. ..$ : chr "M-F"
.. ..$ : chr [1:4] "diff" "lwr" "upr" "p adj"
$ region:gender: num [1:6, 1:4] -0.5742 -0.634 -0.208 -0.0598 0.3662 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:6] "b:F-a:F" "a:M-a:F" "b:M-a:F" "a:M-b:F" ...
.. ..$ : chr [1:4] "diff" "lwr" "upr" "p adj"
- attr(*, "class")= chr [1:2] "TukeyHSD" "multicomp"
- attr(*, "orig.call")= language aov(formula = y ~ region * gender, data = my.data)
- attr(*, "conf.level")= num 0.95
- attr(*, "ordered")= logi FALSE
> rntk <- rownames(tk[["region:gender"]])
> tk[["region:gender"]] <- tk[["region:gender"]][grepl("b:F-a:F|a:M-a:F", rntk), ]
> tk
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = y ~ region * gender, data = my.data)
$region
diff lwr upr p adj
b-a -0.0140727 -0.4041448 0.3759994 0.9430592
$gender
diff lwr upr p adj
M-F -0.13387 -0.5267813 0.2590414 0.5004702
$`region:gender`
diff lwr upr p adj
b:F-a:F -0.5741976 -1.348781 0.20038521 0.2191452
a:M-a:F -0.6339815 -1.365894 0.09793048 0.1136445