You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Vous avez découvert il y a peu la moyenne et plusieurs tests d'hypothèses associés (différentes variantes du test *t* de Student). Le test *t* de Student indépendant vous permet de comparer les moyennes de deux populations.
34
33
35
-
Le [module 10](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2022/variance.html) du cours vous explique pourquoi c'est une mauvaise idée de l'appliquer pour comparer plus de deux moyennes simultanément via des comparaisons deux à deux multiples sans précautions particulières.
34
+
Le [module 10](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2023/variance.html) du cours vous explique pourquoi c'est une mauvaise idée de l'appliquer pour comparer plus de deux moyennes simultanément via des comparaisons deux à deux multiples sans précautions particulières.
Rappelez-vous que la description des données est une étape indispensable avant l'analyse (voir modules [2](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2022/visu1.html), [3](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2022/visu2.html) et [4](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2022/visu3.html) de SDD I).
132
+
Rappelez-vous que la description des données est une étape indispensable avant l'analyse (voir modules [2](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2023/visu1.html), [3](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2023/visu2.html) et [4](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2023/visu3.html) de SDD I).
134
133
135
134
### Description numérique
136
135
@@ -165,7 +164,7 @@ ___ %>.%
165
164
___(., ___) %>.%
166
165
ssummarise(.,
167
166
moyenne = ___(___), `écart type` = ___(___),
168
-
n = fn(len))) %>.%
167
+
n = fnobs(len))) %>.%
169
168
___(.)
170
169
```
171
170
@@ -174,7 +173,7 @@ tooth_vc %>.%
174
173
sgroup_by(., ___) %>.%
175
174
ssummarise(.,
176
175
moyenne = fmean(___), `écart type` = fsd(___),
177
-
n = fn(len)) %>.%
176
+
n = fnobs(len)) %>.%
178
177
collect_dtx(.)
179
178
180
179
#### ATTENTION: Hint suivant = solution !####
@@ -186,12 +185,12 @@ tooth_vc %>.%
186
185
sgroup_by(., dose) %>.%
187
186
ssummarise(.,
188
187
moyenne = fmean(len), `écart type` = fsd(len),
189
-
n = fn(len)) %>.%
188
+
n = fnobs(len)) %>.%
190
189
collect_dtx(.)
191
190
```
192
191
193
192
```{r tooth_tab_h2-check}
194
-
grade_code("Vous obtenez le tableau adéquat en vue de réaliser ensuite une ANOVA : les moyennes correspondent à ce que nous comparons, les écart-types indiquent la dispersion des données dans chaque sous-population (nous aurions aussi pu représenter les variances qui sont le carré des écarts types) et le nombre d'observations permet de cerner la quantité d'information disponible.")
193
+
grade_code("Vous obtenez le tableau adéquat en vue de réaliser ensuite une ANOVA : les moyennes correspondent à ce que nous comparons, les écart-types indiquent la dispersion des données dans chaque sous-population (nous aurions aussi pu représenter les variances qui sont le carré des écarts types) et le nombre d'observations permet de cerner la quantité d'information disponible (hors vlaeurs manquantes éventuelles).")
195
194
```
196
195
197
196
### Description graphique
@@ -236,16 +235,16 @@ Pour réaliser une ANOVA, il faut respecter les conditions d'application suivant
236
235
- observations indépendantes,
237
236
- variable dite réponse quantitative,
238
237
- une variable dite explicative qualitative à trois niveaux ou plus,
239
-
- distribution Normale des résidus,
238
+
- distribution normale des résidus,
240
239
- homoscédasticité (même variance intragroupe).
241
240
242
241
Pour les deux premières conditions, vous lisez attentivement le protocole expérimental pour déterminer si l'échantillonnage est représentatif et les observations sont indépendantes les unes des autres. Il faut un processus aléatoire qui intervienne dans la sélection des individus dans l'expérience et pour leur attribution à un des niveaux (ration de vitamine C quotidienne). Chaque individu doit avoir une chance égale d'être tiré au sort si l'échantillonnage aléatoire est utilisé. Il ne doit pas y avoir de dépendance (par exemple, utiliser une portée de cobayes au sein d'une même sous-population est une mauvaise idée car la ressemblance génétique entre frères et sœurs rend les observations partiellement dépendantes entre elles).
243
242
244
243
Les contraintes relatives au type de variables en jeu se vérifient facilement. Nous insistons encore une fois sur la nécessité de s'assurer que la variable explicative (celle qui sépare l'échantillon en sous-populations) soit bien qualitative, donc sous la forme d'un objet `factor` ou `ordered` dans R.
245
244
246
-
Les deux dernières conditions **doivent être vérifiées sur les données de l'échantillon**. Si les données sont en nombre suffisant, soit au moins une petite dizaine par sous-population, nous pourrons appliquer un test d'homogénéité de variance et comparer la distribution des résidus du modèle à une distribution Normale. Nous sommes dans cette situation. Si le nombre d'observations est trop faible, il faut le tester ou l'avoir testé précédemment sur un plus gros échantillon similaire, ou se rabattre sur un test non paramétrique (Kruskal-Wallis) en cas de doute. **Rappelons aussi qu'il est possible de tester des transformations des données, si l'une ou les deux conditions ne sont pas rencontrées.**
245
+
Les deux dernières conditions **doivent être vérifiées sur les données de l'échantillon**. Si les données sont en nombre suffisant, soit au moins une petite dizaine par sous-population, nous pourrons appliquer un test d'homogénéité de variance et comparer la distribution des résidus du modèle à une distribution normale. Nous sommes dans cette situation. Si le nombre d'observations est trop faible, il faut le tester ou l'avoir testé précédemment sur un plus gros échantillon similaire, ou se rabattre sur un test non paramétrique (Kruskal-Wallis) en cas de doute. **Rappelons aussi qu'il est possible de tester des transformations des données, si l'une ou les deux conditions ne sont pas rencontrées.**
247
246
248
-
En pratique, on commence par vérifier l'homoscédasticité, puis on réalise notre ANOVA et ensuite on vérifie la distribution Normale des résidus. La raison qui nous pousse à postposer la vérification de la Normalité des résidus sera expliquée plus loin dans ce tutoriel.
247
+
En pratique, on commence par vérifier l'homoscédasticité, puis on réalise notre ANOVA et ensuite on vérifie la distribution normale des résidus. La raison qui nous pousse à postposer la vérification de la normalité des résidus sera expliquée plus loin dans ce tutoriel.
249
248
250
249
### Test de Bartlett
251
250
@@ -277,41 +276,39 @@ question("Y a-t-il homoscédasticité (égalité des variances entre sous-popula
277
276
278
277
## ANOVA
279
278
280
-
Dans R, nous avons plusieurs fonctions pour réaliser une ANOVA. Nous utilisons `lm()` qui demande un jeu de données et une formule. Nous lui appliquons ensuite la fonction `anova()` pour produire le tableau de l'analyse de la variance.
279
+
Dans R, nous avons plusieurs fonctions pour réaliser une ANOVA. Nous utilisons `lm()` qui demande un jeu de données et une formule. Nous lui appliquons ensuite la fonction `anova()` pour produire le tableau de l'analyse de la variance. Si le résultat doit être propre, nous pouvons ensuite utiliser `tabularise()` pour formater le tableau de l'ANOVA.
Vous êtes habitué à cette interface formule que vous utilisez dans la réalisation de vos graphiques ou de vos tests d'hypothèse précédents. Cette fonction calcule un objet de classe `lm` (pour "linear model", que nous aborderons plus en détails au cours SDD II) duquel la fonction `anova()` va extraire l'information qui nous intéresse pour interpréter ce test. Réalisez votre modèle ANOVA sur la longueur des odontoblastes en fonction de la dose de vitamine C administrée pour votre sous-tableau relatif aux cochons d'Inde ayant reçu de l'acide ascorbique.
287
286
288
287
<!-- 💬 **Ce code correspond au snippet `.hmanova1`** -->
anova(tg_anova <- lm(data = tooth_vc, len ~ dose))
301
+
anova(tg_anova <- lm(data = tooth_vc, len ~ dose)) |> tabularise()
303
302
```
304
303
305
304
```{r tooth_anova_h2-check}
306
-
grade_code("Vous avez compris le principe. Mais attention : n'allez pas plus loin dans l'interprétation des résultats sans avoir vérifié la Normalité des résidus.")
305
+
grade_code("Vous avez compris le principe. Mais attention : n'allez pas plus loin dans l'interprétation des résultats sans avoir vérifié la normalité des résidus.")
307
306
```
308
307
309
-
Vérifiez maintenant la distribution Normale des résidus depuis votre objet `tg_anova`.
308
+
Vérifiez maintenant la distribution normale des résidus depuis votre objet `tg_anova`.
310
309
311
310
<!-- 💬 **Il existe une snippet pour vous aider `.hmanovaqqplot`** -->
312
311
313
-
<!-- Proposition : Remplacer par chart$qqresid(anova.)-->
@@ -328,7 +325,7 @@ chart$qqplot(tg_anova, lang = "fr")
328
325
```
329
326
330
327
```{r tooth_qqplot_h2-check}
331
-
grade_code("Tous les points de ce graphique quantile-quantile s'alignent assez bien le long de la droite. Les résidus de votre ANOVA ne montrent donc pas de dérive importante par rapport à une distribution Normale et nous avons réuni toutes les conditions d'application de ce test. Vous pouvez maintenant l'interpréter via le tableau d'analyse de la variance que vous avez réalisé dans l'exercice précédent.")
328
+
grade_code("Tous les points de ce graphique quantile-quantile s'alignent assez bien le long de la droite. Les résidus de votre ANOVA ne montrent donc pas de dérive importante par rapport à une distribution normale et nous avons réuni toutes les conditions d'application de ce test. Vous pouvez maintenant l'interpréter via le tableau d'analyse de la variance que vous avez réalisé dans l'exercice précédent.")
332
329
```
333
330
334
331
```{r anova_quiz}
@@ -386,7 +383,7 @@ Notre ANOVA est terminée. En situation réelle, il nous resterait à intégrer
386
383
387
384
Comme la formulation du test dans la parenthèse est fort longue pour l'ANOVA, on utilise souvent un renvoi vers la table de l'analyse de la variance que vous pouvez intégrer dans le document pour plus de lisibilité à la fois du texte et du résultat de l'ANOVA. Naturellement, si un test post-hoc est réalisé, il doit aussi être présenté, soit sous forme de tableau, soit sous forme de graphique, ou encore les deux si la place dans le document le permet (pour les articles scientifiques on est souvent fort limité en nombre de figures et de tables, et il faut parfois se résoudre à les placer dans les annexes ou dans le matériel complémentaire).
388
385
389
-
Dans la section "matériel et méthodes", vous devez expliquer que vous réaliser une ANOVA après avoir vérifié les conditions d'application (homoscédasticité attestée à l'aide d'un test de Bartlett au seuil $\alpha$ de 5% et Normalité des résidus vérifiée sur un graphique quantile-quantile). Vous devez aussi indiquer la version R (et éventuellement la version des packages additionnels R utilisés). Pensez à la fonction `sessionInfo()` pour obtenir la version de R et des packages R. Il n'est pas nécessaire de préciser la version de RStudio qui est ici essentiellement l'interface vous permettant d'écrire et lancer le code R de votre analyse. Par contre, si vous utilisez un environnement logiciel reproductible comme la SciViews Box, vous pouvez le préciser et en indiquer la version.
386
+
Dans la section "matériel et méthodes", vous devez expliquer que vous réaliser une ANOVA après avoir vérifié les conditions d'application (homoscédasticité attestée à l'aide d'un test de Bartlett au seuil $\alpha$ de 5% et normalité des résidus vérifiée sur un graphique quantile-quantile). Vous devez aussi indiquer la version R (et éventuellement la version des packages additionnels R utilisés). Pensez aux fonctions `sessionInfo()` et `packageVersion()` pour obtenir la version de R et des packages R. Il n'est pas nécessaire de préciser la version de RStudio qui est ici essentiellement l'interface vous permettant d'écrire et lancer le code R de votre analyse. Par contre, si vous utilisez un environnement logiciel reproductible comme la SciViews Box, vous pouvez le préciser et en indiquer la version.
0 commit comments