Si vous n’avez jamais utilisé de tutoriel “learnr”, familiarisez-vous d’abord avec son interface ici.
Conformément au RGPD (Règlement Général sur la Protection des Données), nous sommes tenus de vous informer de ce que vos résultats seront collecté afin de suivre votre progression. Les données seront enregistrées au nom de l’utilisateur apparaissant en haut de cette page. Corrigez si nécessaire ! En utilisant ce tutoriel, vous marquez expressément votre accord pour que ces données puissent être collectées par vos enseignants et utilisées pour vous aider et vous évaluer. Après avoir été anonymisées, ces données pourront également servir à des études globales dans un cadre scientifique et/ou éducatif uniquement.
Pouvoir comparer plus de deux populations simultanément en utilisant des techniques de décomposition de la variance
Savoir effectuer une analyse de variance (ANOVA)
Savoir effectuer des tests de comparaison multiples
Connaitre l’équivalent non paramétrique à un facteur (test de Kruskal-Wallis)
Le jeu de données portant sur la croissance de plantes est mis à votre disposition afin de comparer l’analyse de variance du test de Kruskal-Wallis.
# Import packages
SciViews::R
# Import dataset
(plant <- read("PlantGrowth", package = "datasets"))
Réalisez un résumé des données montrant la moyenne de la masse sèche de plantes par traitement. Indiquez également l’écart-type et le nombre d’observations par groupe.
plant <- read("PlantGrowth", package = "datasets")
Le snippet correspondant à cette instructions est .hmanova1desc
DF %>.%
group_by(., XFACTOR) %>.%
summarise(., mean = mean(YNUM), sd = sd(YNUM), count = sum(!is.na(YNUM)))
plant %>.%
group_by(., group) %>.%
summarise(., mean = mean(weight), sd = sd(weight), count = sum(!is.na(weight)))
#TODO
Réalisez à présent un graphique de type nuage de point . Ajoutez également la moyenne et l’écart type.
Il n’existe pas directement de snippet dédié à ce graphique cependant, vous êtes capable d’employer les instructions ci-dessous pour réaliser le graphique demandé.
chart(data = DF, YNUM ~ XFACTOR) +
geom_jitter(alpha = 0.4, width = 0.2) +
stat_summary(geom = "point", fun.y = "mean") +
stat_summary(geom = "errorbar", width = 0.1,
fun.data = "mean_sdl", fun.args = list(mult = 1))
chart(data = plant, weight ~ group) +
geom_jitter(alpha = 0.4, width = 0.2) +
stat_summary(geom = "point", fun.y = "mean") +
stat_summary(geom = "errorbar", width = 0.1,
fun.data = "mean_sdl", fun.args = list(mult = 1))
#TODO
Réalisez maintenant une boite de dispersion montre la variation de masse sèche en fonction du traiement.
chart(data = DF, YNUM ~ XFACTOR) +
geom_boxplot()
chart(data = plant, weight ~ group) +
geom_boxplot()
#TODO
Posez vous maintenant cette question avant de continuer l’analyse. Sur base du tableau de données et des trois graphiques précédents pensez vous qu’il y a une différence entre les traitements ? L’intuition n’est cependant pas un test statistique, réalisez donc une Anova et/ou kruskal-Wallis
Vous devez tout d’abord vérifier l’homoscédasticité.
Le snippet correspondant à cette instructions est .hvbartlett
bartlett.test(data = DF, YNUM ~ XFACTOR)
bartlett.test(data = plant, weight ~ group)
#TODO
Réalisez votre anova. Le snippet correspondant à cette instructions est .hmanova1
anova(anova. <- lm(data = DF, YNUM ~ XFACTOR))
anova(anova. <- lm(data = plant, weight ~ group))
#TODO
Vérifiez la normalité de vos résidus. Le snippet correspondant à cette instruction est .hmanova1
#plot(anova., which = 2)
anova. %>.%
chart(broom::augment(.), aes(sample = .std.resid)) +
geom_qq() +
#geom_qq_line(colour = "darkgray") +
labs(x = "Theoretical quantiles", y = "Standardized residuals") +
ggtitle("Normal Q-Q")
plant <- read("PlantGrowth", package = "datasets")
anova. <- lm(data = plant, weight ~ group)
#plot(anova., which = 2)
anova. %>.%
chart(broom::augment(.), aes(sample = .std.resid)) +
geom_qq() +
#geom_qq_line(colour = "darkgray") +
labs(x = "Theoretical quantiles", y = "Standardized residuals") +
ggtitle("Normal Q-Q")
#TODO
Complétez votre anova par une analyse post hoc. Le snippet correspondant à cette instruction est .hmanovamult
summary(anovaComp. <- confint(multcomp::glht(anova.,
linfct = multcomp::mcp(XFACTOR = "Tukey")))) # Add a second factor if you want
.oma <- par(oma = c(0, 5.1, 0, 0)); plot(anovaComp.); par(.oma); rm(.oma)
summary(anovaComp. <- confint(multcomp::glht(anova.,
linfct = multcomp::mcp(group = "Tukey")))) # Add a second factor if you want
.oma <- par(oma = c(0, 5.1, 0, 0)); plot(anovaComp.); par(.oma); rm(.oma)
#TODO
Réalisez à présent un test de Kruskal-Wallis afin de comparer vos résultats. Le snippet correspondant à cette instruction est .hnwilkindep
wilcox.test(data = DF, YNUM ~ XFACTOR,
alternative = "two.sided", conf.level = 0.95)
kruskal.test(data = plant, weight ~ group)
#TODO
Suite à ce test vous pouvez réaliser une analyse complémentaire tout comme avec une anova. Le snippet correspondant à cette instruction est .hnkrusmult
summary(kw_comp. <- nparcomp::nparcomp(data = DF, YNUM ~ XFACTOR))
plot(kw_comp.)
summary(kw_comp. <- nparcomp::nparcomp(data = plant, weight ~ group))
plot(kw_comp.)
#TODO
Posez vous les questions suivantes :
Bravo! Vous venez de terminer votre séance d’exercices dans un tutoriel “learnr”.
Laissez nous vos impressions sur cet outil pédagogique ou expérimentez encore dans la zone ci-dessous. Rappelez-vous que pour placer un commentaire dans une zone de code R, vous devez utilisez un dièse (#
) devant vos phrases.
# Ajout de commentaires
# ...
# Not yet...