Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
r_atelier4 [2018/10/10 19:04]
katherinehebert [6. ANCOVA]
r_atelier4 [2021/10/13 23:51] (current)
lsherin
Line 1: Line 1:
 +<WRAP group>
 +<WRAP centeralign>​
 +<WRAP important>​
 +<wrap em> __AVIS IMPORTANT__ </​wrap> ​
 +
 +<wrap em> Depuis l'​automne 2021, ce wiki a été discontinué et n'est plus activement développé. </​wrap>​
 +
 +<wrap em> Tout le matériel mis à jour et les annonces pour la série d'​ateliers R du CSBQ se trouvent maintenant sur le [[https://​r.qcbs.ca/​fr/​workshops/​r-workshop-04/​|site web de la série d'​ateliers R du CSBQ]]. Veuillez mettre à jour vos signets en conséquence afin d'​éviter les documents périmés et/ou les liens brisés. </​wrap>​
 +
 +<wrap em> Merci de votre compréhension,​ </​wrap>​
 +
 +<wrap em> Vos coordonnateurs de la série d’ateliers R du CSBQ. </​wrap>​
 +
 +</​WRAP>​
 +</​WRAP>​
 +<WRAP clear></​WRAP>​
 +
 ======= Ateliers R du CSBQ ======= ======= Ateliers R du CSBQ =======
  
Line 12: Line 29:
 **Résumé :** Dans cet atelier, vous apprendrez comment effectuer des modèles linéaires fréquemment utilisés en écologie tels que la régression simple, l’analyse de variance (ANOVA), l’analyse de covariance (ANCOVA) et la régression multiple avec le logiciel R. Après avoir vérifié les postulats de ces modèles (visuellement et statistiquement) et transformé vos données si nécessaire,​ l’interprétation des résultats et leur représentation graphique n’auront plus de secrets pour vous! **Résumé :** Dans cet atelier, vous apprendrez comment effectuer des modèles linéaires fréquemment utilisés en écologie tels que la régression simple, l’analyse de variance (ANOVA), l’analyse de covariance (ANCOVA) et la régression multiple avec le logiciel R. Après avoir vérifié les postulats de ces modèles (visuellement et statistiquement) et transformé vos données si nécessaire,​ l’interprétation des résultats et leur représentation graphique n’auront plus de secrets pour vous!
  
