Important : Ce guide assume que vous savez comment :

  1. Rédiger un script RMarkdown
  2. Installer et activer des packages
  3. Importer une base de données
  4. Préparer des données

Vous pouvez cliquer sur les liens ci-dessus pour consulter les guides associées.


0.1 Importer et préparer les données

Dans ce guide, nous utiliserons deux variables du fichier data_visualisation.csv, soit le Genre (genre) et les émotions positives (emotionPositive). Pour vous évitez de tout re-coder, j’ai pris le temps d’écrire la syntaxe nécessaire pour importer et préparer les données :

# Packages
library(readr)
library(tibble)
library(ggplot2)
library(Hmisc)

# Importer les données (data_visualisation.csv)
donnees_brutes <- read_csv("folder path")  

# Préparer les données 
df <- as_tibble(data.frame(id = 1:nrow(donnees_brutes)))
df$genre <- factor(donnees_brutes$Genre,
                   levels = c(1,2),
                   labels = c("Homme", "Femme"))
df$emotionPositive <- donnees_brutes$PANAS_Pos_Pre

Pour suivre les exemples dans ce guide, vous devrez donc :
1. avoir téléchargé le fichier data_visualisation.csv sur Studium
2. noter le "folder path"
3. exécuter la syntaxe ci-dessus (en changeant le "folder path").

Voici à quoi devrait ressembler votre banque de données après l’étape de préparation :

df
## # A tibble: 100 × 3
##       id genre emotionPositive
##    <int> <fct>           <dbl>
##  1     1 Femme              27
##  2     2 Femme              27
##  3     3 Femme              20
##  4     4 Femme              26
##  5     5 Femme              23
##  6     6 Femme              21
##  7     7 Femme              24
##  8     8 Femme              29
##  9     9 Homme              27
## 10    10 Femme              41
## # … with 90 more rows

1 Comparer des moyennes

Cette section explique comment obtenir la moyenne et l’intervalle de confiance d’une variable continue pour plusieurs groupes (variable discrète). À titre d’exemple, nous utiliserons les émotions positives (emotionPositive) comme variable continue et le genre (genre) comme variable discrète.


1.1 Scinder le output par groupe

Nous avons déjà vue dans la section 2.2.1 du guide Préparer des données qu’il est possible d’obtenir les statistiques descriptives (dont la moyenne) d’une variable continue à partir à partir des fonctions mathématiques (mean(), sd(), etc.) du package R de base (voir section 2.2.1). Toutefois, la syntaxe présentée précédemment ne permettait pas à elle seule d’obtenir les statistiques descriptives relatives à différents groupes. Le package dplyr offre plusieurs fonctions utiles pour travailler avec des données groupées.

Le package dplyr inclue également l’opérateur %>% (pipe operator en anglais), qui permet de chaîner plusieurs fonctions ensemble, en utilisant la sortie d’une fonction comme entrée de la fonction suivante, ce qui rend le code plus facile à lire et à comprendre. Pour ne pas avoir à ré-écrire ou copier-coller %>% à chaque fois, vous pouvez simplement utiliser les raccourcis suivant :

Pour Mac = Cmd () + Shift () + M
Pour Windows = Ctrl () + Shift () + M

Note : Si ces raccourcis ne fonctionnent pas pour vous, vous pouvez toujours consulter vos raccourcis dans les réglages. Voici comment y accéder :
Preferences > Code > Editing > Modify Keyboard Shortcuts...

Voici donc comment obtenir les moyennes de la variable emotionPositive pour chaque groupe de la variable catégorielle genre (deux variables situées dans la banque de données df) :

library(dplyr)
df %>%
    group_by(genre) %>% 
    summarise(Moyenne = mean(emotionPositive, na.rm = TRUE))
## # A tibble: 2 × 2
##   genre Moyenne
##   <fct>   <dbl>
## 1 Homme    28.4
## 2 Femme    27.1

1.2 Intervalle de confiance

La package R de base ne contient pas de fonction spécifique pour calculer les limites de l’intervalle de confiance d’une moyenne. Évidemment, il est possible de calculer ces limites « à la main » (voir la section suivante). Cependant, la syntaxe nécessaire pour y arriver est trop complexe pour les besoins de ce cours. Je vous conseil donc d’utiliser la fonction smean_cl_normal() du package Hmisc. Voici comment ajouter les limites supérieures et inférieures de l’intervalle de confiance de la moyenne au tableau de l’exemple précédent :

library(dplyr)
library(Hmisc)
df %>%
    group_by(genre) %>% 
    summarise(Moyenne = mean(emotionPositive, na.rm = TRUE),
              limite_inf = smean.cl.normal(emotionPositive)["Lower"],
              limite_sup = smean.cl.normal(emotionPositive)["Upper"])
## # A tibble: 2 × 4
##   genre Moyenne limite_inf limite_sup
##   <fct>   <dbl>      <dbl>      <dbl>
## 1 Homme    28.4       25.1       31.6
## 2 Femme    27.1       25.5       28.7

1.2.1 Détails supplémentaires : Intervalle de confiance et hypothèse nulle

Si vous essayez de calculer à la main l’intervalle de confiance à partir de la formule présentée dans le manuel (Haccoun et Cousineau, 2010, formule 9.5, p. 271), vous arriverez peut-être à des résultats différents de ceux obtenus à l’aide de la fonctions smean_cl_normal(). Cette différence s’explique par le fait que cette fonction calcule l’intervalle de confiance à partir de l’erreur-type de chaque groupe pris individuellement (plutôt que d’utiliser l’erreur-type de l’échantillon complet). Dans un contexte d’inférence statistique (ex.: test-t), il est plus cohérent d’estimer l’erreur-type de la moyenne à partir de l’échantillon complet puisqu’on cherche à représenter l’hypothèse nulle. Cependant, obtenir un intervalle calculé de cette manière nécessite de coder manuellement la formule dans R, ce qui résulte en une syntaxe beaucoup trop complexe pour ce cours. Pour ceux que ça intéresse, la voici :

library(dplyr)
library(tidyr)

# Cacluler l'erreur-type de la moyenne (s_M)
s <- df %>% 
        drop_na(emotionPositive) %>% 
        pull(emotionPositive) %>% 
        sd()
N <- df %>% 
        drop_na(emotionPositive) %>% 
        pull(emotionPositive) %>% 
        length()
s_M <- s / sqrt(N)

# Calculer le score t limite
conf.int <- 0.95
degrees_of_freedom <- N - 2 # Deux groupes
t <- qt((1 + conf.int)/2, df = degrees_of_freedom)

# Calculer les limites de l'IC et présenter dans un tableau
options(pillar.sigfig = 4)
df %>%
  drop_na(emotionPositive) %>% 
  group_by(genre) %>% 
  summarise(Moyenne = mean(emotionPositive),
            limite_inf = mean(emotionPositive) - t * s_M,
            limite_sup = mean(emotionPositive) + t * s_M)
## # A tibble: 2 × 4
##   genre Moyenne limite_inf limite_sup
##   <fct>   <dbl>      <dbl>      <dbl>
## 1 Homme   28.37      26.95      29.79
## 2 Femme   27.10      25.68      28.51

Dans le cadre de votre TP, vous pourrez présenter l’intervalle de confiance obtenus à partir de la fonction smean_cl_normal().