Je vous prie de bien vouloir m'excuser par avance si cette question est stupide. Je suis novice dans l'utilisation de R. J'ai des difficultés à comprendre comment sont fixées les hypothèses alternatives dans la fonction glht du package multcomp. Je me sers d'un tutoriel trouvé sur le site https://delladata.fr pour expliquer mon problème :
Code : Tout sélectionner
library(tidyverse)
library(car)
library(Rmisc)
library(multcomp)
N1 <- 9
Tension <-rep(c("L", "M", "H"), each=2*N1)
Wool <- rep(rep(c("A", "B"),each= N1),3)
set.seed(42)
L_A<- rnorm(N1,12,1)
L_B <- rnorm(N1,9,1)
M_A <- rnorm(N1,7,1)
M_B <- rnorm(N1,10,1)
H_A <- rnorm(N1,8.5,1)
H_B <- rnorm(N1,7,1)
Usure <- c(L_A, L_B, M_A, M_B, H_A, H_B)
mydata <- data.frame(Usure, Tension, Wool)
mydata$Tension <- as.factor(mydata$Tension)
mydata$Tension <- factor(mydata$Tension, levels=c("L", "M", "H"))
ggplot(mydata, aes(x=Tension, y=Usure, colour=Wool, fill=Wool))+
geom_point(position=position_jitterdodge(dodge.width=0.7), size=2) +
geom_boxplot(alpha=0.5, position = position_dodge(width=0.8), fatten=NULL)+
scale_colour_manual(values=c(c("#1E90FF", "#D02090", "#FFFFFF")))+ scale_fill_manual(values=c("#1E90FF", "#D02090", "#FFFFFF"))+
stat_summary(fun.y = mean, geom = "errorbar", aes(ymax = ..y.., ymin = ..y..), width=0.65,size = 1.5, linetype = "solid",position = position_dodge(width=0.7))+
ylab("Usure")+
theme_classic()
A titre d'exemple, on peut faire l'hypothèse que l'usure d'un fil de la laine A avec une tension faible est supérieure à celle de la laine B avec la même tension (H1 : L_A > L_B). est-ce bien cela ?
Ce que je ne comprends, c'est comment interpréter les résultats que j'obtiens lorsque je fais un test de tukey unilatéral :
Code : Tout sélectionner
mydata$grp <- interaction(mydata$Tension, mydata$Wool, sep="_")
mod1 <- lm(Usure~Tension * Wool, contrasts=list(Tension=contr.sum, Wool=contr.sum), data=mydata)
library(car)
Anova(mod1, type=3)
mod_grp <- lm(Usure~grp, data=mydata)
Anova(mod_grp)
library(multcomp)
mc_tukey <- glht(mod_grp, linfct=mcp(grp="Tukey"),alternative="greater")
summary(mc_tukey)
J'obtiens :
Code : Tout sélectionner
Simultaneous Tests for General Linear Hypotheses
Multiple Comparisons of Means: Tukey Contrasts
Fit: lm(formula = Usure ~ grp, data = mydata)
Linear Hypotheses:
Estimate Std. Error t value Pr(>t)
M_A - L_A <= 0 -5.7215 0.5289 -10.817 1.00000
H_A - L_A <= 0 -4.7268 0.5289 -8.936 1.00000
L_B - L_A <= 0 -3.6792 0.5289 -6.956 1.00000
M_B - L_A <= 0 -2.7894 0.5289 -5.274 1.00000
H_B - L_A <= 0 -5.2766 0.5289 -9.976 1.00000
H_A - M_A <= 0 0.9948 0.5289 1.881 0.27984
L_B - M_A <= 0 2.0424 0.5289 3.861 0.00225 **
M_B - M_A <= 0 2.9322 0.5289 5.544 < 0.001 ***
H_B - M_A <= 0 0.4449 0.5289 0.841 0.84648
L_B - H_A <= 0 1.0476 0.5289 1.981 0.23698
M_B - H_A <= 0 1.9374 0.5289 3.663 0.00415 **
H_B - H_A <= 0 -0.5498 0.5289 -1.039 1.00000
M_B - L_B <= 0 0.8898 0.5289 1.682 0.37908
H_B - L_B <= 0 -1.5974 0.5289 -3.020 1.00000
H_B - M_B <= 0 -2.4872 0.5289 -4.702 1.00000
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- single-step method)
Si je reprends mon exemple "L_B - L_A", ce que je comprends (mais mal), c'est qu'on rejette H0.
et à l'inverse avec l'autre test unilatéral :
Code : Tout sélectionner
mc_tukey <- glht(mod_grp, linfct=mcp(grp="Tukey"),alternative="less")
summary(mc_tukey)
Simultaneous Tests for General Linear Hypotheses
Multiple Comparisons of Means: Tukey Contrasts
Fit: lm(formula = Usure ~ grp, data = mydata)
Linear Hypotheses:
Estimate Std. Error t value Pr(<t)
M_A - L_A >= 0 -5.7215 0.5289 -10.817 <0.001 ***
H_A - L_A >= 0 -4.7268 0.5289 -8.936 <0.001 ***
L_B - L_A >= 0 -3.6792 0.5289 -6.956 <0.001 ***
M_B - L_A >= 0 -2.7894 0.5289 -5.274 <0.001 ***
H_B - L_A >= 0 -5.2766 0.5289 -9.976 <0.001 ***
H_A - M_A >= 0 0.9948 0.5289 1.881 1.0000
L_B - M_A >= 0 2.0424 0.5289 3.861 1.0000
M_B - M_A >= 0 2.9322 0.5289 5.544 1.0000
H_B - M_A >= 0 0.4449 0.5289 0.841 1.0000
L_B - H_A >= 0 1.0476 0.5289 1.981 1.0000
M_B - H_A >= 0 1.9374 0.5289 3.663 1.0000
H_B - H_A >= 0 -0.5498 0.5289 -1.039 0.7513
M_B - L_B >= 0 0.8898 0.5289 1.682 1.0000
H_B - L_B >= 0 -1.5974 0.5289 -3.020 0.0244 *
H_B - M_B >= 0 -2.4872 0.5289 -4.702 <0.001 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- single-step method)
et ici, on a une p-value inférieure à notre seuil de significativité, avec H1 "L_B - L_A >= 0" et une t-value négative.
Je me doute bien que mon interprétation est fausse mais je tourne en rond.
Pourriez-vous m'aider ?
Par avance, je vous remercie.
Bonne journée,
Pauline