-Lien vers la présentation Prezi associée ​: [[http://​prezi.com/​tbpa702q4uxr/​|Prezi]]+**Lien vers la nouvelle [[https://​qcbsrworkshops.github.io/​workshop04/​workshop04-fr/​workshop04-fr.html|présentation Rmarkdown]]** 
 + 
 +//S'il vous plaît essayez-la et dites aux coordonnateurs des ateliers R ce que vous en pensez!// 
 + 
 +Lien vers l'​ancienne ​[[http://​prezi.com/​tbpa702q4uxr/​|présentation ​Prezi]]
  
 Téléchargez les scripts R et les données pour cet atelier : Téléchargez les scripts R et les données pour cet atelier :
Line 80: Line 101:
 ^ ANCOVA ​             | :::        | Continue\\ ET catégorique| 2 ou plus| 2 ou plus| ^ ANCOVA ​             | :::        | Continue\\ ET catégorique| 2 ou plus| 2 ou plus|
 ^ Régression multiple | :::        | Continue| 2 ou plus| | ^ Régression multiple | :::        | Continue| 2 ou plus| |
-==== 1.3 Hypothèses ​de base du modèle linéaire ====+==== 1.3 Conditions ​de base du modèle linéaire ====
  
-Pour être valide, les modèles linéaires s'​appuient sur 4 hypothèses ​de base. Si les 4 hypothèses ​ne sont pas respectées,​ les résultats du modèle ne peuvent pas être interprétés de façon valable. ​+Pour être valide, les modèles linéaires s'​appuient sur 4 conditions ​de base. Si les 4 conditions ​ne sont pas respectées,​ les résultats du modèle ne peuvent pas être interprétés de façon valable. ​
  
   - Les résidus sont **indépendants**   - Les résidus sont **indépendants**
Line 89: Line 110:
   - Les résidus sont **homoscédastiques** (i.e. leur variance est constante)   - Les résidus sont **homoscédastiques** (i.e. leur variance est constante)
  
-Notez que ces 4 hypothèses ​concernent les résidus, et non les variables réponses ou explicatives. Les résidus doivent être indépendants,​ c'​est-à-dire qu'il n'y a pas de structure manquante dans le modèle (comme une autocorrélation spatiale ou temporelle). Les résidus doivent aussi suivre une distribution normale avec une moyenne de 0, signifiant que la majorité des résidus ont une valeur proche de 0 (i.e. l'​erreur est très petite) et que la distribution est symmétrique (i.e. la variable réponse est sous-estimée autant qu'​elle est surestimée). Les residus doivent être homoscédastiques,​ c'​est-à-dire que l'​erreur ne change pas beaucoup quand les variables explicatives changent de valeur.+Notez que ces 4 conditions ​concernent les résidus, et non les variables réponses ou explicatives. Les résidus doivent être indépendants,​ c'​est-à-dire qu'il n'y a pas de structure manquante dans le modèle (comme une autocorrélation spatiale ou temporelle). Les résidus doivent aussi suivre une distribution normale avec une moyenne de 0, signifiant que la majorité des résidus ont une valeur proche de 0 (i.e. l'​erreur est très petite) et que la distribution est symmétrique (i.e. la variable réponse est sous-estimée autant qu'​elle est surestimée). Les residus doivent être homoscédastiques,​ c'​est-à-dire que l'​erreur ne change pas beaucoup quand les variables explicatives changent de valeur.
  
-Dans les section suivantes, nous ne répétons pas les hypothèses ​ci-dessus pour chaque modèle. **Prenez conscience, par contre, que ces hypothèses ​de base s'​appliquent à tous les modèles linéaires, incluant tous ceux qui seront abordés ci-dessous.**+Dans les section suivantes, nous ne répétons pas les conditions ​ci-dessus pour chaque modèle. **Prenez conscience, par contre, que ces conditions ​de base s'​appliquent à tous les modèles linéaires, incluant tous ceux qui seront abordés ci-dessous.**
  
 ====1.4 Statistiques de tests et p-values==== ====1.4 Statistiques de tests et p-values====
Line 104: Line 125:
   - Visualiser les données (ceci peut aussi se faire plus tard)   - Visualiser les données (ceci peut aussi se faire plus tard)
   - Créer un modèle   - Créer un modèle
-  - Tester les 4 hypothèses ​de base du modèle +  - Tester les 4 conditions ​de base du modèle 
-  - Ajuster le modèle si les hypothèses ​de base ne sont pas respectées+  - Ajuster le modèle si les conditions ​de base ne sont pas respectées
   - Interpréter les résultats du modèle   - Interpréter les résultats du modèle
  
 ===== 2. Régression linéaire simple ===== ===== 2. Régression linéaire simple =====
  
-La régression linéaire simple est un type de modèle linéaire qui contient seulement une variable explicative continue. La régression détermine si les deux variables (1 explicative,​ et 1 réponse) sont significativement corrélés.+La régression linéaire simple est un type de modèle linéaire qui contient ​**seulement une variable explicative continue**. La régression détermine si les deux variables (1 explicative,​ et 1 réponse) sont significativement corrélés.
  
-Une régression linéaire simple concerne deux paramètres qui doivent être estimés: l'​ordonnée à l'​origine (β<​sub>​0</​sub>​) et un coefficient de corrélation (β<​sub>​1</​sub>​).  ​+Une régression linéaire simple concerne deux paramètres qui doivent être estimés: l'**ordonnée à l'​origine** (β<​sub>​0</​sub>​) et un **coefficient de corrélation** (β<​sub>​1</​sub>​).  ​
  
 La méthode des moindres carrés est la méthode la plus couramment utilisée, et est employée par défaut dans la fonction ''​lm()''​ dans R. La méthode des moindres carrés fait passer une droite de manière à minimiser la somme des distances verticales au carré entre la droite et les données observées : autrement dit, la méthode vise à minimiser les résidus. ​ La méthode des moindres carrés est la méthode la plus couramment utilisée, et est employée par défaut dans la fonction ''​lm()''​ dans R. La méthode des moindres carrés fait passer une droite de manière à minimiser la somme des distances verticales au carré entre la droite et les données observées : autrement dit, la méthode vise à minimiser les résidus. ​
Line 171: Line 192:
 lm1 <- lm(bird$MaxAbund ~ bird$Mass) # où Y ~ X signifie Y "en fonction de" X> lm1 <- lm(bird$MaxAbund ~ bird$Mass) # où Y ~ X signifie Y "en fonction de" X>
 </​code>​ </​code>​
-==== 2.2 Validation des hypothèses ​de base ====+==== 2.2 Validation des conditions ​de base ====
  
 <code rsplus | Graphiques de diagnostic > <code rsplus | Graphiques de diagnostic >
Line 197: Line 218:
  
 \\  \\ 
-//​**Graphique "​Scale-location"​**//​ - Le troisième graphique de diagnostique permet de vérifier si la dispersion des résidus augmente pour une valeur prédite donnée (i.e. si la dispersion des résidus est causée par la variable explicative). Si la dispersion augmente, ​l'​hypothèse ​de base d'​homoscédasticité n'est pas respectée.+//​**Graphique "​Scale-location"​**//​ - Le troisième graphique de diagnostique permet de vérifier si la dispersion des résidus augmente pour une valeur prédite donnée (i.e. si la dispersion des résidus est causée par la variable explicative). Si la dispersion augmente, ​la condition ​de base d'​homoscédasticité n'est pas respectée.
  
 {{:​workshop_3_lm1_scale-location.png?​300|}} {{:​workshop_3_lm1_scale-location.png?​300|}}
Line 215: Line 236:
 === Influence des observations aberrantes=== === Influence des observations aberrantes===
  
-//​**Diagramme de résidus vs. influence**//​ - En plus de valider les hypothèses de bases ci-dessus, on s'​intéresse aussi à déterminer si certaines observations ont une forte influence. Bien qu'on ne teste pas un test d'​hypothèse ​de base, ceci peut influencer notre interprétation des données. Si une ou certaines observations sont aberrantes (dont, si elles ont des valeurs très différentes des autres), le modèle peut être mal ajusté en raison de leur influence exagérée sur la calculation du modèle. Si (et seulement si!) ces observations correspondent à des erreurs de mesure ou à des exceptions, elles peuvent être retirées du jeu de données.\\ ​+//​**Diagramme de résidus vs. influence**//​ - En plus de valider les hypothèses de bases ci-dessus, on s'​intéresse aussi à déterminer si certaines observations ont une forte influence. Bien qu'on ne teste pas un test de condition ​de base, ceci peut influencer notre interprétation des données. Si une ou certaines observations sont aberrantes (dont, si elles ont des valeurs très différentes des autres), le modèle peut être mal ajusté en raison de leur influence exagérée sur la calculation du modèle. Si (et seulement si!) ces observations correspondent à des erreurs de mesure ou à des exceptions, elles peuvent être retirées du jeu de données.\\ ​
  
 {{:​workshop_3_lm1_leverage.png?​300|}} {{:​workshop_3_lm1_leverage.png?​300|}}
 ==== 2.3 Normalisation des données ==== ==== 2.3 Normalisation des données ====
  
-Dans l'​exemple précédent,​ les résidus du modèle ne suivaient pas une distribution normale, alors l'​hypothèse ​de base de normalité est invalide. On peut quand même utiliser un modèle linéaire si on réussit à normaliser les données, afin de respecter la condition de normalité. L'​étape suivante est donc de normaliser les données à l'aide de transformations mathématiques. Souvent, si on normalise les variables explicatives et/ou réponses, les résidus suivent une distribution normale. En plus des diagramme QQ, on peut évaluer la normalité d'une variable en traçant un histogramme avec la fonction ''​hist()'',​ et en vérifiant visuellement que la variable suit une distribution normale. Par exemple :+Dans l'​exemple précédent,​ les résidus du modèle ne suivaient pas une distribution normale, alors la condition ​de base de normalité est invalide. On peut quand même utiliser un modèle linéaire si on réussit à normaliser les données, afin de respecter la condition de normalité. L'​étape suivante est donc de normaliser les données à l'aide de transformations mathématiques. Souvent, si on normalise les variables explicatives et/ou réponses, les résidus suivent une distribution normale. En plus des diagramme QQ, on peut évaluer la normalité d'une variable en traçant un histogramme avec la fonction ''​hist()'',​ et en vérifiant visuellement que la variable suit une distribution normale. Par exemple :
  
 <code rsplus | Vérifier la normalité des données: fonction hist()> <code rsplus | Vérifier la normalité des données: fonction hist()>
Line 1056: Line 1077:
  
 **__Note :__** Un variable //fixe// est une variable d'​intérêt pour une étude (e.g. la masse des oiseaux). En comparaison,​ une variable aléatoire représente surtout une source de bruit qu'on veut contrôler (i.e. le site où les oiseaux ont été échantillonnés). Si votre modèle comporte des effets aléatoires,​ consultez l'​atelier sur les [[http://​qcbs.ca/​wiki/​r_atelier6|modèles linéaires mixtes]]! **__Note :__** Un variable //fixe// est une variable d'​intérêt pour une étude (e.g. la masse des oiseaux). En comparaison,​ une variable aléatoire représente surtout une source de bruit qu'on veut contrôler (i.e. le site où les oiseaux ont été échantillonnés). Si votre modèle comporte des effets aléatoires,​ consultez l'​atelier sur les [[http://​qcbs.ca/​wiki/​r_atelier6|modèles linéaires mixtes]]!
- 
-==== 6.2 Types d'​ANCOVA ==== 
-===== 3. ANOVA ===== 
-L'​analyse de la variance (ANOVA) est une généralisation du test de t de Student. L'​ANOVA permet de voir si la moyenne d'une variable continue est différente entre trois ou plusieurs groupes ou traitements (Rappelez-vous que le nombre de groupes est limité à deux pour le test de t). L'​ANOVA compare la variable réponse y entre les groupes (i.e. la variable explicative) de la manière suivante : 
- 
-<m> {y_{ij}} = µ + {A_i} + {ε_{ij}} </m> 
- 
- 
- 
-µ est la moyenne globale de la variable réponse,\\ 
-A<​sub>​i</​sub>​ est l'​effet du groupe i pour le facteur A,\\ 
-i varie de 1 à n (n > 2),\\ 
-ε<​sub>​ij</​sub>​ sont les résidus du modèle (i.e. la variance inexpliquée). 
- 
-L'​ANOVA tente de détecter des différences au niveau de la variable réponse y entre les groupes en posant les hypothèses suivantes : 
- 
-H<​sub>​0</​sub>:​ µ<​sub>​1</​sub>​ = µ<​sub>​2</​sub>​ =... = µ<​sub>​j</​sub>​ =... = µ<​sub>​n</​sub>​\\ 
-H<​sub>​1</​sub>:​ il y a au moins une moyenne µ<​sub>​j</​sub>​ différente des autres 
- 
-L'​ANOVA se base sur la partition de la somme des carrés des écarts à la moyenne pour déterminer si une hypothèse doit être acceptée ou rejetée. L'​ANOVA compare la variance entre les traitements à celle à l'​intérieur des traitements (i.e. la variance intra-traitement). Si la variance entre les traitements est supérieure à la variance intra-traitement,​ la variable explicative a un effet plus important que l'​erreur aléatoire (due à la variance intra-traitement). La variable explicative est donc susceptible d'​influencer significativement la variable réponse. 
- 
-La comparaison de la variance entre les traitements à celle intra-traitement permet de calculer la statistique F. Cette statistique correspond au ratio entre la moyenne des carrés des traitements (MS<​sub>​Trt</​sub>​) et la moyenne des carrés des erreurs (MS<​sub>​E</​sub>​). Ces deux termes sont obtenus en divisant leurs sommes des carrés respectives par leurs degrés de liberté (voir table ci-dessous). Une valeur de p peut ensuite être calculée à partir de la statistique de F qui suit une distribution de khi carré (χ<​sup>​2</​sup>​). 
- 
-^ Source de\\ variation^ Degrés de\\ liberté (df)^ Somme des carrés\\ des écarts à la moyenne^ Moyenne des carrés ^ Statistique de F^ 
-^ Total   ​|<​m>​ra-1</​m>​| <​m>​{SS_Tot}=sum{i,​j}{}({y_ij}-overline{y})^2</​m> ​             |     | |  
-^ Facteur A|<​m>​a-1</​m>​| <​m>​{SS_FacteurA}= r sum{i}{}({overline{y}_i}-overline{y})^2</​m>​|<​m>​{MS_FacteurA}={SS_FacteurA}/​{a-1}</​m>​|<​m>​F={MS_FacteurA}/​{MS_E}</​m>​| 
-^ Résidus ​  ​|<​m>​a(r-1)</​m>​| <​m>​{SS_E}= sum{i,​j}{}({y_ij}-{overline{y}_i})^2</​m> ​            ​|<​m>​{MS_E}={SS_E}/​{a(r-1)}</​m>​| | 
- 
-a: nombre de niveaux de la variable explicative A; r: nombre de répétitions par traitement; <​m>​overline{y}</​m>:​ moyenne globale de la variable réponse; <​m>​overline{y}</​m><​sub>​i</​sub>​ : moyenne de la variable réponse du traitement i. 
- 
- 
- 
-==== 3.3 Contrastes ==== 
- 
-  * Les contrastes sont des comparaisons de moyennes basées sur des hypothèses //a priori//, 
-  * Ces groupes peuvent être composés d'un ou plusieurs niveaux d'un facteur, 
-  * On peut tester une hypothèse simple (e.g. μ<​sub>​1</​sub>​ = μ<​sub>​2</​sub>​) ou des hypothèses plus complexes (e.g. (μ<​sub>​1</​sub>​ + μ<​sub>​2</​sub>​)/​3 == μ<​sub>​3</​sub>​). 
- 
-Le nombre de comparaisons doit être plus bas ou égal au nombre de degrés de liberté de l'​ANOVA. Ces comparaisons doivent être indépendantes l'une de l'​autre. Pour plus de détails, voyez la [[http://​qcbs.ca/​wiki/​r_atelier4#​contrastes_section_avancee_et_optionnelle| section avancée sur les contrastes]] plus bas.  
-==== 3.4 Effectuer une ANOVA ==== 
- 
-Commençons tout d'​abord par visualiser les données avec la fonction ''​boxplot()''​. Rappelez-vous que, dans R, les groupes sont ordonnés par ordre alphabétique par défaut. Il est possible de réorganiser les groupes autrement. Par exemple, on peut les ordonner par ordre croissant de la médiane de chaque diète.\\ Une autre façon de visualiser les effets des facteurs est d'​utiliser la fonction ''​plot.design()''​. Cette fonction permet de représenter les valeurs moyennes des niveaux d'un facteur (par une ligne verticale) et la moyenne globale de la variable réponse (par une ligne horizontale). 
- 
-<code rsplus | ANOVA> 
-# Ordre alphabétique par défaut 
-boxplot(logMaxAbund ~ Diet, data=bird) 
- 
-# Réorganiser l'​ordre des facteurs 
-med <- sort(tapply(bird$logMaxAbund,​ bird$Diet, median)) 
-boxplot(logMaxAbund ~ factor(Diet,​ levels=names(med)),​ data=bird, col=c("​white","​lightblue1",​ 
-           "​skyblue1","​skyblue3","​skyblue4"​)) 
- 
-plot.design(logMaxAbund ~ Diet, data=bird, ylab = expression("​log"​[10]*"​(Maximum Abundance)"​)) 
-</​code>​ 
- 
-{{:​lm_fig_11.png?​450|}} ​  ​{{:​plot_design.png?​350|}} 
- 
-Nous sommes maintenant prêts à effectuer une ANOVA. Dans R, la fonction ''​aov()''​ permet d'​effectuer une ANOVA directement. Il est également possible d'​effectuer une ANOVA avec la fonction ''​anova()''​ qui exécute l'​ANOVA comme un modèle linéaire : 
- 
-<code rsplus| ANOVA dans R> 
-# En utilisant aov() 
-aov1 <- aov(logMaxAbund ~ Diet, data=bird) 
-summary(aov1) ​ 
- 
-# En utilisant lm() 
-anov1 <- lm(logMaxAbund ~ Diet, data=bird) 
-anova(anov1) ​ 
-</​code>​ 
-==== 3.5 Vérifications des suppositions ==== 
- 
-<code rsplus| Diagnostic du modèle > 
-# Diagrammes de diagnostic 
-opar <- par(mfrow=c(2,​2)) 
-plot(anov1) 
-par(opar) 
- 
-# Test de la supposition de la normalité des résidus 
-shapiro.test(resid(anov1)) 
- 
-# Test de la supposition de l'​homogénéité de la variance 
-bartlett.test(logMaxAbund ~ Diet, data=bird) 
-</​code>​ 
- 
-Idéalement,​ le premier graphique devrait montrer une dispersion similaire pour chaque niveau de diète. Toutefois, les tests de Shapiro et de Bartlett ne sont pas significatifs. On peut supposer que les résidus sont distribués normalement et que les variances sont égales. 
-==== 3.6 Sortie du modèle ==== 
-Lorsque le modèle d'​ANOVA a été validé, on peut interpréter les résultats correctement. La sortie du modèle fournie par R dépend de la fonction qui a été utilisée pour effectuer l'​ANOVA. Si la fonction ''​aov()''​ a été utilisée : 
- 
-<code rsplus|> 
-aov1 <- aov(logMaxAbund ~ Diet, data=bird) 
-</​code>​ 
- 
-les résultats de l'​ANOVA peuvent être visualisés avec la fonction ''​summary()''​ : 
-<code rsplus|> 
-summary(aov1) 
-</​code>​ 
- 
-Si la fonction ''​lm()''​ a été utilisée : 
-<code rsplus|> 
-anov1 <- lm(logMaxAbund ~ Diet, data=bird) 
-</​code>​ 
- 
-les résultats de l'​ANOVA peuvent être visualisés avec la fonction ''​anova()''​ : 
-<code rsplus|> 
-anova(anov1) 
-</​code>​ 
- 
-Dans les deux cas, la sortie dans R sera la même : 
- 
-            Df Sum Sq Mean Sq F value Pr(>​F)  ​ 
-  Diet        4  5.106 ​  ​ 1.276 ​  ​ 2.836 0.0341 * 
-  Residuals ​   49 22.052 ​  ​ 0.450 ​                 
-  --- 
-  Signif. codes: ​ 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
- 
-Cette sortie de R représente le tableau de l'​ANOVA. On y retrouve les degrés de liberté, la somme des carrés, la moyenne de la somme des carrés, la statistique de F ainsi qu'une valeur de p. Dans l'​exemple de la diète des oiseaux, la diète influence significativement l'​abondance des oiseaux car la valeur de p est inférieure à 0.05. L'​hypothèse nulle est rejetée, ce qui signifie qu'au moins une des diètes influence l'​abondance différemment des autres diètes. 
-==== 3.7 Tests complémentaires ==== 
- 
-Si l'​hypothèse nulle est rejetée, il n'est pas possible de savoir quels niveaux de traitements sont différents des autres avec une simple ANOVA. Pour déterminer quels niveaux diffèrent des autres, il est nécessaire d'​effectuer un test post hoc. Ce test compare les combinaisons de niveaux deux à deux et identifie où se trouvent les différences. Il existe plusieurs tests post hoc (e.g. Fischer’s least significant difference, Duncan’s new multiple range test, Newman-Keuls method, Dunnett’s test, etc.), mais le test de Tukey est probablement celui qui est le plus utilisé. Dans R, on utilise la fonction ''​TukeyHSD()''​ pour effectuer ce test : 
- 
-<code rsplus| Test de Tukey> 
-# À quel niveau se situe la différence de diète ?  
-TukeyHSD(aov(anov1),​ordered=T) 
- 
-# Cette commande est équivalente à la précédente : 
-TukeyHSD(aov1,​ordered=T) ​ 
-</​code>​ 
- 
-La sortie de R retourne un tableau qui fait la liste de toutes les combinaisons deux à deux des niveaux de la variable explicative et qui identifie quel(s) traitement(s) diffère(ent) des autres :\\ 
- 
-  Tukey multiple comparisons of means 95% family-wise confidence level 
-  factor levels have been ordered 
-  Fit: aov(formula = anov1) 
-  $Diet 
-                                diff             ​lwr ​     upr      p adj 
-  Vertebrate-InsectVert ​ 0.3364295 -1.11457613 1.787435 0.9645742 
-  Insect-InsectVert ​     0.6434334 -0.76550517 2.052372 0.6965047 
-  Plant-InsectVert ​      ​ 0.8844338 -1.01537856 2.784246 0.6812494 
-  PlantInsect-InsectVert 1.0657336 -0.35030287 2.481770 0.2235587 
-  Insect-Vertebrate ​     0.3070039 -0.38670951 1.000717 0.7204249 
-  Plant-Vertebrate ​      ​ 0.5480043 -0.90300137 1.999010 0.8211024 
-  PlantInsect-Vertebrate 0.7293041 ​ 0.02128588 1.437322 0.0405485 
-  Plant-Insect ​          ​ 0.2410004 -1.16793813 1.649939 0.9884504 
-  PlantInsect-Insect ​    ​ 0.4223003 -0.19493574 1.039536 0.3117612 
-  PlantInsect-Plant ​     0.1812999 -1.23473664 1.597336 0.9961844 
- 
-Dans ce cas-ci, la seule différence significative d'​abondance se retrouve entre les diètes "​PlantInsect"​ et  "​Vertebrate"​. 
-==== 3.8 Représentations graphiques ==== 
- 
-Après avoir vérifié les suppositions de base, interprété les résultats et identifié les niveaux significatifs à l'aide de tests post hoc ou de contrastes, les résultats d'une ANOVA peuvent être représentés graphiquement à l'aide de la fonction ''​barplot()''​. Avec cette fonction, R produit un graphique de la variable réponse en fonction des niveaux de traitement. Les erreurs types ainsi que des lettres (représentant le résultat d'un test post hoc) peuvent y être ajoutées. 
- 
-<code rsplus| Fonction barplot> 
-# Représentation graphique d'un modèle d'​ANOVA à l'aide de la fonction barplot() 
- 
-sd <- tapply(bird$logMaxAbund,​list(bird$Diet),​sd) ​ 
-means <- tapply(bird$logMaxAbund,​list(bird$Diet),​mean) 
-n <- length(bird$logMaxAbund) 
-se <- 1.96*sd/​sqrt(n) 
- 
-bp <- barplot(means,​ col=c("​white","​lightblue1","​skyblue1","​skyblue3","​skyblue4"​), ​ 
-       ylab = expression("​log"​[10]*"​(Maximum Abundance)"​),​ xlab="​Diet",​ ylim=c(0,​1.8)) 
- 
- 
-# Ajout des lignes verticales représentant les erreurs types 
-segments(bp,​ means - se, bp, means + se, lwd=2) 
-# et des lignes horizontales 
-segments(bp - 0.1, means - se, bp + 0.1, means - se, lwd=2) 
-segments(bp - 0.1, means + se, bp + 0.1, means + se, lwd=2) 
-</​code>​ 
- 
-{{:​lm_fig_12.png?​650|}} 
- 
- 
- 
-===== 4. ANOVA à deux critères de classification ===== 
- 
-Il est possible d'​utiliser deux variables explicatives dans une ANOVA afin de mieux expliquer la variabilité d'une variable réponse (cf. section 3). Afin d'​inclure une deuxième variable explicative dans une ANOVA, le modèle mathématique doit être réécrit de manière à inclure l'​interaction entre ces deux variables : 
- 
-<m> {y_{ijk}} = µ + {A_i} + {B_j} + {A_i}{B_j} + {ε_{ijk}} </m> 
- 
- 
- 
-µ est la moyenne globale de la variable réponse,\\ 
-A<​sub>​i</​sub>​ est l'​effet du niveau i du facteur A,\\ 
-B<​sub>​j</​sub>​ est l'​effet du niveau j du facteur B,\\ 
-A<​sub>​i</​sub>​B<​sub>​j</​sub> ​ est l'​interaction entre les deux facteurs,\\ 
-i et j varient de 1 à n (n ≥ 2),\\ 
-ε<​sub>​ijk</​sub>​ sont les résidus du modèle.\\ 
- 
-Les hypothèses nulles d'une ANOVA à deux critères de classification sont légèrement différentes de celles d'une ANOVA à un critère de classification : 
- 
-H<​sub>​01</​sub>:​ Il n'y a pas de différence de moyenne parmi les niveaux du facteur A; µ<​sub>​a1</​sub>​ = µ<​sub>​a2</​sub>​ = ... = µ<​sub>​ai</​sub>​ =... = µ<​sub>​an</​sub>​\\ 
-H<​sub>​02</​sub>:​ Il n'y a pas de différence de moyenne parmi les niveaux du facteur B; µ<​sub>​b1</​sub>​ = µ<​sub>​b2</​sub>​ = ... = µ<​sub>​bi</​sub>​ =... = µ<​sub>​bm</​sub>​\\ 
-H<​sub>​03</​sub>:​ Il n'y a pas d'​interaction entre les facteurs A et B. 
- 
-Le tableau de calcul de l'​ANOVA vu à la section précédente doit être modifié afin d'​inclure le deuxième facteur et l'​interaction entre ces deux facteurs : 
- 
-^ Source de\\ variation^ Degrés de\\ liberté (df)^ Sommes des carrés\\ des écarts à la moyenne^ Moyenne des carrés ^ Statistique de F^ 
-^ Total                  |<​m>​abr-1</​m> ​    | <​m>​{SS_Tot}=sum{i,​j,​k}{}({y_ijk}-overline{y})^2</​m> ​            | | |  
-^ Intra-\\ cases (erreur)|<​m>​ab(r-1)</​m> ​  | <​m>​{SS_E}= sum{i,​j,​k}{}({y}_ijk-{overline{y}_ij})^2</​m> ​        ​|<​m>​{MS_E}={SS_E}/​{ab(r-1)}</​m>​| ​ | 
-^ Cases                  |<​m>​ab-1</​m> ​     | <​m>​{SS_Cells}= sum{i,​j}{}({overline{y}_ij}-overline{y})^2</​m> ​  | | | 
-^ Facteur A               ​|<​m>​a-1</​m> ​      | <​m>​{SS_FacteurA}= rb sum{i}{}({overline{y}_i.}-overline{y})^2</​m>​|<​m>​{MS_FacteurA}={SS_FacteurA}/​{a-1}</​m>​|<​m>​{F_FacteurA}={MS_FacteurA}/​{MS_E}</​m>​| 
-^ Facteur B               ​|<​m>​b-1</​m> ​      | <​m>​{SS_FacteurB}= ra sum{j}{}({overline{y}_.j}-overline{y})^2</​m>​|<​m>​{MS_FacteurB}={SS_FacteurB}/​{b-1}</​m>​|<​m>​{F_FacteurB}={MS_FacteurB}/​{MS_E}</​m>​| 
-^ Interaction\\ entre A et B       ​|<​m>​(a-1)(b-1)</​m>​| <​m>​{SS_AB}= r sum{i,​j,​k}{}({overline{y}_{..k}}-{overline{y}_{.jk}}-{overline{y}_{i.k}})^2</​m>​| <​m>​{MS_AB}={SS_AB}/​{(a-1)(b-1)}</​m>​|<​m>​{F_AB}={MS_AB}/​{MS_E}</​m>​| 
- 
-a: nombre de niveaux de la variable explicative A; b: nombre de niveaux de la variable explicative B;  r: nombre de répétitions par traitement 
-==== Effectuer une ANOVA à deux critères de classification ==== 
- 
-Dans R, une ANOVA à deux critères de classification est effectuée de la même manière qu'une ANOVA à un critère de classification avec la fonction ''​lm()''​. ​ 
- 
----- 
- 
-**Défi 2** 
- 
-Examinez les effets des facteurs "​Diet",​ "​Aquatic"​ et de leur interaction sur l'​abondance maximale d'​oiseaux. ​ 
- 
-Rappelez-vous que vous devez vérifier les suppositions statistiques de base avant d'​interpréter les résultats d'une ANOVA, soit :\\ 
-  - Distribution normale des rsidus du modèle 
-  - Homoscédasticité des résidus de la variance 
-Cette vérification peut être faite en utilisant les quatre graphiques de diagnostic expliqués dans la section précédente.\\ 
- 
-++++ Défi 2: Solution |  
-<code rsplus> 
-anov4 <- lm(logMaxAbund ~ Diet*Aquatic,​ data=bird) 
-opar <- par(mfrow=c(2,​2)) 
-plot(anova4) 
-par(opar) 
-summary(anov4) ​ 
-anova(anov4) 
-</​code>​ 
- 
-La fonction ''​anova()''​ permet de visualiser le tableau d'​ANOVA du modèle :\\ 
- 
-  Analysis of Variance Table 
-  Response: logMaxAbund 
-            Df  Sum Sq Mean Sq  F value Pr(>​F)  ​ 
-  Diet          4  5.1059 ​ 1.27647 ​ 3.0378 ​ 0.02669 * 
-  Aquatic ​      ​ 1 ​ 0.3183 ​ 0.31834 ​ 0.7576 ​ 0.38870  ​ 
-  Diet:​Aquatic ​ 3  2.8250 ​ 0.94167 ​ 2.2410 ​ 0.09644 . 
-  Residuals ​   45 18.9087 0.42019 ​                 ​ 
-  --- 
-  Signif. codes: ​ 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
- 
-Dans ce cas-ci, le seul facteur significatif est la diète. La valeur de p de l'​interaction n'est pas significative,​ ce qui signifie que l'​effet de la diète est le même peu importe si l'​oiseau est aquatique ou non. Le seuil de signification peut aussi être testé en comparant deux modèles nichés, i.e. en incluant un premier modèle avec une interaction et un deuxième modèle avec sans l'​interaction. La fonction ''​anova()''​ est utilisée : 
- 
-<code rsplus| Comparaison de deux modèles d'​ANOVA nichés> 
-anov5 <- lm(logMaxAbund ~ Diet + Aquatic, data=bird) 
-anova(anov5,​ anov4) 
-</​code>​ 
- 
-Voici la sortie dans R : 
- 
-   ​Analysis of Variance Table 
-   Model 1: logMaxAbund ~ Diet + Aquatic 
-   Model 2: logMaxAbund ~ Diet * Aquatic 
-  Res.Df ​   RSS Df Sum of Sq     ​ F ​ Pr(>​F)  ​ 
-   ​1 ​    48 21.734 ​                             
-   ​2 ​    45 1 8.909 ​ 3     ​ 2.825 2.241 0.09644 . 
-   --- 
-   ​Signif. codes: ​ 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
- 
-Étant donné que la seule différence entre ces deux modèles est la présence de l'​interaction,​ cette sortie de R présente le seuil de signification de cette interaction. Dans ce cas-ci, l'​interaction n'est pas significative et peut donc être retirée du modèle.\\ ​ 
-Lorsque l'​interaction est significative,​ rappelez-vous que chaque facteur ne peut pas être interprété séparément. Seule l'​interaction peut l'​être. 
- 
-__**Note :**__ Le tableau d'​ANOVA indique que le nombre de degrés de liberté pour l'​interaction entre la diète et le type d'​oiseau (aquatique ou non) est de 3. Selon la notation mathématique du tableau de l'​ANOVA à deux critères de classification (pour les plans équilibrés),​ a = 5 et b = 2 et le nombre de degrés de liberté est de (a-1)(b-1) = 4*1 = 4. La sortie de R indique cependant que le nombre de degrés de liberté est de 3. Cette interaction est extrêmement non équilibrée () : les oiseaux aquatiques ne se nourrissent pas de plante, donc ce niveau n'est pas considéré (prenez note du NA dans la sortie de summary(anov4)). Consultez la section avancée sur les [[http://​qcbs.ca/​wiki/​r_atelier4#​anova_non_equilibree_section_avancee_et_optionnelle|ANOVA non équilibrées]] plus bas pour plus de détails. ​ 
-++++ 
- 
----- 
-==== 4.2 Diagramme d'​interaction ==== 
- 
-Les interactions peuvent être visualisées à l'aide de la fonction ''​interaction.plot()''​ : 
- 
-<code rsplus| Diagramme d'​interaction>​ 
-interaction.plot(bird$Diet,​ bird$Aquatic,​ bird$logMaxAbund,​ col="​black", ​ 
-                 ylab = expression("​log"​[10]*"​(Maximum Abundance)"​),​ xlab="​Diet"​) 
-</​code>​ 
- 
-{{:​interaction_plot.png?​650|}} 
- 
-Qu'​est-ce que le trou sur la ligne des oiseaux aquatiques signifie ? 
- 
-<code rsplus| Plan non équilibré>​ 
-table(bird$Diet,​ bird$Aquatic) 
-</​code>​ 
-               ​0 ​ 1 
-  Insect ​     14  6 
-  InsectVert ​  ​1 ​ 1 
-  Plant        2  0 
-  PlantInsect 17  1 
-  Vertebrate ​  ​5 ​ 7 
- 
-Le plan est non équilibré : il y a un nombre inégal d'​observations entre les diètes pour les oiseaux aquatiques (représentés par le 1) et les oiseaux terrestres (représentés par le 0). Consultez la section avancée ci-dessous pour obtenir plus de détails sur les ANOVA à plan non équilibré. 
- 
----- 
- 
-**Défi 3** 
- 
-Tester le seuil de signification du facteur "​Aquatic"​ en comparant deux modèles nichés (i.e. avec et sans ce facteur). 
- 
-++++ Défi 3: Solution |  
-<code rsplus> 
-anova(anov3,​anov5) # Souvenez-vous que anov3 est le modèle avec le facteur "​Diet"​ seulement. 
-</​code>​ 
-++++ 
- 
----- 
-===== 5. ANOVA non équilibrée (section avancée et optionnelle) ===== 
- 
-<​hidden>​ 
-Les ANOVA à un et à deux critères de classification nous permettent de déterminer les effets de variables catégoriques sur une variable réponse continue lorsque nous avons un plan expérimental équilibré (i.e. lorsque le nombre de répétitions est égal pour chaque niveau de facteur). Cependant, la perte d'​unités expérimentales au cours d'une expérience ou des restrictions techniques dues au plan expérimental peuvent faire que le plan ne sera pas équilibré. Dans de telles situations, les résultats d'​ANOVA peuvent mener à des interprétations erronées en raison d'un mauvais calcul de la somme des carrés. Pour des plans expérimentaux non équilibrés,​ l'​ANOVA doit être modifiée pour prendre en compte les données manquantes. 
- 
-Le modèle mathématique,​ les hypothèses statistiques et les suppositions d'une ANOVA à plan non équilibré demeurent les mêmes que pour l'​ANOVA à plan équilibré. Le calcul de la somme des carrés, par contre, est différent. 
- 
-Pour un plan expérimental non équilibré,​ les hypothèses statistiques sont les suivantes : 
- 
-H<​sub>​0</​sub>:​ µ<​sub>​1</​sub>​ = µ<​sub>​2</​sub>​ =... = µ<​sub>​i</​sub> ​ =... = µ<​sub>​n</​sub>​\\ 
-H<​sub>​1</​sub>:​ il y a au moins une moyenne µi qui diffère des autres. 
- 
-On utilise ce modèle mathématique : 
- 
-<​m>​{y_{ijk}} = µ + {A_i} + {B_j} + {A_i}{B_j} + {ε_{ijk}}</​m>​ 
- 
-Rappelez-vous du calcul de la somme des carrés dans le cas d'une ANOVA à plan équilibré : 
- 
-<m> {SS_FactorA} = rb sum{i}{}{({overline{y}_{i.}}-overline{y})}^2 = SS(A) </​m>​\\ 
-<m> {SS_FactorB} = ra sum{j}{}{({overline{y}_{.j}}-overline{y})}^2 = SS(B|A) = SS(A,​B)-SS(B) </​m>​\\ 
-<m> {SS_AB} = r sum{i,​j,​k}{}({overline{y}_{..k}}-{overline{y}_{.jk}}-{overline{y}_{i.k}})^2 = SS(A,​B,​AB)-SS(A,​B) </m> 
- 
- 
-Ceci correspond à une somme des carrés séquentielle (aussi appelée de type I), car l'​effet d'un facteur B est calculé après avoir retiré l'​effet d'un facteur A. L'​interaction est calculée après avoir retiré les effets principaux de ces deux facteurs. Ces calculs dépendent de la taille de l'​échantillon,​ car l'​effet de chaque facteur est calculé après avoir retiré l'​effet du facteur précédent. 
- 
-Dans le cas d'un plan expérimental non équilibré,​ les résultats d'​ANOVA dépendent de l'​ordre dans lequel chaque variable apparaît dans le modèle. Voyez comment les résultats diffèrent en comparant les deux modèles suivants : 
- 
-<code rsplus| ANOVA non équilibrée>​ 
-unb_anov1 <- lm(logMaxAbund ~ Aquatic + Diet, data=bird) 
-unb_anov2 <- lm(logMaxAbund ~ Diet + Aquatic, data=bird) 
-anova(unb_anov1) 
-anova(unb_anov2) 
-</​code>​ 
- 
-Bien que les variables explicatives soient les mêmes pour chaque modèle, les tableaux d'​ANOVA montrent des résultats différents à cause d'un plan non équilibré ​ (i.e. un nombre différent d'​observations pour les oiseaux aquatiques et terrestres). 
- 
-Pour les plans non équilibrés,​ une somme des carrés marginale (aussi appelée de type III) permet de calculer un effet principal après avoir retiré les effets des autres facteurs. Ceci rend le calcul indépendant de la taille des échantillons : 
- 
-<​m>​{SS_FactorA}={SS(A|B,​AB)}=SS(A,​B,​AB)-SS(B,​AB)</​m>​\\ 
-<​m>​{SS_FactorB}={SS(B|A,​AB)}=SS(A,​B,​AB)-SS(A,​AB)</​m>​\\ 
-<​m>​{SS_AB}={SS(AB|B,​A)}=SS(A,​B,​AB)-SS(B,​AB) </​m>​\\ ​ 
-\\  
- 
-Dans R, une ANOVA avec somme des carrés de type III peut être effectuée avec la fonction ''​Anova()''​ du paquet "​car"​ et en spécifiant l'​argument ''​type="​III"''​ : 
- 
-<code rsplus| Somme des carrés de type III> 
-Anova(unb_anov1,​type="​III"​) 
-</​code>​ 
- 
-En comparant les tableaux d'​ANOVA de modèles avec un ordre différent dans les variables explicatives,​ on peut voir que les résultats sont les mêmes. L'​utilisation de la somme des carrés de type III produit une ANOVA qui est indépendante de la tailles des échantillons. 
- 
-Après avoir vérifié les suppositions du modèle, les résultats peuvent finalement être interprétés correctement. 
- 
-</​hidden>​ 
-===== 6. ANCOVA ===== 
- 
-L'​analyse de covariance (ANCOVA) est un mélange de régression linéaire et d'​ANOVA : on teste l'​effet d'une (ou plusieurs) variable catégorique et d'une (ou plusieurs) variable continue sur une variable réponse continue. Le modèle mathématique sous-jacent de l'​ANCOVA est définit de la manière suivante : 
- 
-<m> {y_ij} = {µ} + {A_i} + {Β_i}({x_{ij}}-{overline{x}_i}) + {ε_ij} </m> 
- 
- 
- 
-µ est la moyenne globale de la variable réponse,\\ 
-A<​sub>​i</​sub>​ est l'​effet du facteur A,\\ 
-B<​sub>​i</​sub>​ est l'​effet de la variable continue,\\ 
-x<​sub>​ij</​sub>​ est la covariable mesurée sur l'​observation y<​sub>​ij</​sub>,​\\ 
-<​m>​overline{x}</​m><​sub>​i</​sub>​ est la valeur moyenne de la covariable pour le groupe i,\\ 
-i varie de 1 à n (n > 2) traitements,​\\ 
-ε<​sub>​ij</​sub>​ sont les résidus du modèle.\\ 
- 
-Prenez note que le modèle est composé du terme A<​sub>​i</​sub>​ pour déterminer l'​effet d'un traitement ou d'un facteur (comme dans une ANOVA) ainsi qu'un terme Β<​sub>​i</​sub>​ pour tenir compte de l'​effet d'une covariable (i.e. la pente d'une variable comme dans une régression linéaire). Donc, chaque traitement peut être décrit par une pente et une ordonnée à l'​origine. En plus de tester si la variable réponse est influencée par au moins un niveau de la variable catégorique,​ l'​ANCOVA teste également si la variable réponse est influencée par la variable continue (i.e. appelée covariable dans le cadre d'une ANCOVA). L'​ANCOVA teste également si les niveaux de la variable catégorique influencent la variable réponse différemment en fonction de la valeur de la variable continue (i.e. l'​interaction entre ces deux variables explicatives). Les hypothèses nulles de l'​ANCOVA sont définies ainsi : 
- 
-H<​sub>​01</​sub>:​ Il n'y a pas d'​effet de la variable catégorique (i.e. µ<​sub>​1</​sub>​ = µ<​sub>​2</​sub>​ =... = µ<​sub>​i</​sub>​ =... = µ<​sub>​n</​sub>​)\\ 
-H<​sub>​02</​sub>:​ Il n'y a pas d'​effet de la variable continue (i.e. β = 0)\\ 
-H<​sub>​03</​sub>:​ Il n'y a pas d'​interaction entre la variable catégorique et la variable continue\\ 
- 
-==== 6.1 Suppositions de base ==== 
- 
-Tout comme le test de t et l'​ANOVA,​ l'​ANCOVA doit respecter certaines suppositions statistiques qu'on peut vérifier à l'aide de diagrammes de diagnostic : 
-  - Les résidus du modèle sont distribués normalement 
-  - Homoscédasticité de la variance résiduelle 
-    - Les résidus et les valeurs prédites sont indépendants, ​ 
-    - La variance résiduelle et les valeurs prédites sont indépendantes 
-    - La variance égale entre les différents niveaux d'un facteur donné 
-  - Les covariables ont toutes la même étendue de valeurs 
-  - Les variables sont //fixes// 
-  - Les facteurs et les covariables sont indépendants 
- 
-**__Note :__** Un variable //fixe// est une variable d'​intérêt pour une étude (e.g. la masse des oiseaux). En comparaison,​ une variable aléatoire représente surtout une source de bruit qu'on veut contrôler (i.e. le site où les oiseaux ont été échantillonnés). Si votre modèle comporte des effets aléatoires,​ consultez l'​atelier sur les [[http://​qcbs.ca/​wiki/​r_atelier6|modèles linéaires mixtes]] ! 
  
 ==== 6.2 Types d'​ANCOVA ==== ==== 6.2 Types d'​ANCOVA ====
  
-Il est possible d'​avoir plusieurs facteurs et variables au sein d'une même ANCOVA. ​Sachez cependant que l'​interprétation des résultats devient de plus en plus complexe à mesure que le nombre de covariables et de facteurs augmente.+Il est possible d'​avoir plusieurs facteurs ​(i.e. variables explicatives catégoriques) ​et covariables (i.e. variables ​explicatives continues) ​au sein d'une même ANCOVA. ​Par contre, ​l'​interprétation des résultats devient de plus en plus complexe à mesure que le nombre de covariables et de facteurs augmente.
  
-Les ANCOVA les plus fréquentes ​comportent :+Les ANCOVA les plus courantes ​comportent :
   - une covariable et un facteur   - une covariable et un facteur
   - une covariable et deux facteurs   - une covariable et deux facteurs
Line 1466: Line 1093:
   - des facteurs sur la relation existant entre les covariables et la variable réponse   - des facteurs sur la relation existant entre les covariables et la variable réponse
  
-Ces buts ne sont atteints que s'il n'y a pas d'​interaction significative entre le(s) facteur(s) et la(les) covariable(s)! Des exemples d'​interaction significative entre un facteur et une covariable (pour une ANCOVA avec un facteur et une covariable) sont illustrés ci-bas dans les deux derniers graphiques:+Ces buts ne sont atteints que s'il n'y a pas d'​interaction significative entre le(s) facteur(s) et la(les) covariable(s)! Des exemples d'​interaction significative entre un facteur et une covariable (pour une ANCOVA avec un facteur et une covariable) sont illustrés ci-dessous ​dans les deux derniers graphiques:
  
 {{:​ancova_schematic.png?​550|}} {{:​ancova_schematic.png?​550|}}
  
 La même logique s'​applique aux ANCOVAs à plusieurs facteurs et/ou covariables. La même logique s'​applique aux ANCOVAs à plusieurs facteurs et/ou covariables.
 +\\ 
  
 ==== 6.3 Effectuer une ANCOVA ==== ==== 6.3 Effectuer une ANCOVA ====
  
-Effectuer une ANCOVA dans R ressemble à une ANOVA à deux critères de classification : on utilise la fonction ''​lm()''​. Toutefois, au lieu d'​avoir deux variables catégoriques (e.g. "​Diet"​ et "​Aquatic"​),​ on utilise une variable catégorique et une variable continue.+Effectuer une ANCOVA dans R ressemble à une ANOVA à deux critères de classification : on utilise la fonction ''​lm()''​. Toutefois, au lieu d'​avoir deux variables catégoriques (e.g. "​Diet"​ et "​Aquatic"​),​ on utilise ​maintenant ​une variable catégorique et une variable continue.
  
 Par exemple, en utilisant le jeu de données CO2 (déjà inclus dans R) où la variable réponse est //uptake//, on peut effectuer une ANCOVA avec la variable continue //conc// et le facteur //​Treatment//​ : Par exemple, en utilisant le jeu de données CO2 (déjà inclus dans R) où la variable réponse est //uptake//, on peut effectuer une ANCOVA avec la variable continue //conc// et le facteur //​Treatment//​ :
Line 1504: Line 1132:
 ---- ----
  
-Défi 4+**DÉFI ​4**
  
-Effectuez une ANCOVA ​afin de tester ​l'​effet du facteur //Diet//, de la covariable //Mass// et de leur interaction sur la variable réponse //​MaxAbund//​.\\+Effectuez une ANCOVA ​qui teste l'​effet du facteur //Diet//, de la covariable //Mass//et de leur interaction sur la variable réponse //​MaxAbund//​.\\
  
 ++++ Défi 4: Solution |  ++++ Défi 4: Solution | 
Line 1563: Line 1191:
  
 ---- ----
- 
  
  
 ===== 7. Régression multiple ===== ===== 7. Régression multiple =====
  
-Une régression multiple teste les effets de plusieurs variables explicatives continues sur une variable réponse continue. ​La régression multiple se base sur le modèle mathématique suivant :+Une régression multiple teste les effets de plusieurs variables explicatives continues sur une variable réponse continue. ​
  
-<m> {y_i} {β_0} + {β_1}{x_{1i}} + {β_2}{x_{2i}} + {β_3}{x_{3i}} +... + {β_{n-1}}{x_{n-1}} + {β_n}{x_n} + {ε_i} </m>+==== 7.1 Conditions de base ====
  
-+En plus des conditions de base habituelles des modèles linéaires, il est important de tester pour **l'​orthogonalité** parce que ceci influence l'​interprétation du modèle. Les variables sont orthogonales quand les variables explicatives sont colinéaires. Si une variable explicative est corrélée avec une autre variable, elles expliquent probablement la même variabilité dans la variable réponse, et l'​effet d'une variable sera caché par l'​autre.S'​il existe une relation entre deux variables explicatives,​ elles sont donc **colinéaires**. ​
  
-β<​sub>​0</​sub>​ est l'​ordonnée ​à l'​origine de la droite,\\ +La colinéarité doit être évitée, car il ne sera pas possible de distinguer les effets propres ​à chaque variable. Voici quelques solutions possibles : 
-β<​sub>​1<​/sub> est l'​effet de la variable x<​sub>​1<​/sub> (i.e. la pente de la droite de régression de la variable x<​sub>​1<​/sub>​),​\\ +  - Gardez seulement **une** des variables colinéaires
-β<​sub>​2<​/sub> est l'effet de la variable x<​sub>​2<​/sub> (i.e. la pente de la droite de régression de la variable x<​sub>​2<​/sub>),\\ +  - Essayez une analyse multidimensionelle ​//[[http://​qcbs.ca/wiki/r_atelier9|(voir ​l'atelier 9)]]//, 
-ε<​sub>​i</​sub>​ sont les résidus du modèle (i.e. la variance inexpliquée).+  - Essayez une analyse pseudo-orthogonale.
  
