Épidémiologie 2 - Labo informatique R (PTM-6675)
2023-01-19
Chapitre 1 À propos
Dans ce document, vous trouverez les différentes manières d’utiliser R pour vos analyses statistiques de base. Notez que les notions théoriques relatives aux tests statistiques utilisés n’y sont pas présentées. Pour cela, vous pouvez vous référer au livre Veterinary Epidemiologic Research (Dohoo et al., 2009) ou au cours PTM-6675. Dans ce document, nous supposons que vous savez déjà:
- Importer ou créer des bases de données dans R
- Modifier des variables ou sélectionner une partie d’un jeu de données
- Produire des tables de fréquence
- Produire des figures de base avec le package ggplot2
Nous supposons que vous avez quelques connaissances de base de R
. Si vous n’avez jamais travaillé avec R
auparavant ou si vous vous sentez un peu rouillé, voici quelques ressources pour vous aider à vous préparer :
Les chapitres 1, 2 et 4 de CodeCademy “Learn R” course vous donneront un bon aperçu des concepts de base de
R
.Si vous êtes familier avec
R
et que vous souhaitez approfondir vos connaissances, Hadley Wickham’s “R for Data Science” est une excellente ressource.
N’oubliez pas qu’il existe souvent de nombreuses façons différentes de réaliser un travail donné dans R
. Dans ce document, nous avons essayé de nous en tenir aux approches les plus simples (par exemple, le code le plus court, le nombre minimal de bibliothèques R
).
Dans ce document, nous couvrirons quelques généralités sur la gestion de projets d’analyses, puis sur les fonctions de base qui vous permettrons de réaliser vos projets de:
- Régression linéaire;
- Régression logistique;
- Régression pour des données de comptes ou d’incidence;
- Analyse de survie;
- Modèles mixtes pour données structurées (les fameux modèles avec intercepts et/ou pentes aléatoires).
Tout au long du texte, vous trouverez des exemples de code R agrémentés de commentaires. Le code R utilisé se trouve dans les encadrés en gris (comme l’exemple qui suit). C’est le code que vous pourrez utiliser pour vos propres analyses. Les lignes précédées du signe # sont un commentaire, elles ne sont pas considérées lorsque R les lit. Aussi, n’oubliez pas que R est sensible aux majuscules. Après chaque encadré gris suivra un 2ième encadré où les résultats de l’analyse sont présentés. Par exemple, voici un code R où nous demandons simplement de présenter les statistiques principales des variables du jeu de données cars
. Ce jeu de données contient 2 variables, speed et dist:
#Ceci est un commentaire. R ignorera cette ligne
#La fonction summary() produit les principales statistiques pour un jeu de données
summary(cars)
## speed dist
## Min. : 4.0 Min. : 2.00
## 1st Qu.:12.0 1st Qu.: 26.00
## Median :15.0 Median : 36.00
## Mean :15.4 Mean : 42.98
## 3rd Qu.:19.0 3rd Qu.: 56.00
## Max. :25.0 Max. :120.00
#On peut aussi, par exemple demander les statistiques d'une variable précise dans un jeu de données de cette façon:
summary(cars$speed)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 4.0 12.0 15.0 15.4 19.0 25.0
Tout au long du document, dans le texte, nous utiliserons:
- L’italique pour les ensembles de données ou les variables. Par exemple, la variable speed de l’ensemble de données cars.
- Les cases grisées pour les bibliothèques R
(par exemple, episensr
) et les fonctions (par exemple, summary()
).
1.1 Spécificités de R
Dans R
, nous pouvons d’abord appeler une bibliothèque donnée et ensuite utiliser les fonctions liées à chaque bibliothèque. Cependant, nous pouvons aussi nommer la bibliothèque suivie des symboles ::
et ensuite la fonction. Par exemple, les deux morceaux de code suivants sont équivalents :
library(ggplot2)
ggplot(data=cars,
mapping=(
aes(x=speed))) +
geom_histogram()
##OR##
::ggplot(data=cars,
ggplot2mapping=(aes(x=speed))) +
geom_histogram()
Cette dernière notation peut améliorer la reproductibilité, mais au prix de scripts plus longs. Dans tout le document, nous appellerons toujours d’abord la bibliothèque puis nous exécuterons les fonctions afin de garder des codes plus courts.
Aussi, lors de l’utilisation d’une fonction donnée, il n’est pas obligatoire de nommer tous les arguments, du moment qu’ils sont présentés dans l’ordre attendu par cette fonction. Par exemple, la fonction ggplot()
que nous avons utilisée dans le morceau de code précédent s’attend à voir d’abord un jeu de données (data=
), puis un attribut de cartographie (mapping=
) et, dans cet attribut de cartographie, une variable x (x=
). Nous pourrions raccourcir le code en omettant tous ces éléments. Les deux morceaux de code suivants sont donc équivalents :
library(ggplot2)
ggplot(data=cars,
mapping=(aes(x=speed))) +
geom_histogram()
##OR##
library(ggplot2)
ggplot(cars,
aes(speed))) +
(geom_histogram()
Tout au long de ce document, cependant, nous utiliserons le script le plus long, avec tous les arguments nommés. Étant donné que vous êtes en train d’apprendre ces nouvelles fonctions, il serait assez difficile d’utiliser le script le plus court dès le début. Mais vous pourrez certainement adopter les scripts les plus courts plus tard.
Finalement, vous avez possiblement noté que nous avons utilisé des sauts de ligne ainsi que des indentations de texte dans les codes précédents. Ceux-ci ne sont pas essentiels, mais pemettent de mieux différencier les différents éléments d’une même fonction et les différentes fonctions faisant partie d’une même section de code. Les lignes suivantes sont donc parfaitement équivalentes.
ggplot(data=cars,mapping=(aes(x=speed))) + geom_histogram()
##OR##
ggplot(data=cars,
mapping=(aes(x=speed))) +
geom_histogram()
COMMENÇONS!