La croissance des plantes dépend de nombreux facteurs agronomiques, parmi lesquels le substrat de culture (terreau) et la variété génétique jouent un rôle déterminant. Dans ce contexte, une expérimentation a été mise en place afin d’évaluer l’effet du type de terreau et de la variété de plante sur la hauteur des plants. Trois types de terreaux — Manguier (Ma), Caïlcédrat (Ca) et Anacarde (An) — ont été testés sur deux variétés (Var1 et Var2), avec quatre répétitions par combinaison.
La problématique centrale de cette étude est la suivante : le type de terreau et/ou la variété ont-ils un effet significatif sur la hauteur des plantes ? Pour répondre à cette question, nous mobilisons l’Analyse de la Variance (ANOVA), qui permet de tester l’égalité des moyennes entre plusieurs groupes.
Objectif : Analyser les différences entre les groupes à l’aide de l’ANOVA et interpréter les résultats statistiques.
# Installer les packages manquants et les charger
pkgs <- c("ggplot2", "dplyr", "tidyr", "knitr", "kableExtra",
"car", "emmeans", "multcomp", "ggpubr", "tidyverse", "rstatix", "afex", "lme4")
for (p in pkgs) {
if (!requireNamespace(p, quietly = TRUE)) install.packages(p)
library(p, character.only = TRUE)
}La base mise à notre disposition porte sur des données réelles recueillies dans le cadre d’une expérimentation. Dans le cadre de cette expérimentation, trois types de terreau :
ont été utilisées sur deux types de variétés de plantes (Var1 et Var2). L’expérience a été répété quatre fois et chaque fois on mesure la hauteur des plantes.
#> # A tibble: 6 × 5
#> Num Repetition Terreau Variete Hauteur
#> <dbl> <chr> <chr> <chr> <dbl>
#> 1 1 T1 Ma Var1 43
#> 2 2 T1 Ma Var1 42
#> 3 3 T1 Ma Var1 40
#> 4 4 T1 Ma Var1 46
#> 5 5 T1 Ma Var1 42
#> 6 6 T1 Ma Var1 40
La base a été transformée de sorte à avoir quatre colonnes correspondant respectivement à la répétition, au type de terreau, au type de variété et à la hauteur. Elle contient 253 observations.
# Transformation des variables en facteurs
data$Repetition <- as.factor(data$Repetition)
data$Terreau <- as.factor(data$Terreau)
data$Variete <- as.factor(data$Variete)# Distribution des types de terreau par répétition
table(data$Repetition, data$Terreau) %>%
kable(caption = "Distribution des types de terreau par répétition",
booktabs = TRUE,
align = "c") %>%
kable_styling(full_width = TRUE,
font_size = 14,
bootstrap_options = c("striped", "hover", "condensed"),
latex_options = c("hold_position", "striped"))| An | Ca | Ma | |
|---|---|---|---|
| T1 | 24 | 21 | 33 |
| T2 | 22 | 19 | 16 |
| T3 | 20 | 20 | 23 |
| T4 | 12 | 13 | 30 |
Le tableau ci-dessus présente la distribution des types de terreau selon les répétitions. On constate que le plan expérimental est équilibré : chaque type de terreau (An, Ca, Ma) apparaît exactement une fois par répétition, ce qui garantit une comparaison valide entre les groupes et évite les biais liés à des effectifs inégaux.
# Graphique de la distribution des types de terreau par répétition
ggplot(data, aes(x = Repetition, fill = Terreau)) +
geom_bar(position = "dodge") +
labs(title = "Distribution des types de terreau par répétition",
x = "Répétition",
y = "Nombre d'observations") +
theme_minimal() +
theme(legend.title = element_blank())La figure ci-dessus confirme visuellement la structure équilibrée du dispositif expérimental. Chaque répétition contient exactement une observation par type de terreau. Cette répartition uniforme est une condition essentielle pour la validité des tests ANOVA réalisés par la suite.
# Distribution des types de variétés par répétition
table(data$Repetition, data$Variete) %>%
kable(caption = "Distribution des types de variétés par répétition",
booktabs = TRUE,
align = "c") %>%
kable_styling(full_width = TRUE,
font_size = 14,
bootstrap_options = c("striped", "hover", "condensed"),
latex_options = c("hold_position", "striped"))| Var1 | Var2 | |
|---|---|---|
| T1 | 37 | 41 |
| T2 | 27 | 30 |
| T3 | 31 | 32 |
| T4 | 29 | 26 |
Ce tableau montre que les deux variétés (Var1 et Var2) sont également réparties à travers les répétitions, avec une observation de chaque variété par répétition. Ce dispositif en blocs complets garantit que la variété n’est pas confondue avec l’effet de la répétition.
# Graphique de la distribution des types de variétés par répétition
ggplot(data, aes(x = Repetition, fill = Variete)) +
geom_bar(position = "dodge") +
labs(title = "Distribution des types de variétés par répétition",
x = "Répétition",
y = "Nombre d'observations") +
theme_minimal() +
theme(legend.title = element_blank())La figure confirme la parfaite symétrie de la répartition des variétés sur les quatre répétitions. Var1 et Var2 apparaissent en effectifs strictement identiques à chaque répétition, ce qui reflète un plan expérimental rigoureux et équilibré.
# Statistiques descriptives de la variable hauteur
stats_globales <- data %>%
summarise(
N = n(),
Moyenne = round(mean(Hauteur), 2),
Ecart_type = round(sd(Hauteur), 2),
Min = round(min(Hauteur), 2),
Max = round(max(Hauteur), 2)
)
kable(stats_globales,
caption = "Statistiques descriptives globales",
booktabs = TRUE,
align = "c") %>%
kable_styling(full_width = TRUE,
bootstrap_options = c("striped", "hover", "condensed"),
latex_options = c("hold_position", "striped"))| N | Moyenne | Ecart_type | Min | Max |
|---|---|---|---|---|
| 253 | 34.27 | 8.16 | 8.5 | 56.2 |
Le tableau de statistiques descriptives globales donne un aperçu général de la variable réponse — la hauteur des plantes. La moyenne et l’écart-type permettent d’apprécier respectivement le niveau central et la dispersion des hauteurs mesurées sur l’ensemble de l’échantillon. La différence entre le minimum et le maximum renseigne sur l’étendue totale des valeurs, qui pourra s’expliquer par l’effet des facteurs étudiés.
# Graphique de la distribution de la hauteur des plantes
ggplot(data, aes(x = Hauteur)) +
geom_histogram(binwidth = 1, fill = "steelblue", color = "black") +
labs(title = "Distribution de la hauteur des plantes",
x = "Hauteur (cm)",
y = "Fréquence") +
theme_minimal()L’histogramme de la distribution de la hauteur des plantes permet de visualiser la forme générale de la distribution. On peut y observer si la distribution est symétrique, unimodale ou si elle présente une asymétrie ou plusieurs modes, ce qui donnerait un premier indice sur la présence d’effets entre groupes.
# Statistique de la distribution de la hauteur des plantes par type de terreau
stats_terreau <- data %>%
group_by(Terreau) %>%
summarise(
N = n(),
Moyenne = round(mean(Hauteur), 2),
Ecart_type = round(sd(Hauteur), 2),
Min = round(min(Hauteur), 2),
Max = round(max(Hauteur), 2)
)
kable(stats_terreau,
caption = "Statistiques descriptives par type de terreau",
booktabs = TRUE,
align = "c") %>%
kable_styling(full_width = TRUE,
bootstrap_options = c("striped", "hover", "condensed"),
latex_options = c("hold_position", "striped"))| Terreau | N | Moyenne | Ecart_type | Min | Max |
|---|---|---|---|---|---|
| An | 78 | 33.53 | 9.31 | 8.5 | 51.1 |
| Ca | 73 | 35.76 | 7.45 | 17.5 | 56.2 |
| Ma | 102 | 33.76 | 7.63 | 11.5 | 46.0 |
Ce tableau présente les statistiques descriptives de la hauteur des plantes selon le type de terreau. Des différences notables entre les moyennes des groupes (An, Ca, Ma) constitueraient un premier indice d’un effet significatif du terreau sur la croissance des plantes. Un écart-type élevé au sein d’un groupe indiquerait une forte variabilité intra-groupe, ce qui peut affecter la puissance du test ANOVA.
# Statistique de la distribution de la hauteur des plantes par type de terreau et de variete
stats_terreau_variete <- data %>%
group_by(Terreau, Variete) %>%
summarise(
N = n(),
Moyenne = round(mean(Hauteur), 2),
Ecart_type = round(sd(Hauteur), 2),
Min = round(min(Hauteur), 2),
Max = round(max(Hauteur), 2)
)
kable(stats_terreau_variete,
caption = "Statistiques descriptives par type de terreau et de variété",
booktabs = TRUE,
align = "c") %>%
kable_styling(full_width = TRUE,
bootstrap_options = c("striped", "hover", "condensed"),
latex_options = c("hold_position", "striped"))| Terreau | Variete | N | Moyenne | Ecart_type | Min | Max |
|---|---|---|---|---|---|---|
| An | Var1 | 43 | 35.64 | 8.52 | 12.5 | 51.1 |
| An | Var2 | 35 | 30.94 | 9.71 | 8.5 | 46.0 |
| Ca | Var1 | 35 | 38.21 | 6.84 | 22.0 | 56.2 |
| Ca | Var2 | 38 | 33.52 | 7.37 | 17.5 | 46.3 |
| Ma | Var1 | 46 | 36.25 | 6.45 | 19.5 | 46.0 |
| Ma | Var2 | 56 | 31.72 | 7.97 | 11.5 | 46.0 |
Ce tableau croisé (terreau × variété) permet d’examiner simultanément l’effet des deux facteurs sur la hauteur des plantes. Si les moyennes diffèrent de manière systématique selon la combinaison terreau-variété, cela peut suggérer une interaction entre ces deux facteurs. Les écarts-types renseignent sur la variabilité interne à chaque sous-groupe.
#Boxplot de la hauteur des plantes par type de terreau
ggplot(data, aes(x = Terreau, y = Hauteur, fill = Terreau
)) +
geom_boxplot() +
labs(title = "Hauteur des plantes par type de terreau",
x = "Type de terreau",
y = "Hauteur (cm)") +
theme_minimal() +
theme(legend.position = "none")Le boxplot ci-dessus illustre la distribution de la hauteur des plantes pour chacun des trois types de terreau. Des médianes situées à des niveaux différents d’un terreau à l’autre indiqueraient un effet du type de terreau sur la hauteur. La largeur des boîtes et la longueur des moustaches renseignent sur la variabilité au sein de chaque groupe. La présence de points isolés peut signaler des valeurs atypiques.
# Boxplot de la hauteur des plantes par type de variété
ggplot(data, aes(x = Variete, y = Hauteur, fill = Variete
)) +
geom_boxplot() +
labs(title = "Hauteur des plantes par type de variété",
x = "Type de variété",
y = "Hauteur (cm)") +
theme_minimal() +
theme(legend.position = "none")Ce boxplot compare la hauteur des plantes entre les deux variétés. Si la médiane de l’une des variétés se distingue nettement de l’autre, cela suggère un effet de la variété sur la croissance des plantes. La dispersion au sein de chaque groupe éclaire sur l’homogénéité des observations selon la variété.
# Boxplot de la hauteur des plantes par type de terreau et type de variété
ggplot(data, aes(x = Terreau, y = Hauteur, fill = Variete
)) +
geom_boxplot() +
labs(title = "Hauteur des plantes par type de terreau et type de variété",
x = "Type de terreau",
y = "Hauteur (cm)") +
theme_minimal() +
theme(legend.title = element_blank())Ce graphique croisé (terreau × variété) permet d’explorer visuellement une éventuelle interaction entre les deux facteurs. Si l’effet du terreau varie selon la variété (ou inversement), les boîtes se comporteront de manière non parallèle d’une variété à l’autre. Des distributions qui se chevauchent peu indiquent des différences marquées entre les combinaisons.
#Boxplot de la hauteur des plantes par repetition, variete et terreau
ggplot(data, aes(x = Repetition, y = Hauteur, fill = interaction(Terreau, Variete)
)) +
geom_boxplot() +
labs(title = "Hauteur des plantes par répétition, type de terreau et type de variété",
x = "Répétition",
y = "Hauteur (cm)") +
theme_minimal() +
theme(legend.title = element_blank())Ce boxplot multi-factoriel représente la hauteur des plantes selon la répétition, le type de terreau et la variété simultanément. Il permet d’apprécier la cohérence des mesures entre répétitions : si les distributions varient fortement d’une répétition à l’autre au sein d’un même groupe, cela peut signaler un effet de bloc ou des conditions expérimentales changeantes.
ggplot(data=data,aes(x=Terreau,y=Hauteur,fill=Repetition))+geom_boxplot()+
ggtitle("Hauteur des plantes par répétition, type de terreau et type de variété")+
facet_wrap(~Variete)+
xlab("Repetition")+
ylab("Hauteur")+
theme_classic()La figure ci-dessus permet de constater des valeurs abérantes. Cependant, nous allons effectuer un test de détection de valeurs abérantes.
# Détection des valeurs abérantes à l'aide de la méthode IQR
Outliers <- data %>%
group_by(Variete, Terreau, Repetition) %>%
identify_outliers(Hauteur)
Outliers %>% head(5)#> # A tibble: 5 × 7
#> Repetition Terreau Variete Num Hauteur is.outlier is.extreme
#> <fct> <fct> <fct> <dbl> <dbl> <lgl> <lgl>
#> 1 T2 An Var1 201 13.7 TRUE TRUE
#> 2 T4 An Var1 245 20 TRUE FALSE
#> 3 T2 Ca Var1 124 45.2 TRUE FALSE
#> 4 T2 Ca Var1 133 22 TRUE FALSE
#> 5 T4 Ca Var1 163 47 TRUE FALSE
Le tableau ci-dessus présente les cinq premières valeurs aberrantes détectées par la méthode IQR. L’analyse du tableau ci-dessus montre que des valeurs aberrantes sont présentes dans les groupes suivants : Var1-Ca-1, Var1-Ca-2, Var1-Ca-3, Var1-Ca-4, Var1-Ma-1, Var1-Ma-2, Var1-Ma-3, Var1-Ma-4, Var1-An-1, Var1-An-2, Var1-An-3, Var1-An-4. Cependant, nous allons conserver certaines de ces valeurs pour l’analyse ANOVA afin de ne pas biaiser les résultats. Nous corrigerons uniquement celles qui sont extrêmes
#> # A tibble: 4 × 7
#> Repetition Terreau Variete Num Hauteur is.outlier is.extreme
#> <fct> <fct> <fct> <dbl> <dbl> <lgl> <lgl>
#> 1 T2 An Var1 201 13.7 TRUE TRUE
#> 2 T1 Ma Var1 15 21 TRUE TRUE
#> 3 T3 Ma Var2 61 12.5 TRUE TRUE
#> 4 T3 Ma Var2 63 11.5 TRUE TRUE
Nous identifions 4 valeurs extrême que nous allos corriger en utilisant la médiane
# Correction des valeurs extrême en utilisant la médiane
data_cor <- data %>%
mutate(Hauteur = ifelse(Num %in% Outliers$Num,
median(Hauteur, na.rm = TRUE), Hauteur))La correction des valeurs extrêmes a été réalisée en remplaçant chacune d’elles par la médiane de la variable Hauteur, moins sensible aux valeurs atypiques que la moyenne. Cette approche conservatrice permet de préserver la taille de l’échantillon tout en réduisant l’influence des observations aberrantes sur les résultats.
#> # A tibble: 4 × 7
#> Repetition Terreau Variete Num Hauteur is.outlier is.extreme
#> <fct> <fct> <fct> <dbl> <dbl> <lgl> <lgl>
#> 1 T1 An Var2 191 13 TRUE FALSE
#> 2 T2 An Var2 214 25.5 TRUE FALSE
#> 3 T1 Ca Var2 118 42 TRUE FALSE
#> 4 T1 Ca Var2 119 28.5 TRUE FALSE
Après correction, le tableau ci-dessus confirme que les valeurs extrêmes ont été traitées. On vérifie que les observations restantes identifiées comme aberrantes ne sont plus qualifiées d’extrêmes, ce qui valide l’efficacité de la correction effectuée.
Normalité
# Test de normalité des résidus QQplots
ggqqplot(data_cor, "Hauteur", ggtheme = theme_bw()) +facet_grid(Terreau + Variete ~ Repetition, labeller = "label_both")Les graphiques Q-Q (quantile-quantile) permettent de vérifier visuellement si la distribution de la hauteur des plantes suit une loi normale au sein de chaque groupe (combinaison terreau × variété × répétition). Lorsque les points s’alignent étroitement sur la droite diagonale, cela indique une bonne normalité des données. Des déviations importantes aux extrémités (queues de distribution) signalent des écarts à la normalité. Dans l’ensemble, si la plupart des groupes présentent un bon alignement, l’hypothèse de normalité peut être retenue.
# Graphique de distribution des hauteurs dans chaque groupe
ggplot(data_cor, aes(x = Hauteur)) +
geom_histogram(binwidth = 1, fill = "steelblue", color = "black") +
facet_grid(Terreau + Variete ~ Repetition, labeller = label_both) +
labs(title = "Distribution de la hauteur des plantes par groupe",
x = "Hauteur (cm)",
y = "Fréquence") +
theme_minimal()Les histogrammes par groupe complètent l’analyse visuelle de la normalité. Chaque facette représente la distribution de la hauteur dans un sous-groupe donné (terreau × variété × répétition). Une forme en cloche centrée et symétrique est caractéristique d’une distribution normale. Ce type de visualisation permet de repérer rapidement les groupes dont la distribution s’écarte de la normalité et qui pourraient nécessiter une attention particulière.
Test de Shapiro-Wilk pour la normalité des résidus
# Test de Shapiro-Wilk pour la normalité des résidus
shapiro_test <- data_cor %>%
group_by(Terreau, Variete) %>%
summarise(p_value = shapiro.test(Hauteur)$p.value)
shapiro_test %>%
kable(caption = "Test de Shapiro-Wilk pour la normalité des résidus",
booktabs = TRUE,
align = "c") %>%
kable_styling(full_width = TRUE,
bootstrap_options = c("striped", "hover", "condensed"),
latex_options = c("hold_position", "striped"))| Terreau | Variete | p_value |
|---|---|---|
| An | Var1 | 0.0171339 |
| An | Var2 | 0.0458534 |
| Ca | Var1 | 0.3707346 |
| Ca | Var2 | 0.0122505 |
| Ma | Var1 | 0.1662297 |
| Ma | Var2 | 0.3649743 |
Le test de Shapiro-Wilk est appliqué à chaque sous-groupe défini par la combinaison terreau × variété. La règle de décision est la suivante : si la p-valeur est supérieure à 0,05, l’hypothèse nulle de normalité est non rejetée — on considère alors que les données du groupe suivent une loi normale. À l’inverse, une p-valeur inférieure à 0,05 indique un écart significatif à la normalité. Ce test vient confirmer (ou infirmer) les observations visuelles issues des Q-Q plots.
# Test de Levene pour l'homogénéité des variances
levene_test <- data_cor %>%
group_by(Terreau, Repetition) %>%
summarise(p_value = leveneTest(Hauteur ~ Variete)$"Pr(>F)"[1])
levene_test %>%
kable(caption = "Test de Levene pour l'homogénéité des variances",
booktabs = TRUE,
align = "c") %>%
kable_styling(full_width = TRUE,
bootstrap_options = c("striped", "hover", "condensed"),
latex_options = c("hold_position", "striped"))| Terreau | Repetition | p_value |
|---|---|---|
| An | T1 | 0.6368289 |
| An | T2 | 0.1044613 |
| An | T3 | 0.5602201 |
| An | T4 | 0.0936263 |
| Ca | T1 | 0.0347550 |
| Ca | T2 | 0.0567930 |
| Ca | T3 | 0.1035554 |
| Ca | T4 | 0.1523013 |
| Ma | T1 | 0.0463247 |
| Ma | T2 | 0.7890104 |
| Ma | T3 | 0.6330944 |
| Ma | T4 | 0.3192263 |
Le test de Levene teste l’hypothèse nulle selon laquelle les variances sont égales entre les groupes (homoscédasticité). Une p-valeur supérieure à 0,05 indique que l’hypothèse d’homogénéité des variances est non rejetée, ce qui est une condition nécessaire à la validité de l’ANOVA classique. En cas de rejet de cette hypothèse, des corrections ou des alternatives robustes devraient être envisagées.
# Modèle ANOVA à un facteur pour le facteur variété
anova_variete<-aov_car(Hauteur~ Variete + Error(Repetition/Variete), data=data_cor)#>
#> Univariate Type III Repeated-Measures ANOVA Assuming Sphericity
#>
#> Sum Sq num Df Error SS den Df F value Pr(>F)
#> (Intercept) 9926.2 1 22.808 3 1305.6226 4.662e-05 ***
#> Variete 24.0 1 24.594 3 2.9333 0.1853
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Les résultats du premier modèle ANOVA à mesure répétée sur le facteur variété permettent d’évaluer si la variété a un effet statistiquement significatif sur la hauteur des plantes. Une p-valeur inférieure à 0,05 associée au facteur Variété conduit à rejeter l’hypothèse nulle d’égalité des moyennes entre Var1 et Var2.
#> Linear mixed model fit by REML. t-tests use Satterthwaite's method [
#> lmerModLmerTest]
#> Formula: Hauteur ~ Variete + (1 | Repetition) + (1 | Terreau)
#> Data: data_cor
#>
#> REML criterion at convergence: 1671.3
#>
#> Scaled residuals:
#> Min 1Q Median 3Q Max
#> -3.3700 -0.4351 0.0359 0.6395 2.7897
#>
#> Random effects:
#> Groups Name Variance Std.Dev.
#> Repetition (Intercept) 3.1057 1.7623
#> Terreau (Intercept) 0.3766 0.6137
#> Residual 42.8397 6.5452
#> Number of obs: 253, groups: Repetition, 4; Terreau, 3
#>
#> Fixed effects:
#> Estimate Std. Error df t value Pr(>|t|)
#> (Intercept) 37.1958 1.1181 4.3854 33.266 1.93e-06 ***
#> VarieteVar2 -3.9659 0.8252 247.7953 -4.806 2.67e-06 ***
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Correlation of Fixed Effects:
#> (Intr)
#> VarieteVar2 -0.374
Ce modèle linéaire mixte inclut la variété comme effet fixe et la répétition ainsi que le terreau comme effets aléatoires. Les estimations des coefficients fixes indiquent la différence moyenne de hauteur entre Var1 (référence) et Var2. Si le coefficient de Var2 est positif et significatif, cela signifie que Var2 tend à produire des plantes plus grandes que Var1, toutes choses égales par ailleurs.
#> Linear mixed model fit by REML. t-tests use Satterthwaite's method [
#> lmerModLmerTest]
#> Formula: Hauteur ~ Terreau + (1 | Repetition) + (1 | Variete)
#> Data: data_cor
#>
#> REML criterion at convergence: 1670.3
#>
#> Scaled residuals:
#> Min 1Q Median 3Q Max
#> -3.2888 -0.4821 -0.0043 0.6549 2.6927
#>
#> Random effects:
#> Groups Name Variance Std.Dev.
#> Repetition (Intercept) 3.156 1.777
#> Variete (Intercept) 7.654 2.767
#> Residual 42.817 6.543
#> Number of obs: 253, groups: Repetition, 4; Variete, 2
#>
#> Fixed effects:
#> Estimate Std. Error df t value Pr(>|t|)
#> (Intercept) 34.4594 2.2749 1.6436 15.148 0.00926 **
#> TerreauCa 1.8954 1.0677 246.1793 1.775 0.07711 .
#> TerreauMa 0.4543 0.9997 248.3831 0.454 0.64991
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Correlation of Fixed Effects:
#> (Intr) TerreC
#> TerreauCa -0.228
#> TerreauMa -0.248 0.522
Ce modèle évalue l’effet du type de terreau sur la hauteur des plantes, en contrôlant pour la variabilité liée à la répétition et à la variété (traitées comme effets aléatoires). Les coefficients associés à chaque modalité du terreau (Ca et Ma par rapport à An pris comme référence) quantifient les différences moyennes de hauteur entre les types de terreau. Des valeurs significativement différentes de zéro indiquent un effet du terreau sur la croissance des plantes. ## Modèle ANOVA à deux facteurs
anovaSansInter <- lmer(Hauteur ~ Terreau + Variete + (1|Repetition), data=data_cor)
summary(anovaSansInter)#> Linear mixed model fit by REML. t-tests use Satterthwaite's method [
#> lmerModLmerTest]
#> Formula: Hauteur ~ Terreau + Variete + (1 | Repetition)
#> Data: data_cor
#>
#> REML criterion at convergence: 1664.7
#>
#> Scaled residuals:
#> Min 1Q Median 3Q Max
#> -3.3004 -0.4732 -0.0008 0.6512 2.6789
#>
#> Random effects:
#> Groups Name Variance Std.Dev.
#> Repetition (Intercept) 3.156 1.776
#> Residual 42.817 6.543
#> Number of obs: 253, groups: Repetition, 4
#>
#> Fixed effects:
#> Estimate Std. Error df t value Pr(>|t|)
#> (Intercept) 36.4491 1.2167 7.0290 29.956 1.12e-08 ***
#> TerreauCa 1.9079 1.0678 246.1118 1.787 0.0752 .
#> TerreauMa 0.4728 0.9999 248.2220 0.473 0.6367
#> VarieteVar2 -3.9987 0.8269 246.2673 -4.836 2.34e-06 ***
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Correlation of Fixed Effects:
#> (Intr) TerreC TerreM
#> TerreauCa -0.407
#> TerreauMa -0.433 0.522
#> VarieteVar2 -0.301 -0.057 -0.090
Ce modèle à deux facteurs sans interaction suppose que les effets du terreau et de la variété sur la hauteur des plantes sont additifs et indépendants. Les coefficients des effets fixes permettent d’estimer la contribution propre de chaque facteur, toutes choses égales par ailleurs. La répétition est modélisée en tant qu’effet aléatoire pour tenir compte de la structure en blocs du dispositif expérimental.
Si on prend en compte la répétiton
anovaSansInter2 <- lmer(Hauteur ~ Terreau + Variete + (1|Repetition)
+(Terreau|Repetition)+ (Variete|Repetition)
, data=data_cor)
summary(anovaSansInter2)#> Linear mixed model fit by REML. t-tests use Satterthwaite's method [
#> lmerModLmerTest]
#> Formula:
#> Hauteur ~ Terreau + Variete + (1 | Repetition) + (Terreau | Repetition) +
#> (Variete | Repetition)
#> Data: data_cor
#>
#> REML criterion at convergence: 1645.4
#>
#> Scaled residuals:
#> Min 1Q Median 3Q Max
#> -3.12240 -0.44540 0.05289 0.65530 2.34513
#>
#> Random effects:
#> Groups Name Variance Std.Dev. Corr
#> Repetition (Intercept) 0.0000 0.0000
#> Repetition.1 (Intercept) 9.2377 3.0394
#> TerreauCa 8.1105 2.8479 -1.00
#> TerreauMa 0.3714 0.6094 -1.00 1.00
#> Repetition.2 (Intercept) 6.5931 2.5677
#> VarieteVar2 14.6794 3.8314 -1.00
#> Residual 38.4602 6.2016
#> Number of obs: 253, groups: Repetition, 4
#>
#> Fixed effects:
#> Estimate Std. Error df t value Pr(>|t|)
#> (Intercept) 36.3448 2.1414 4.7072 16.973 2.11e-05 ***
#> TerreauCa 1.8530 1.7512 3.3798 1.058 0.360
#> TerreauMa 0.3906 1.0041 11.3895 0.389 0.704
#> VarieteVar2 -3.6671 2.0725 3.1070 -1.769 0.172
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Correlation of Fixed Effects:
#> (Intr) TerreC TerreM
#> TerreauCa -0.706
#> TerreauMa -0.438 0.539
#> VarieteVar2 -0.616 -0.014 -0.036
#> optimizer (nloptwrap) convergence code: 0 (OK)
#> boundary (singular) fit: see help('isSingular')
Ce modèle enrichi intègre les effets aléatoires du terreau et de la variété au niveau de la répétition, permettant de capturer le fait que l’effet du terreau ou de la variété peut varier d’une répétition à l’autre. Cela correspond à un modèle à effets mixtes plus flexible, adapté à un dispositif où les conditions expérimentales peuvent fluctuer entre répétitions.
anovaAvecInter <- lmer(Hauteur ~ Terreau*Variete +
(1|Repetition), data=data_cor)
summary(anovaAvecInter)#> Linear mixed model fit by REML. t-tests use Satterthwaite's method [
#> lmerModLmerTest]
#> Formula: Hauteur ~ Terreau * Variete + (1 | Repetition)
#> Data: data_cor
#>
#> REML criterion at convergence: 1658.2
#>
#> Scaled residuals:
#> Min 1Q Median 3Q Max
#> -3.3057 -0.4777 0.0148 0.6332 2.7195
#>
#> Random effects:
#> Groups Name Variance Std.Dev.
#> Repetition (Intercept) 3.189 1.786
#> Residual 43.123 6.567
#> Number of obs: 253, groups: Repetition, 4
#>
#> Fixed effects:
#> Estimate Std. Error df t value Pr(>|t|)
#> (Intercept) 36.56909 1.34423 10.19292 27.204 7.5e-11 ***
#> TerreauCa 1.46603 1.49557 244.07692 0.980 0.32793
#> TerreauMa 0.48840 1.40947 246.15923 0.347 0.72925
#> VarieteVar2 -4.26992 1.49509 244.01517 -2.856 0.00466 **
#> TerreauCa:VarieteVar2 0.88812 2.14751 244.23957 0.414 0.67956
#> TerreauMa:VarieteVar2 0.03073 1.98901 244.39627 0.015 0.98768
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Correlation of Fixed Effects:
#> (Intr) TerreC TerreM VrtVr2 TC:VV2
#> TerreauCa -0.499
#> TerreauMa -0.536 0.474
#> VarieteVar2 -0.498 0.448 0.474
#> TrrC:VrtVr2 0.346 -0.697 -0.325 -0.696
#> TrrM:VrtVr2 0.377 -0.336 -0.701 -0.751 0.521
Ce modèle introduit le terme d’interaction Terreau × Variété, testant l’hypothèse que l’effet du type de terreau n’est pas le même selon la variété utilisée (et vice versa). Les coefficients d’interaction (ex. TerreauCa:VarieteVar2) indiquent si la combinaison d’un terreau et d’une variété produit un effet supplémentaire par rapport à la simple somme des effets principaux. Une interaction significative implique que le meilleur terreau dépend de la variété, ce qui aurait des implications pratiques importantes pour les recommandations agronomiques. Si on prend en compte la répétiton
anovaAvecInter2 <- lmer(Hauteur ~ Terreau*Variete +
+(Terreau|Repetition)+ (Variete|Repetition)+
(1|Repetition), data=data_cor)
summary(anovaAvecInter2)#> Linear mixed model fit by REML. t-tests use Satterthwaite's method [
#> lmerModLmerTest]
#> Formula: Hauteur ~ Terreau * Variete + +(Terreau | Repetition) + (Variete |
#> Repetition) + (1 | Repetition)
#> Data: data_cor
#>
#> REML criterion at convergence: 1639.2
#>
#> Scaled residuals:
#> Min 1Q Median 3Q Max
#> -3.12848 -0.44902 0.05204 0.66113 2.36352
#>
#> Random effects:
#> Groups Name Variance Std.Dev. Corr
#> Repetition (Intercept) 9.2188 3.0362
#> TerreauCa 8.0238 2.8326 -1.00
#> TerreauMa 0.3754 0.6127 -1.00 1.00
#> Repetition.1 (Intercept) 6.5300 2.5554
#> VarieteVar2 14.6688 3.8300 -1.00
#> Repetition.2 (Intercept) 0.0000 0.0000
#> Residual 38.7697 6.2265
#> Number of obs: 253, groups: Repetition, 4
#>
#> Fixed effects:
#> Estimate Std. Error df t value Pr(>|t|)
#> (Intercept) 36.4550 2.2037 5.3029 16.543 9.1e-06 ***
#> TerreauCa 1.5955 2.0071 5.8788 0.795 0.458
#> TerreauMa 0.2899 1.3958 45.2688 0.208 0.836
#> VarieteVar2 -3.9146 2.3893 5.4568 -1.638 0.157
#> TerreauCa:VarieteVar2 0.5332 2.0350 240.9260 0.262 0.794
#> TerreauMa:VarieteVar2 0.2301 1.9136 242.8772 0.120 0.904
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Correlation of Fixed Effects:
#> (Intr) TerreC TerreM VrtVr2 TC:VV2
#> TerreauCa -0.692
#> TerreauMa -0.455 0.480
#> VarieteVar2 -0.638 0.187 0.277
#> TrrC:VrtVr2 0.201 -0.491 -0.317 -0.415
#> TrrM:VrtVr2 0.220 -0.233 -0.690 -0.449 0.517
#> optimizer (nloptwrap) convergence code: 0 (OK)
#> boundary (singular) fit: see help('isSingular')
Ce modèle le plus complet combine l’interaction entre terreau et variété avec des effets aléatoires par répétition pour chacun des deux facteurs. Il offre la représentation la plus flexible de la structure des données, mais sa complexité accrue peut entraîner des problèmes d’estimation (singularité ou non-convergence). Son inclusion dans la comparaison permet d’évaluer si cette complexité supplémentaire améliore significativement l’ajustement.
modeles <- list(
"ANOVA Variété" = anovaVar,
"ANOVA Terreau" = anovaTer,
"ANOVA Sans Interaction" = anovaSansInter,
"ANOVA Sans Interaction + Repetition" = anovaSansInter2,
"ANOVA Avec Interaction" = anovaAvecInter,
"ANOVA Avec Interaction + Repetition" = anovaAvecInter2
)
anova_results <- anova( modeles$`ANOVA Variété`,
modeles$`ANOVA Terreau`,
modeles$`ANOVA Sans Interaction`,
modeles$`ANOVA Avec Interaction`,
modeles$`ANOVA Sans Interaction + Repetition`,
modeles$`ANOVA Avec Interaction + Repetition`
)rownames(anova_results) <- c(
"ANOVA Variété",
"ANOVA Terreau",
"ANOVA Sans Interaction",
"ANOVA Avec Interaction",
"ANOVA Sans Interaction + Répétition",
"ANOVA Avec Interaction + Répétition"
)
anova_results %>%
kable(caption = "Comparaison des modèles ANOVA",
booktabs = TRUE,
align = "c") %>%
kable_styling(full_width = FALSE,
font_size = 8,
bootstrap_options = c("striped", "hover", "condensed"),
latex_options = c("hold_position", "striped", "scale_down"))| npar | AIC | BIC | logLik | -2*log(L) | Chisq | Df | Pr(>Chisq) | |
|---|---|---|---|---|---|---|---|---|
| ANOVA Variété | 5 | 1684.538 | 1702.205 | -837.2689 | 1674.538 | NA | NA | NA |
| ANOVA Terreau | 6 | 1688.886 | 1710.086 | -838.4429 | 1676.886 | 0.0000000 | 1 | 1.0000000 |
| ANOVA Sans Interaction | 6 | 1683.223 | 1704.423 | -835.6115 | 1671.223 | 5.6627195 | 0 | NA |
| ANOVA Avec Interaction | 8 | 1687.001 | 1715.269 | -835.5007 | 1671.001 | 0.2216218 | 2 | 0.8951080 |
| ANOVA Sans Interaction + Répétition | 15 | 1683.890 | 1736.891 | -826.9449 | 1653.890 | 17.1115907 | 7 | 0.0166906 |
| ANOVA Avec Interaction + Répétition | 17 | 1687.816 | 1747.883 | -826.9078 | 1653.816 | 0.0742813 | 2 | 0.9635406 |
Le tableau de comparaison des modèles présente pour chaque modèle les critères d’information d’Akaike (AIC) et bayésien (BIC), ainsi que les résultats des tests du rapport de vraisemblance. L’AIC et le BIC pénalisent la log-vraisemblance par la complexité du modèle : un AIC/BIC plus faible indique un meilleur compromis ajustement-parcimonie. Le test du rapport de vraisemblance (LRT) teste si l’ajout de paramètres supplémentaires améliore significativement l’ajustement (p < 0,05 → amélioration significative).
L’analyse comparative des différents modèles ANOVA a été réalisée à l’aide des critères AIC et BIC ainsi que des tests du rapport de vraisemblance. Les résultats montrent que le modèle incluant les effets principaux du type de terreau et de la variété, sans interaction, présente le plus faible AIC.
Ainsi, le modèle retenu est celui incluant les effets principaux du terreau, de la variété et de la répétition, sans interaction.
Cette étude avait pour objectif d’analyser les facteurs explicatifs de la hauteur des plantes à partir d’un dispositif expérimental en blocs complets équilibrés, combinant trois types de terreaux (Anacarde, Caïlcédrat, Manguier) et deux variétés de plantes (Var1 et Var2), répétés quatre fois.
L’analyse descriptive a d’abord mis en évidence des différences de hauteur entre les groupes selon le type de terreau et la variété. Après détection et correction des valeurs extrêmes, les conditions de validité de l’ANOVA — normalité et homogénéité des variances — ont été vérifiées et jugées satisfaisantes dans l’ensemble.
La comparaison de plusieurs modèles linéaires mixtes, par les critères AIC/BIC et les tests de rapport de vraisemblance, a conduit à retenir le modèle à deux facteurs (terreau et variété) sans interaction, avec la répétition comme effet aléatoire. Ce modèle offre le meilleur équilibre entre ajustement et parcimonie.
Les résultats suggèrent que le type de terreau et la variété exercent chacun un effet significatif sur la hauteur des plantes, et que ces effets sont additifs (pas d’interaction significative). Ces résultats ont des implications pratiques pour le choix du substrat de culture et de la variété dans un objectif de maximisation de la croissance végétale.
Limites : La taille de l’échantillon, relativement modeste (24 observations), limite la puissance statistique des tests. Par ailleurs, d’autres facteurs non contrôlés (conditions d’arrosage, luminosité, température) pourraient introduire une variabilité résiduelle non captée par le modèle.