-==== 7.1 Suppositions ​de base ====+La colinéarité entre variables explicatives peut être vérifiée à l'aide du **facteur d'​inflation ​de la variance** (VIF ou //"​variance inflation factor"//​) en utilisant la fonction ''​vif''​ du paquet ''​HH''​.
  
-La régression multiple doit respecter certaines suppositions afin d'être valide : +<code rsplus| Facteur ​d'inflation ​de la variance ​(VIF> 
-  - **Distribution normale ​de la variable réponse**\\ Ceci peut être vérifié par un test de Shapiro-Wilk (fonction ''​shapiro.test()''​). Une transformation peut être utilisée si les données ne sont pas distribuées normalement.\\ +vif(clDD ~ clFD + clTmi + clTma + clP + grass, data=Dickcissel
-  - **Orthogonalité**\\ Les variables explicatives ne doivent pas être colinéaires ​(i.e. ne doivent pas être fortement corrélées). Si une variable explicative est corrélée avec une autre, ces deux variables vont probablement expliquer la même variabilité de la variable réponse : l'​effet d'une variable va cacher l'​effet de l'​autre variable sur la variable réponse.\\ +</​code>​
-  - **Linéarité**\\ Les relations entre les variables doivent être linéaires.+
  
-Les résidus du modèle doivent respecter les mêmes suppositions que celles de la régression linéaire simple, soient ​: +qui produit ​la sortie suivante:
-  - Distribution normale des résidus +
-  - Indépendance des résidus en fonction des variables explicatives x<​sub>​i</​sub>​ (ou des valeurs prédites) +
-  - Indépendance de la variance des résidus en fonction des variables explicatives x<​sub>​i</​sub>​ (ou des valeurs prédites) +
-  - Pas d'​observations aberrantes (i.e. outliers)+
  
-=== Non-respect des suppositions ===+    clFD     ​ clTmi ​    ​ clTma ​      ​ clP ​    ​ grass  
 +   ​13.605855 ​ 9.566169 ​ 4.811837 ​ 3.196599 ​ 1.165775 
 + 
 +Les variables colinéaires ont un VIF plus grand que 5. La sortie R montre alors que //clDD//, //clFD//, et //clTmi// sont fortement colinéaires. Seulement une de ces variables explicatives peut être retenue dans le modèle de régression final.
  
-S'il existe une relation entre deux variables explicatives,​ elles sont colinéaires. La colinéarité doit être évitée, car il ne sera pas possible de distinguer les effets propres à chaque variable. Voici quelques solutions possibles : 
-  - Gardez seulement **une** des variables colinéaires,​ 
-  - Essayez une analyse multidimensionelle //​[[http://​qcbs.ca/​wiki/​r_atelier9|(voir l'​atelier 9)]]//, 
-  - Essayez une analyse pseudo-orthogonale. 
 ==== 7.2 Jeu de données Dickcissel ==== ==== 7.2 Jeu de données Dickcissel ====
  
Line 1610: Line 1231:
  
  
-Dans R, une régression multiple est effectuée à l'aide de la fonction ''​lm()''​ et les résultats peuvent être visualisés avec la fonction ''​summary()''​. En utilisant le jeu de données Dickcissel, on peut tester les effets du //climat//, de la //​productivité//​ et du //paysage// sur l'//​abondance//​ du Dickcissel ​en utilisant ​un modèle de régression multiple. ​+Dans R, une régression multiple est effectuée à l'aide de la fonction ''​lm()''​ et les résultats peuvent être visualisés avec la fonction ''​summary()''​. En utilisant le jeu de données Dickcissel, on peut tester les effets du //climat//, de la //​productivité//​ et du //paysage// sur l'//​abondance//​ du Dickcissel ​à l'aide d'un modèle de régression multiple. ​
  
 ---- ----
-Défi 5+**DÉFI ​5**
  
-Est-il nécessaire ​d'​appliquer une transformation à la variable réponse //abund// ?+Est-il nécessaire ​de transformer ​la variable réponse //abund// ?
  
 ++++ Défi 5: Solution| ++++ Défi 5: Solution|
Line 1625: Line 1246:
 </​code>​ </​code>​
  
-Il y a un grand nombre de zéros dans la distribution de la variable //abund//. On peut ajouter une constante avant d'​effectuer une transformation logarithmique étant donnée la forte asymétrie de la distribution :+Il y a plusieurs ​zéros dans la distribution de la variable //abund//. On peut ajouter une constante avant d'​effectuer une transformation logarithmiqueétant donnée la forte asymétrie de la distribution :
  
 <code rsplus> <code rsplus>
Line 1639: Line 1260:
 ---- ----
  
-Vous avez remarqué ​au défi 5 que la variable réponse //abund// n'a pas pu être normalisée. ​Ceci suggère qu'​il ​faudrait peut-être laisser tomber la supposition de normalité et passer à un [[http://​qcbs.ca/​wiki/​r_atelier7| modèle linéaire généralisé]],​ mais ceci ira à plus tard !+Dans le défi 5, vous avez probablement ​remarqué que la variable réponse //abund// n'a pas pu être normalisée. ​Il faudrait ​alors peut-être laisser tomber la supposition de normalité et passer à un [[http://​qcbs.ca/​wiki/​r_atelier7| modèle linéaire généralisé]],​ mais ceci ira à plus tard !
  
-Pour l'​instant,​ nous allons utiliser la variable //abund// non transformée et comparer l'​importance relative de trois variables explicatives (//​climat//,​ //​productivité//​ et //​paysage//​) sur l'//​abondance//​.+Pour l'​instant,​ nous allons utiliser la variable //abund// non-transformée et comparer l'​importance relative de trois variables explicatives (//​climat//,​ //​productivité//​ et //​paysage//​) sur l'//​abondance//​.
  
 <code rsplus| Régression multiple>​ <code rsplus| Régression multiple>​
Line 1678: Line 1299:
  
 {{:lm_fig 13.png?​850|}} {{:lm_fig 13.png?​850|}}
-==== 7.3 Régression polynomiale (section avancée ​et optionnelle) ====+==== 7.3 Régression polynomiale (section avancée/​facultative) ====
  
 <​hidden>​ <​hidden>​
-Les relations entre des variables réponses et des variables explicatives ne sont pas toujours linéaires. Dans ce cas, une régression linéaire qui correspond à une droite reliant deux variables ​ne peut pas bien représenter la relation ​existant ​entre ces deux variables. Une régression polynomiale ​peut être utilisée afin de tracer une courbe polynomiale entre la variable réponse et la variable explicative. Ceci permet de représenter une relation non linéaire basée sur le modèle mathématique suivant :+Les relations entre variables réponses et variables explicatives ne sont pas toujours linéaires. Dans ce cas, une régression linéairequi correspond à une droite reliant deux variables, est incapable de représenter la relation entre ces deux variables. Une régression polynomiale ​permet ​de tracer une courbe polynomiale entre la variable réponse et la variable explicative, et permet de représenter une relation non linéaire basée sur le modèle mathématique suivant :
  
 <m> {y_i} = {β_0} + {β_1}{x_i} + {β_2}{{x_i}^2} + {β_3}{{x_i}^3} + {ε_i} </m> pour un polynôme de degré 3\\ <m> {y_i} = {β_0} + {β_1}{x_i} + {β_2}{{x_i}^2} + {β_3}{{x_i}^3} + {ε_i} </m> pour un polynôme de degré 3\\
Line 1708: Line 1329:
 ---- ----
  
-Défi 7+**DÉFI ​7**
  
 Comparez les différents modèles polynomiaux de l'​exemple précédent et déterminez quel modèle est le plus approprié. Extrayez le R carré ajusté, les coefficients de régression et les valeurs de p de ce modèle. Comparez les différents modèles polynomiaux de l'​exemple précédent et déterminez quel modèle est le plus approprié. Extrayez le R carré ajusté, les coefficients de régression et les valeurs de p de ce modèle.
Line 1762: Line 1383:
 </​hidden>​ </​hidden>​
 ==== 7.4 Régression pas à pas ==== ==== 7.4 Régression pas à pas ====
-Afin d'​obtenir un modèle de régression multiple "​optimal",​ on peut débuter ​avec un modèle qui inclut toutes les variables explicatives et retirer les variables non significatives ​en procédant à une sélection pas à pas. Les variables non significatives sont retirées une à la fois et l'​ajustement de chaque modèle successif est évalué à l'aide de l'AIC [[http://​fr.wikipedia.org/​wiki/​Crit%C3%A8re_d%27information_d%27Akaike|(Critère d'​information d'​Akaike)]],​ jusqu'​à ce que toutes les variables explicatives soient significatives. Prenez note qu'une valeur plus basse d'AIC indique un meilleur ajustement (i.e. le meilleur modèle est celui avec la valeur d'AIC la plus basse). Dans R, la sélection pas à pas est effectuée à l'aide de la fonction ''​step()''​ :+<​hidden>​ 
 +Afin d'​obtenir un modèle de régression multiple "​optimal",​ on peut commencer ​avec un modèle qui inclut toutes les variables explicatives et retirer les variables non significativesprocédant ​donc à une **sélection pas à pas**. Les variables non significatives sont retirées une à la fois et l'​ajustement de chaque modèle successif est évalué à l'aide de l'AIC [[http://​fr.wikipedia.org/​wiki/​Crit%C3%A8re_d%27information_d%27Akaike|(Critère d'​information d'​Akaike)]],​ jusqu'​à ce que toutes les variables explicatives soient significatives. Prenez note qu'une valeur plus basse d'AIC indique un meilleur ajustement (i.e. le meilleur modèle est celui avec la valeur d'AIC la plus basse). Dans R, la sélection pas à pas est effectuée à l'aide de la fonction ''​step()''​ :
  
 <code rsplus| Régression pas à pas> <code rsplus| Régression pas à pas>
Line 1770: Line 1392:
 </​code>​ </​code>​
  
-Les résultats indiquent que seulement ​six variables sont significatives parmi les treize ​variables de départ :+Les résultats indiquent que seulement ​variables sont significatives parmi les 13 variables de départ :
  
    Call: lm(formula = abund ~ clDD + clFD + clTmi + clTma + clP + grass, ​ data = Dickcissel)    Call: lm(formula = abund ~ clDD + clFD + clTmi + clTma + clP + grass, ​ data = Dickcissel)
Line 1793: Line 1415:
 Le modèle explique maintenant 31.44% de la variabilité de l'​abondance. La variable explicative la plus significative est clTmi.\\ Le modèle explique maintenant 31.44% de la variabilité de l'​abondance. La variable explicative la plus significative est clTmi.\\
 Cependant, certaines des variables explicatives sont corrélées entre elles et devraient être retirées du modèle final afin de ne pas inclure de variables qui n'​apportent pas d'​information nouvelle. ​ Cependant, certaines des variables explicatives sont corrélées entre elles et devraient être retirées du modèle final afin de ne pas inclure de variables qui n'​apportent pas d'​information nouvelle. ​
 +</​hidden>​
  
-==== 7.5 Inflation de la variance ==== +===== 8. Partition de la variation (section avancée/​facultative) =====
- +
-La colinéarité entre des variables explicatives peut être évaluée en calculant un facteur d'​inflation de la variance à l'aide de la fonction ''​vif()''​ de la librairie ''​HH''​ : +
- +
-<code rsplus| Facteur d'​inflation de la variance>​ +
-vif(clDD ~ clFD + clTmi + clTma + clP + grass, data=Dickcissel) +
-</​code>​ +
- +
-ce qui donne la sortie suivante : +
- +
-    clFD     ​ clTmi ​    ​ clTma ​      ​ clP ​    ​ grass  +
-   ​13.605855 ​ 9.566169 ​ 4.811837 ​ 3.196599 ​ 1.165775 +
- +
-On considère qu'un facteur d'​inflation de la variance supérieur à cinq indique que les variables sont colinéaires. La sortie de R indique que les variables //clDD//, //clFD// et //clTmi// sont fortement colinéaires. Seulement une des trois variables doit être retenue dans le modèle de régression final. +
-===== 8. Partition de la variation (section ​optionnelle et avancée) =====+
 <​hidden>​ <​hidden>​
-Afin d'​évaluer la contribution relative de deux ou plusieurs variables explicatives à décrire ​la variabilité d'une variable réponse, on peut utiliser la fonction ''​varpart()''​ de la librairie "​vegan"​. Cette fonction permet de subdiviser la variation expliquée de la réponse variable entre différents groupes de variables explicatives. Par exemple, dans le jeu de données Dickcissel, on peut évaluer les contributions relatives des données climatiques et du paysage de la manière suivante :+Afin d'​évaluer la contribution relative de deux ou plusieurs variables explicatives à la variabilité d'une variable réponse, on peut utiliser la fonction ''​varpart()''​ de la librairie "​vegan"​. Cette fonction permet de subdiviser la variation expliquée de la réponse variable entre différents groupes de variables explicatives. Par exemple, dans le jeu de données Dickcissel, on peut évaluer les contributions relatives des données climatiques et du paysage de la manière suivante :
  
 <code rsplus| Partition de la variation>​ <code rsplus| Partition de la variation>​
Line 1890: Line 1499:
  
 </​hidden>​ </​hidden>​
-\\+ 
 +---- 
 ===== Allez plus loin ! ===== ===== Allez plus loin ! =====
  
-**Super ! Vous êtes maintenant prêts à effectuer des régressions,​ des ANOVA et des ANCOVA sur vos propres données. Cependant, rappelez-vous de toujours spécifier vos modèles correctement et de vérifier leurs suppositions ​avant d'​interpréter les résultats en fonction des caractéristiques écologiques de vos données.+**Super ! Vous êtes maintenant prêts à effectuer des régressions,​ des ANOVA et des ANCOVA sur vos propres données. Cependant, rappelez-vous de toujours spécifier vos modèles correctement et de vérifier leurs conditions de base avant d'​interpréter les résultats en fonction des caractéristiques écologiques de vos données.
 ** **