La agricolae::HSD.test
fonction fait exactement cela, mais vous devrez lui faire savoir que vous êtes intéressé par un terme d'interaction . Voici un exemple avec un jeu de données Stata:
library(foreign)
yield <- read.dta("http://www.stata-press.com/data/r12/yield.dta")
tx <- with(yield, interaction(fertilizer, irrigation))
amod <- aov(yield ~ tx, data=yield)
library(agricolae)
HSD.test(amod, "tx", group=TRUE)
Cela donne les résultats ci-dessous:
Groups, Treatments and means
a 2.1 51.17547
ab 4.1 50.7529
abc 3.1 47.36229
bcd 1.1 45.81229
cd 5.1 44.55313
de 4.0 41.81757
ef 2.0 38.79482
ef 1.0 36.91257
f 3.0 36.34383
f 5.0 35.69507
Ils correspondent à ce que nous obtiendrions avec les commandes suivantes:
. webuse yield
. regress yield fertilizer##irrigation
. pwcompare fertilizer#irrigation, group mcompare(tukey)
-------------------------------------------------------
| Tukey
| Margin Std. Err. Groups
----------------------+--------------------------------
fertilizer#irrigation |
1 0 | 36.91257 1.116571 AB
1 1 | 45.81229 1.116571 CDE
2 0 | 38.79482 1.116571 AB
2 1 | 51.17547 1.116571 F
3 0 | 36.34383 1.116571 A
3 1 | 47.36229 1.116571 DEF
4 0 | 41.81757 1.116571 BC
4 1 | 50.7529 1.116571 EF
5 0 | 35.69507 1.116571 A
5 1 | 44.55313 1.116571 CD
-------------------------------------------------------
Note: Margins sharing a letter in the group label are
not significantly different at the 5% level.
Le package multcomp propose également une visualisation symbolique (`` affichages de lettres compacts '', voir Algorithmes pour les affichages de lettres compacts: comparaison et évaluation pour plus de détails) de comparaisons par paires significatives, bien qu'il ne les présente pas sous forme de tableau. Cependant, il dispose d'une méthode de traçage qui permet d'afficher facilement les résultats à l'aide de boîtes à moustaches. L'ordre de présentation peut également être modifié (option decreasing=
), et il a beaucoup plus d'options pour des comparaisons multiples. Il existe également le package multcompView qui étend ces fonctionnalités.
Voici le même exemple analysé avec glht
:
library(multcomp)
tuk <- glht(amod, linfct = mcp(tx = "Tukey"))
summary(tuk) # standard display
tuk.cld <- cld(tuk) # letter-based display
opar <- par(mai=c(1,1,1.5,1))
plot(tuk.cld)
par(opar)
Les traitements partageant la même lettre ne sont pas significativement différents, au niveau choisi (par défaut, 5%).
Soit dit en passant , il y a un nouveau projet, actuellement hébergé sur R-Forge, qui semble prometteur: factorplot . Il comprend des affichages basés sur des lignes et des lettres, ainsi qu'un aperçu matriciel (via un tracé de niveau) de toutes les comparaisons par paires. Un document de travail peut être trouvé ici: factorplot: Amélioration de la présentation des contrastes simples dans les GLM