TP R : Importation et Analyse de Données
TP R : Importation et Analyse de Données
1. TP 7/10
1.1. Exercice 1.8
1.1.1. Initiation
• Ouvrir R
• Taper dans la console : library(Rcmdr) et appuyer sur enter (pour utiliser R-commander)
attention aux MAJ/min
Par exemple :
• Dans le menu supérieur : données → importer des données → depuis un fichier txt, le presse-
papier ou une URL …
Car les bases de données fournies dans le cours sont toujours en format .txt
• Dans la fenêtre qui s’ouvre, modifier/vérifier :
o Le nom du tableau de données : Dataset → MI (le nom de la base de données car [Link])
Ne pas laisser les noms par défaut car si plusieurs bases de données, on aura Dataset1,
Dataset2, … et on ne saura plus à quoi ils correspondent
Il ne peut pas y avoir d’espaces ni d’accents dans le nom de la base de données et elle ne
peut pas commencer par un chiffre
Si on souhaite mettre un espace, taper _ mais pas de tiret car est le symbole du « moins »
dans le logiciel mathématique
(Rem valable aussi pour les noms de variables)
o Les noms de variables dans le fichier : généralement, il y a les noms de variables dans le
fichier (ex dans la base de données MI, le nom des variables est dans la 1 e colonne) →
laisser cette case cochée pour que le logiciel ne prenne pas le nom des variables pour des
données (bug)
o Indicateur de données manquantes : dépend de la façon dont les données manquantes
sont codées dans la base de données
Exemple dans la base de données MI, il n’y a pas de données manquantes, c’est une base
de données complète → on peut laisser NA par défaut
Sinon regarder dans le fichier d’explications comment les données manquantes sont
codées (NA, espace, symbole particulier, …)
o Emplacement du fichier de données : cocher système de fichiers local (car base de
données a été enregistrée sur notre ordinateur)
o Séparateur de champs : dans les fichiers .txt, on travaillera avec des tabulations → cocher
tabulations
o Séparateur décimal : dépend de la base de données (ouvrir dans le bloc note pour
vérifier)
o Finir par cliquer sur OK et nouvelle fenêtre s’ouvre pour aller chercher le fichier sur l’ordi
Puis, régulièrement pdt l’exercice, enregistrer le script manuellement car ce n’est pas fait par le
logiciel automatiquement
1.1.4. Catégoriser des variables (analyse descriptive d’une variable quantitative)
L’exercice nous demande de catégoriser la variable PAS telle que
1) PAS normale : PAS < Médiane (PAS) (arrondir la valeur médiane à l’unité supérieure)
2) PAS élevée : PAS ≥ Médiane (PAS)
• Réaliser une statistique de la variable PAS pour identifier la médiane
o
NB : on voit que certains menus ne sont pas accessibles car le logiciel considère que dans
la base de données, il n’y a que des variables chiffrées et donc les traite comme des
variables quantitatives
Si on souhaite faire une table de fréquence du sexe par exemple, qui est codée 0/1, il faut
d’abord la convertir en facteurs (0=hommes et 1=femmes)
On peut sélectionner plusieurs variables pour ttes les analyser en même temps (touche
ctrl+cliquer sur 2e variable)
On peut aussi résumer une variable par groupes (à condition d’avoir factorisé les
variables, ex PAS en fonction du sexe)
142:hi="PAS élevée"
Puis valider par OK
Alors :
• Dans les sorties, la commande apparait en rouge
• Dans la case des messages (tt en bas), NOTE : Le jeu de données MI a 500
lignes et 13 colonnes. (Donc 1 colonne en plus qu’initialement car 1 variable
en plus)
• Dans la visualisation de la base de données, la nouvelle colonne apparait à la
droite du tableau (à la fin)
1.1.5. Combien de sujets (%) ont une PAS normale ?
▪ Réalisation d’une table de fréquence
Commande : local({
.Table <- with(MI, table(PAS_CAT))
cat("\ncounts:\n")
print(.Table)
cat("\npercentages:\n")
print(round(100*.Table/sum(.Table), 2))
})
Le logiciel nous donne d’abord les effectifs (counts), puis les pourcentages
Comme on a coupé à la médiane, logique d’avoir 50% dans chaque catégorie
(parfois ne coupe pas pile 50-50 quand répartition à la médiane, ex : 49.5-50.5)
▪ Réponse : 250 sujets (50%) ont une PAS normale
1.1.6. Représenter ce % de sujets à l’aide du/des graphique(s) adéquat(s).
Variable qualitative : 2 graphiques possibles (diagramme en barre et diagramme circulaire)
Ces graphes apparaissent dans R (et pas dans Rcmdr) donc il faut les enregistrer via la fenêtre R
(en cliquant sur la fenêtre du graphique pour l’activer)
Pour sauvegarder : Ficher → sauver sous → PDF, jpeg, …
Commande ylim=c(0,100)
▪ Modification de la couleur :
Par défaut, le graphique est gris
Avec la commande col=c(« »,« »)
[Link]. Le graphique en camembert
Peu rencontré dans les publications scientifiques (diagramme en barre préféré) ok en
présentations
1.1.7. Dans l’échantillon, les sujets avec une PAS élevée sont-ils plus âgés?
• Étudier l’âge en fonction des catégories de PAS
Dans Statistiques → résumés → Statistiques descriptives
Comme case « même effectif » sélectionnée : +/- 33% de sujets dans chaque classe
Distribution de fréquence : pour variables qualitatives (et variables continues catégorisée)
Statistiques descriptives : pour variables quantitatives continues
1.3. Remarques
1.3.1. Factorisation de variables
Par ex, le sexe est codé 0/1 et pour rendre cette variable qualitative, il faut la convertir en
facteurs.
Pour convertir une variable en facteurs : Données → Gérer les variables du jeu de données actif
→ Convertir des variables numériques en facteurs
Renommer la variable (ajouter _f au nom de la variable pour signifier qu’elle est factorisée)
Laisser coché par défaut Noms des niveaux
Une nouvelle fenêtre s’ouvre pour écrire le nom auquel correspond le code :
Le nom ajouté peut s’écrire avec tiret/accent/espace mais privilégier des noms courts
Code à vérifier dans le doc explicatif de la base de données
Une nouvelle colonne est ajoutée dans le tableau à la fin
Il vaut mieux commencer un exercice par convertir les variables en facteurs
1.3.2. Concept de normalité et différence moyenne-médiane
Pour réaliser certains tests statistiques, besoin d’avoir une distribution normale (donc la
normalité est à vérifier avant de commencer l’exercice)
Outils pour vérifier normalité :
• Méthodes descriptives : regarder si la moyenne est proche de la médiane
• Réaliser un histogramme et voir si a une forme de courbe normale/en cloche
• Faire un quantile-quantile plot (Q-Q plot) : les points doivent être alignées sur
la droite
• Boxplot ou boite à moustache (les moustaches sont les 2 barres sortant de la
boite) qui permet de montrer une dissymétrie (symétrique = médiane bien au
milieu de la boite + moustaches +/- de même longueur) et qui permet de
comparer des groupes (ex : ici boxplot de la variable âge dans les 2 catégories
de PAS)
Dans Graphes → Boite de dispersion…
2. TP 14/10
2.1. Rappels
Corrélation :
Une corrélation mesure de l’association entre 2 paramètres de variables quantitatives (observations
simultanées de 2 variables X et Y)
Cette mesure n’a pas d’unités, on a un coefficient de corrélation r (-1 ≤ r ≤ 1) si r r > 0, on a une
relation croissante entre les 2 variables (qd 1 augmente, l’autre augmente) et si r < 0, on a une
relation décroissante entre les 2 variables (qd 1 augmente, l’autre diminue)
Si r = 1 ou -1, relation parfaite, tous les points sont sur la droite de régression
Un r proche de 0 signifie qu’il n’y a pas de relation linéaire (mais il pourrait y avoir une autre
relation)
Conditions d’application du coefficient de corrélation :
- Coefficient de corrélation paramétrique de Pearson (le plus rencontré dans la littérature) : X et Y
doivent suivre une loi normale
- Coefficient de corrélation non paramétrique de Spearman : si 1 des 2, ou les 2 variables X et Y ne
suit pas une loi normale ou si au moins 1 des 2 variables est ordinale (dans ce cas, pas besoin de
faire des tests de normalité)
Régression linéaire :
Mesure de l’association entre deux variables dont l’une est fixée par l’expérimentateur et l’autre est
observée
Mesure de relation linéaire
Coefficient de détermination r² : mesure de l’ajustement de la droite de régression (0 ≤ r² ≤ 1) plus
r² est proche de 1 et meilleur est l’ajustement (plus il y a des points proches de la droite de
régression)
(En M1, les variables observées et fixées sont quantitatives continues, mais il peut y avoir des x
(variable fixée) non continus, qualitatifs → M2)
Comme le nuage est très concentré, difficile de voir si relation entre les variables est linéaire
ou pas
Mais permet d’avoir une indication sur la relation entre x et y : le coefficient de
détermination va être faible (droite presque horizontale, légèrement croissante), r² sera
proche de 0 dans modèle de régression simple
Customisation du graphique :
o Changer la couleur
o Retirer la grille : taper dans le script grid=FALSE
On peut laisser le nom de modèle par défaut (RegModel.1) ou changer de nom (sans
espaces/accents/de chiffres au début/pas de tiret)
Sélectionner la variable réponse (= y, variable observée, dépendante) et la variable
explicative (= x, variable fixée, indépendante)
Commande simple :
RegModel.1 <- lm(Temps_hospi~PAD, data=MI)
summary(RegModel.1)
(lm : la commande pour une régression linéaire simple dans tous les logiciels statistiques)
Sortie :
RegMdel.1 <- lm(variable_y~variable_x, data=nom_de_la_base_de_donnee)
Puis on demande un résumé (summaty(RegModel.1)) :
• Equation de la droite
On se concentre cette année sur l’obtention de la droite de régression
Son équation est donnée dans le tableau dans la colonne Estimate :
Temps = 5.33 + 0.0099 PAD
y = (intercept) + pente*x
La pente est positive, la relation entre les 2 variables est croissante (= observation sur le
graphique) mais proche de 0 (droite quasi horizontale, pas de relation entre les 2
variables)
→ Toujours faire la comparaison entre le graphique et l’équation obtenue
• Qualité d’ajustement
Multiple R-squared = r² = 0.002082 (valeur très petite car points pas alignés)
R² exprime le pourcentage de variabilité de la variable y expliqué par la droite de
régression (donc il y a 0.21% de la variabilité du temps d’hospitalisation expliquée par sa
relation avec la pression artérielle diastolique, pas énorme, le temps d’hospi peut être
expliqué par d’autres facteurs : la relation n’est pas relevante (non pertinente))
2.2.2. Prédiction
L’équation de la droite de régression, permet, en plus de regarder la relation entre 2 variables,
de faire des prédictions (un patient avec une telle PAD, quelle serait son temps
d’hospitalisation ?)
2 façons de faire des prédictions :
[Link]. Calcul à la main
Remplacer les valeurs dans l’équation de la droite de régression
Ex : pour un patient qui a une PAD de 80mmHg, Temps = 5.33 +0.0099*80 = 6.8 jours
[Link]. Utilisation du logiciel
Commandes à écrire dans le script de R ou Rcmdr (pour un patient qui a une PAD de
80mmHg) :
predict1 <- [Link](PAD=c(80)) ligne qui crée une petite base de données grâce à la
commande [Link], on y donne la variable x fixée sous forme d’un vecteur (on crée un
sujet qui a une PAD de 80)
predict1 est un nom arbitraire qu’on donne à la base de donnée pour stocker le sujet (on
peut changer de nom)
predict(RegModel.1, predict1) on inclut ce sujet dans le modèle de régression pour
prédire son temps d’hospitalisation
predict() est une fonction de prédiction (orthographe fixe)
Ajouter le nom du modèle qu’on vient de créer (donc attention si on a changé de nom par
rapport au nom par défaut) et la petite base de données créée
Sélectionner les 2 lignes + Soumettre
On peut voir un aperçu des petites bases de données qu’on crée en changeant la base de
données via le bouton Données puis Visualiser : on a une mini
On regarde si les moyennes (mean) et les médianes (50%) sont relativement proches (par
variable)
Si proches, distribution assez symétrique
Ex : la moyenne et la médiane de l’IMC valent 26.61 et 25.95 (assez proches mais
appréciation subjective), celles de la PAS valent 144.7 et 141.5 (pas trop éloignés)
Moyennes et médianes semblent proches mais difficile de conclure avec 1 seule analyse,
continuer l’exploration
[Link]. Investigation graphique via histogramme
On ne peut pas sélectionner plusieurs variables en même temps, obligé de faire variable
par variable
Graphe → Histogramme…
L’objectif est d’estimer si les points sont sur la droite en traits pleins (car si ils y sont
relativement dessus, l’hypothèse de normalité est vérifiée)
Ici, une majorité des points sont sur la droite mais petite déviation (ref à la dissymétrie de
l’histogramme) Or une distribution franchement dissymétrique aurait des points qui ne
suivraient même pas la droite
Donc ici, on considère que les points sont sur/très proches de la droite
[Link]. Investigation graphique via boxplot
Moins utilisé
[Link]. Test de normalité
Il existe dans la littérature (et dans le logiciel) plusieurs tests de normalité
Attention que les résultats des 6 tests (dans le logiciel) peuvent être contradictoires car
sont mathématiquement différents donc on n’en réalise qu’un
On privilégie le test de Shapiro-Wilk car c’est un vrai test de normalité (certains des autres
tests ne sont pas à proprement parler des tests de normalité mais des tests de
comparaison de distributions)
Test de normalité : H0= la distribution suit une loi normale et H1= la distribution ne suit
pas une loi normale ; on obtient une p-valeur dont le seuil est à 0.05 (α= erreur de 1 e
espèce). Si p-valeur<0.05, on rejette H0 et la distribution n’est pas normale
Statistique → Résumés → Test de normalité…
Options : choisir le test de Shapiro-Wilk (très souvent rencontré, comme le Kolmogorov-
Smirnov, les autres tests sont moins courants)
Les p-valeurs sont <0.05 donc on rejette H0, la distribution n’est pas normale
Or quand on a investigué numériquement et graphiquement, on avait une distribution
assez normale
En réalité, les tests statistiques de normalité sont très sensibles, surtout avec beaucoup de
données, donc rejettent plus vite l’hypothèse de normalité (donc ne pas toujours faire
confiance aux tests statistiques)
→ C’est pourquoi il faut faire l’investigation complète, on ne se contente pas du test de
normalité
On conclut que les 2 variables suivent une loi normale : on utilise le coefficient de
corrélation de Pearson
2.3.3. Corrélation de Pearson
2 façons de procéder
• Statistiques → Résumés → Matrice de corrélations…
3. TP 21/10
3.1. Préparation du logiciel aux analyses de survie
Il faut un pluggin survival supplémentaire car n’est pas dans le menu de base de Rcmdr
• Pour installer le plug-in (à ne faire qu’une fois) :
Dans R :
(Il vaut mieux le lancer d’office à l’examen pour ne pas à devoir relancer Rcmdr au milieu de
l’examen)
3.2. Notions sur les analyses de survie
Quand on réalise une analyse de survie, on étudie 2 variables (couple de variables) : une variable
continue qui définit un temps de survie (en jours, heures, mois, années, …) et une variable binaire
(codée 0-1, 1 étant l’évènement observé, 0 étant le non-évènement) qui est nommée « variable
censure » ou « variable événement »
« Analyses de survies » car ont été créées dans le contexte de survie d’un patient après autant de
temps, mais on peut réaliser des analyses de survie dans d’autres contextes (ex : évènement =
récidive/rechute, accident/chute, …) donc il n’y a pas toujours de sujet décédés/en vie
3.3. Exercice 4.9
3.3.1. Classer la PAS selon les catégories :
1. PAS < 140 mmHg = « Normale »
2. 140 mmHg ≤ PAS < 180 mmHg = « Elevée »
3. PAS ≥ 180 mmHg= « Très élevée »
Importer la base de données MI
Données → Importer des données → Depuis un fichier texte, …
(Attention à renommer la base de données, à sélectionner les tabulations, …)
Catégoriser la PAS
Données → Gérer le jeu de données actif → Recoder les variables…
Le nombre de chiffres après la virgule dépend de la façon dont les variables sont codées dans la
base de données (garder +/- même nombre de décimales) et il vaut mieux mettre plus de
chiffres que moins
Pour être sûrs que tous les individus sont dans une catégorie, on peut réaliser une table de
fréquence de la nouvelle variable catégorisée ou de visualiser la base de données
NB : on peut ajouter un chiffre devant le nom pour organiser les catégories dans l’ordre
souhaité (et ne pas qu’elles se classent par ordre alphabétique)
3.3.2. « Etudier numériquement et graphiquement la survie entre l’admission et la dernière date de
suivi de manière globale. »
Réaliser l’analyse de survie globale :
On va tracer l’allure de la courbe de survie pour l’ensemble des sujets puis regarder la médiane
et les quartiles de survie
Statistiques → Survival analysis → Estimate survival function …
Dans données :
• Dans le 1e cadre, sélectionner un temps de survie (si une seule colonne de la base de
données définit le temps) ou début/fin (si 2 dates dans la base de données)
Ici, c’est le temps global de suivi
• Dans le 2e cadre, sélectionner l’indicateur (variable qui définit l’évènement ou non,
variable binaire 0-1, donc surtout ne pas convertir cette variable en facteurs)
Ici, c’est la censure globale
• Comme on analyse la survie de manière globale, on ne sélectionne pas d’autres variables
dans Strate
• Laisser option par défaut
• Supprimer le contenu du cadre Expression de sélection
Dans options :
• Intervalles de confiance
(Permet de voir l’IC autour de la courbe de survie selon différentes méthodes statistiques)
Cocher Aucune (car pas encore vu) et non pour le graphique
• Méthode
Sélectionner celle de Kaplan-Meier (méthode classique pour l’analyse des données de
survie)
• Laisser les quartiles dans quantiles à estimer
• Marquer les temps censorés (à cocher)
• Summary (choisir detailed)
Graphique obtenu :
On choisit les mêmes options que précédemment mais on sélectionne en plus dans Strate la
variable qu’on a catégorisé (on retrouve les variables facteur dans strate, soit converties soit
créées)
Graphique :
On voit que les temps médians de survie pour les patients avec une PAS élevée sont les plus
importants
Le NA pour le p75 signifie qu’on ne peut pas donner de valeur exacte car la courbe de survie
continue à l’infini (sur le graphique, la courbe ne tombe pas à 0) donc tout ce qu’on peut dire,
c’est que le temps de survie est supérieur à la dernière donnée observée (> 2000 sur le
graphique)
[Link]. Comparer les courbes de survie entre elles
Réaliser un test du logrank
Statistiques → Survival analysis → Compare survival function …
Analyse graphique :
(En changeant le nom des axes dans les commandes)
3.4.3. Etudier numériquement et graphiquement la survie en fonction du taux de triglycérides
(normal ou élevé).
Statistiques → Survival analysis → Estimate survival function …
NA car courbe ne retombe pas à 0 pour aucune des 2 courbes mais descend assez bas pour le
taux élevé, si bien qu’on peut trouver le p75
Analyse graphique :
(En nommant les axes et modifiant la légende)
On remarque que les courbes sont assez distinctes (sujets avec un taux normal de triglycérides
semblent avoir une meilleure survie, cf temps médian plus élevé)
Test du logrank :
Statistiques → Survival analysis → Compare survival function …
4. TP 28/10
4.1. Tables RxC
(Tests d’hypothèses relatifs aux tables RxC : RxC n’est pas le nom d’un test mais la méthodologie
globale avec plusieurs tests statistiques différents derrière)
Distinction entre population indépendante (Test du Χ²/Test exact de Fisher) et population appariée
(Test de Mc Nemar/Test de (quasi) symétrie (quand peut être étendu à une table RxC))
Frequency table : correspond aux effectifs (nombre de sujets dans chaque case, il y a 132
sujets vivants avec une PAS élevée)
Column percentages : le total d’une colonne fait bien 100%
Pearson’s Chi-squared test : pour trouver la p-valeur
H0 = les populations sont homogènes/il n’y a pas d’association entre les 2 variables/il y a une
indépendance entre les 2 variables
H1 = les populations sont hétérogènes/il y a une association entre les 2 variables/il y a une
dépendance entre les 2 variables
Ici -, p-valeur = 0,003316 < 0,05 donc on rejette H0 et il y a une association entre les 2
variables, les populations ne sont pas homogènes en termes de PAS
Comme ici, pas de « warning » dans les messages et que dans les fréquences attendues (=
effectifs qu’on devrait avoir si on était sous l’H0) sont majoritairement > 5, donc on interprète
la p-valeur du X² (car on est dans les conditions du test) on n’a alors pas besoin de la p-valeur
du test exact de Fisher (mais quasi = à celle du X²)
Pour aller plus loin, on peut regarder la distribution des pourcentages mais cette
interprétation va rester descriptive (ex : chez les sujets décédés, il y a une légère proportion
en plus qui a une PAS très élevée par rapport au groupe vivant, mais il y a plus de sujets avec
une PAS élevée chez les sujets vivants que chez les décédés)
Pour dire qu’il y a plus de sujets dans une des 3 catégories par rapport aux autres, il faudrait
recomparer les catégories 2 à 2 (quasi jamais rencontré en pratique)
Représentation graphique via un diagramme en barres (même si on privilégie les tableaux)
4.3. Exercice 3.3
Les antécédents de maladies cardiovasculaires sont-ils associés au sexe ? Reporter les résultats dans
un tableau et interpréter
4.3.1. Factorisation
Données → Gérer les variables du jeu de données actif → Convertir une variable numérique en
facteurs
Pour les variables sexe et antécédents de maladie vasculaire (ATC)
4.3.2. Test du X² / test exact de Fisher
Statistiques → Tables de contingence → Tri croisé…
p-valeur < 0.05, on rejette H0 et il y a une association entre les antécédents et le sexe/les
antécédents ne se répartissent pas de façon homogène selon le sexe (les femmes ont un
pourcentage plus élevé de maladies cardiovasculaires)
4.4. Exercice 3.4
Les antécédents d’infarctus du myocarde sont-ils associés à l’âge ? Considérer trois classes d’âge de
mêmes effectifs. Reporter les résultats dans un tableau et interpréter
4.4.1. Factorisation
Données → Gérer les variables du jeu de données actif → Convertir une variable numérique en
facteurs
(Pour la variable antécédents d’infarctus du myocarde (MI))
Données → Gérer les variables du jeu de données actif → Découper une variable numérique en
classes
(Pour la variable âge)
4.4.2. Test du X² / test exact de Fisher
Les sujets plus âgés présentent un pourcentage significativement plus élevé d’antécédents
d’infarctus du myocarde (p = 0.00040)
4.5. Exercice 3.11
La pression artérielle systolique (PAS) a-t-elle évoluée entre T0 (baseline) et le premier follow-up
(T1)? Considérez les deux catégories suivantes de PAS
PAS < 140 mmHg = PAS normale
PAS ≥ 140 mmHg = PAS élevée
4.5.1. Test de MC Nemar (théorie)
• On peut faire un tri croisé avant (uniquement pour avoir une table descriptive, pas pour avoir
une p-valeur (donc ne pas cocher X² ou Fisher))
• On est face à une population appariée car on regarde une évolution au cours du temps
(avant/après) donc test de Mc Nemar (on cherche à savoir si le pourcentage de patients avec
une PAS élevée augmente, diminue ou reste le même au cours du temps)
• Pas d’importance dans ce qu’on met en lignes ou en colonnes ; on considère les pourcentages
totaux (de McNemar)
• Pour avoir la p-valeur, il faut faire le test de Mc Nemar via la commande : [Link]
À l’intérieur de la commande, on écrit le nom des variables qu’on croise et la base de données
dont elle est issue :
[Link](nomBaseDeDonnéesDeLaVariable1$NomVariable1,nomBaseDeDonnéesDeLaVari
able2$NomVariable2)
Attention à bien copier sans fautes (Maj et min) les noms des bases de données et des variables
(vérifier s’il n’y a pas un error dans les messages)
4.5.2. Factorisation
Peu importe quelle variable est en ligne et quelle variable est en colonne
5. TP 04/11
5.1. Tests de comparaison pour échantillons indépendants
• On mesure une variable quantitative dans des groupes indépendants (donc groupes avec
des sujets différents sans rapport les uns avec les autres)
• 4 tests : paramétrique/non paramétrique et pour 2 échantillons/pour plusieurs échantillons
indépendants
• Les tests paramétriques requièrent des conditions d’application (hypothèse pour les utiliser :
vérification de la normalité pour chacun des groupes (et pas la normalité de la variable pour
l’ensemble des sujets))
Pour investiguer la normalité : Comparaison moyenne-médiane, histogramme, Q-Q plot, test
de normalité (Shapiro-Wilk), pour chaque groupe qu’on compare. R permet d’analyser une
variable par groupes
• Mais si dès le départ, on n’a pas la normalité ou si on a des variables ordinales, on utilisera
des tests non paramétriques : test de Mann-Whitney (ne fonctionne que pour 2 groupes) et
test de Kruskall-Wallis (fonctionne pour 2 groupes et plus)
Bien qu’on puisse faire le test de Kruskall-Wallis à tous les coups, on utilisera pour 2 groupes
le test de Mann-Whitney car il existe
Le test de Mann-Whitney (en Fr), s’appelle aussi test de Wilcoxon (≠ test des rangs signés de
Wilcoxon (test pour échantillons appariés)) dans R, il est appelé test Wilcoxon bivarié (les
autres test Wilcoxon univarié et appariés seront vus la semaine prochaine dans les
échantillons appariés)
Avec les tests non paramétriques, on ne compare pas des moyennes mais des médianes
(plus exactement, on compare des distributions qu’on résume par la médiane) (/!\ à bien
conclure sur les médianes dans l’interprétation)
• Si on est en présence de la normalité, on vérifie une 2 e hypothèse, l’homoscédasticité
(égalité des variances), si cette hypothèse est vérifiée, on peut réaliser un test de Student (si
2 groupes) ou une ANOVA (analyse de la variance à 1 critère, si plus de 2 groupes)
Tests statistiques pour vérifier l’homogénéité des variances : test de Fisher (si 2 groupes, ≠
du test exact de Fisher des tables RxC, H0 = variances égales et H1 = variances pas égales),
test de Bartlett (si plus de 2 groupes), …
Mais s’il n’y a pas d’égalité des variances, 2 possibilités : soit on utilise un test non
paramétrique, soit on réalise quand même un test paramétrique mais en prenant en compte
que les variances ne sont pas égales (Quand on réalise un test de Student ou une ANOVA I
on va cocher l’option des variances pas égales pour avoir ces tests adaptés : test de Welsh
ou ANOVA de Welsh)
• Lorsqu’on réalise une ANOVA I, H0 = les moyennes sont égales (test paramétrique, on parle
en termes de moyennes) et H1 = les moyennes sont différentes
Mais si on a 3 groupes, rejeter H0 ne veut pas dire que les 3 moyennes sont différentes, mais
qu’il y a au moins 2 groupes qui diffèrent entre eux
Pour vérifier si la différence porte sur un ou plusieurs groupes, on utilise des techniques de
comparaisons multiples où on compare les groupes 2 à 2
Pour les ANOVA I, il y a plusieurs techniques possibles dans la littérature, on choisit une des
techniques les plus utilisées (c’est aussi celle qui est donnée par défaut) : comparaisons
multiples de Tukey (cocher comparaisons multiples dans R)
Pour les test non paramétrique (Kruskall-Wallis), on peut réaliser des comparaisons 2 à 2
mais on ne peut pas le faire directement dans le logiciel (éventuellement refaire un Kruskall-
Wallis en comparant les groupes 2 à 2) donc dans le cadre du cours, on ne fait pas les
comparaisons multiples pour les tests non paramétriques mais elles existent
Échantillons non
appariés
Étude de la
normalité
( 4 étapes)
Variable non
Variable normale
normale/ordinale
--> test
--> test non
paramétrique
paramétrique
Étude de la
variance 2 variables Plusieurs variables
()
comparaisons
multiples de Tukey
Échantillons non
appariés
Étude de la
normalité
( 4 étapes)
Variable non
Variable normale
normale/ordinale
--> test
--> test non
paramétrique
paramétrique
Plusieurs Plusieurs
2 variables 2 variables
variables variables
Comparaisons
multiples de
Tukey (si rejet H0)
On sélectionne la variable quantitative (celle qui est mesurée dans chaque groupe) :
l’albumine
Puis on résume par groupes (variables converties ou catégorisées)
Les points sont relativement bien alignés (et on retrouve la dissymétrie du groupe 4)
• Test de normalité
Statistique → Résumés → Test de normalité…
On obtient une p-valeur pour chacun des groupes
Tous les groupes sauf le 4 ont une p-valeur > 0.05 (H0 = la distribution suit une loi normale)
Mais comme on conclut sur un ensemble, on peut quand même conclure à la normalité dans
les 4 groupes
o Les p-valeurs ajustées (similaire à la correction de Bonferroni lorsqu’on fait la
comparaison de groupes 2 à 2) : si on décidait de faire des tests de Student 2 à 2 au
lieu de faire une ANOVA I pour obtenir les p-valeurs, il y aura le phénomène de
multiplicité des tests qui gonfle le α (augmente le risque de 1 e espèce, devient >
0.05) On pourrait alors faire une correction de Bonferroni en considérant un 𝛼 =
0.05
𝑛𝑜𝑚𝑏𝑟𝑒 𝑑𝑒 𝑐𝑜𝑚𝑝𝑎𝑟𝑎𝑖𝑠𝑜𝑛𝑠 𝑟é𝑎𝑙𝑖𝑠é𝑒𝑠
Mais il existe de nombreuses autres méthodes d’ajustement dans la littérature
(Bonferroni est la plus courante et la plus facile à comprendre)
R nous propose l’ajustement de Holm (car il considère que comme on a 4 groupes et
qu’on teste leur normalité, il y a le phénomène de multiplicité des tests)
Cela ne va pas fort influencer les résultats, sauf pour les p-valeurs proches du seuil
(à ne pas prendre en compte à l’examen, prendre les valeurs non ajustées)
NB : transformation logarithmique lorsqu’on n’a pas la normalité : fonctionne souvent mais
pas à tous les coups, il faut alors revérifier que cette transformation permet d’obtenir la
normalité (4 étapes)
On cherche à normaliser la distribution car les tests paramétriques sont plus puissants
(moins d’erreurs de 2nde espèce, erreur β) (mais pour examen, on ne demande pas une
transformation, test non paramétrique suffit)
5.2.3. Vérification de l’hypothèse d’homogénéité des variances
Comme on a vérifié la normalité, on continue avec les tests paramétriques
Mais il faut d’abord vérifier l’homoscédasticité
R propose 3 tests par défaut, le Test F de deux variances (= test de Fisher, uniquement pour 2
groupes), le Test de Bartlett et le Test de Levene
Pour plusieurs groupes, on peut faire Bartlett ou Levene de façon équivalente (mais dans le
cadre du cours, on prend Bartlett car commun dans la littérature)
Statistiques → Variances → Test de Bartlett
Par défaut, on a un graphique dans R suite à l’ANOVA qui reporte la différence moyenne
entre les groupes et l’intervalle de confiance (droite verticale à 0, si 0 est dans un des
intervalles de confiance, pas de différence entre ces groupes, équivaut à une p-valeur > 0,05
; si l’intervalle ne contient pas 0, p-valeur significative)
Permet de visualiser la différence entre les groupes
5.2.5. Communication des résultats
• Tableau :
Comme il s’agit d’un test paramétrique, on résume les distributions à l’aide de la moyenne
et de l’écart-type de chaque groupe, on y ajoute le n de chaque groupe
On y met la p-valeur globale
Diagnostique histologique p-valeur
<0,0001
Grade 1 Grade 2 Grade 3 Grade 4
n = 16 n = 67 n = 120 n = 109
Albumines 3,74±0,30 3,63±0,36 3,63±0,37 3,30±0,43
(mg/dl)
S’il s’agissait d’un test non paramétrique, on complèterait le tableau avec la médiane et
l’intervalle interquartile de chaque groupe
(Si on a une ANOVA ou autre à faire à l’examen, il faudra reporter les résultats dans un
tableau pré-rempli avec le nom des groupes et de la variable, il faudra aussi choisir si on y
met la moyenne ou la médiane selon le type de test (bien regarder les exemples du cours) +
bien choisir le graphique associé)
• Graphique
On peut faire un autre graphique que celui par défaut
Graphes → Graphes des moyennes…
Pas de convention pour le choix des barres d’erreurs, on peut choisir l’écart-type, l’erreur-
standard ou l’intervalle de confiance
Ici on choisit d’être cohérents avec le tableau et on coche l’écart-type
Mieux de décocher Connecter les profils des moyennes
Bien nommer les axes
Si on fait un test non paramétrique, on ne fait pas un graphique des moyennes mais un box
plot
Graphes → Boîtes de dispersion…
Ce sont les médianes et les écart-interquartiles qui sont représentés (le graphique a été fait
à titre d’exemple mais comme test paramétrique, il faut faire le graphe des moyennes et pas
le box plot)
On peut cocher non à Identifier des valeurs aberrantes (2 e graphique)
• Interprétation
On accompagne le tableau/graphique par un résumé des comparaisons multiples
Le taux d’albumine est en moyenne différent selon le diagnostic histologique (p < 0.0001). Il
est significativement inférieur au stade 4 par rapport aux autres stades (p < 0.05). Il n’y a par
contre pas de différence entre les stade 1, 2 et 3 (p > 0.05)
(Phrase synthétique, ne pas commencer à détailler les comparaisons pour chaque groupe)
5.3. Exercice 5.2
Le taux de cholestérol dépend-il du statut ‘Edema’?
5.3.1. Factorisation
Données → Gérer les variables du jeu de données actif → Convertir des variables numériques
en facteurs
• Histogramme
Graphe → Histogramme…
• Q-Q plot
Graphe → Graphe quantile-quantile…
p-valeur > 0.05 donc on est dans le cas d’égalité des variances, on peut faire un test de Student
5.4.4. Test de Student pour l’albumine
Statistiques → Moyennes → T-test indépendant…
H0 rejeté (p-valeur < 0.05), les moyennes des taux d’albumine sont significativement
différentes selon les groupes (la présence d’hépatomégalies influence le taux d’albumine)
L’albumine est en moyenne plus élevée chez les sujets qui n’ont pas d’hepatomégalie (voir la
statistique descriptive)
5.4.5. Test de Mann-Whitney (Wilcoxon bivarié) pour le cholestérol
Statistiques → Tests non paramétriques → Test de Wilcoxon bivarié…
p-valeur > 0.05, H0 n’est pas rejeté : les médianes ne sont pas différentes (le fait de présenter
une hepatomégalie n’influence pas le taux de cholestérol)
5.4.6. Conclusion
• Albumine
Hépatomégalie p-valeur < 0,0001
Non Oui
n = 152 n = 160
Albumines 3,65 ± 0,38 3,40 ± 0,42
(mg/dl)
Graphes → Graphes des moyennes…
• Cholestérol
Hépatomégalie p-valeur = 0,079
Non Oui
n = 147 n = 137
Cholestérol 322 (255-420) 298 (239-390)
(mg/dl)
Graphes → Boîtes de dispersion…
6. TP 18/11
6.1. Tests pour échantillons appariés
Version paramétrique (test de Student pour échantillons appariés) et non paramétrique (test des
rangs signés de Wilcoxon) : devoir tester l’hypothèse de normalité. Alors que pour les comparaisons
de groupes indépendants on teste la normalité de la variable dans chaque groupe (+hypothèse
d’homoscédasticité), mais ici, pour les cas appariés (1 seul groupe sur lequel on mesure la variable
plusieurs fois) la normalité se teste sur la différence entre les 2 mesures (car 2 mesures par sujet :
avant/après, T0/T1, …). Donc il faut créer une « variable différence » (= la différence entre les 2
mesures) puis investiguer la normalité sur cette variable différence. Il n’y a pas d’hypothèse
d’homoscédasticité car il n’y a pas plusieurs groupes, c’est toujours le même groupe
Si on a la normalité : test de Student pour échantillons appariés
Si on n’a pas la normalité ou une variable ordinale : test des rangs signés de Wilcoxon
Dans le cours, on se limite à 2 mesures mais on pourrait réaliser ses tests sur plusieurs mesures au
cours du temps (ex : études longitudinales à plus long terme) : analyse de la variance à mesures
répétées et plus globalement des modèles mixtes en paramétrique et, beaucoup moins répandu, le
test non paramétrique de Friedman.
6.2. Exercice 6.5
Le sérum bilirubin a-t-il évolué entre la 1ère et dernière visite ?
(On est bien dans une analyse pour échantillons appariés car on est face aux mêmes sujets, sur
lesquels on mesure une seule et même variable, le sérum, évaluée à 2 moments différents)
6.2.1. Création d’une variable différence
Données → Gérer les variables du jeu de données actifs → Calculer une nouvelle variable…
Sélectionner les variables (double-clic) pour écrire la formule (dans expression à calculer)
Dans l’énoncé, on parle de la 1e et de la dernière visite, pour créer la différence entre ces 2
données, on peut interchanger leur position dans l’équation (bili1- bili3 = bili3 - bili1) car pas de
changement dans l’analyse statistique (si est significatif, le restera si on change le sens), juste
faire attention au moment de l’interprétation.
6.2.2. Analyse de la normalité de la différence
• Statistiques descriptives
Statistiques → Résumés → Statistiques descriptives
(Si on avait fait bili1-bili3, on aurait la même chose mais signe opposé :
)
• Histogramme
Graphe → Histogramme…
Tendence à la dissymétrie
(Dans l’autre sens (bili1-bili3) :
)
• Q-Q plot
Graphe → Graphe quantile-quantile…
Attention à ce que mu = 0 (on veut tester si la différence vaut 0 ), on pourrait aussi l’utiliser si on
souhaite une autre valeur spécifique de différence
On utilise ici la variable différence : on teste si la différence vaut 0 ou non (équivalent à tester si
les 2 mesures sont égales ou pas)
H0 : la différence entre les 2 mesures vaut 0, H1 : la différence ne vaut pas 0
Mais la 2e méthode ne fonctionne pas pour les cas non appariés (mais aussi 2 méthodes pour les
tests paramétriques appariés : t-test apparié et t-test univarié)
On obtient la même p-valeur avec les 2 méthodes
6.2.4. Résultats
Mise en forme dans un tableau
Variable Visite 1 Visite 3 Visite 3 – Visite 1 p-valeur
(n = 312) (n = 259) (n = 259)
Sérum bilirubin 1.35 1.50 0.00 0.0051
(mg/dl) (0.80 – 3.40) (0.75 – 3.55) (-0.20 – 0.70)
Comme test non paramétrique, médiane et écart interquartile
p-valeur significative, on rejette H0, la différence est différente de 0, il y a une différence entre
les 2 visites (il y a une augmentation à la 3 e visite)
6.3. Exercice 6.6
Le taux d’albumines a-t-il diminué entre la 1ère et 2ème visite?
6.3.1. Création d’une variable différence
Données → Gérer les variables du jeu de données actifs → Calculer une nouvelle variable…
On conclut à la normalité mais résultat de l’analyse est un peu ambigu (l’important est de
bien justifier la démarche)
6.3.3. Test de Student pour échantillons appariés
Statistiques → Moyennes → T-test apparié
p-valeur (= 0.3019) > 0.05 On ne rejette pas H0, il n’y a pas de différence entre les 2 mesures, le
taux d’albumine n’a pas évolué entre les 2 temps
6.3.4. Résultats
Variable Visite 1 Visite 2 Visite 2 – visite 1 p-valeur
(n = 312) (n = 285) (n = 285)
Albumines 3.52 ± 0.42 3.52 ± 0.52 -0.030 ± 0.49 0.30
(mg/dl)
Comme test paramétrique, moyennes et écart-types (s’obtiennent via une statistique
descriptive
)
6.4. Exercices 6.7
Les patients présentent-ils un taux de cholestérol différent entre la 1ère et la 2ème visite? Et entre
la 2ème et 3ème visite?
(2 questions différentes, 2 exercices en 1)
6.4.1. Création d’une variable différence
Données → Gérer les variables du jeu de données actifs → Calculer une nouvelle variable…
On observe beaucoup de NA (données manquantes stt au temps 2 et 3), gros problème des
études longitudinales car on perd des sujets au cours du temps)
Donc il nous reste très peu d’individus pour étudier la normalité
• Histogramme
Graphe → Histogramme…
• Q-Q plot
Graphe → Graphe quantile-quantile…
• Test de normalité
Statistique → Résumés → Test de normalité…
7. TP 25/11 et 02/12
2 variables 1 variable
(X et Y) dans n
1 population échantillons
Echantillons Echantillons
Vérification de
appariés ou appariés ou
la normalité
indépendants indépendants
Au moins une
Les 2 sont Echantillons Echantillons Echantillons Echantillons
n'est pas
normales indépendants appariés indépendants appariés
normale
Corrélation de Corrélation de
Pearson Spearman Si 2 échantillons Voir arbre Vérification de
Test
et variable échantillons la normalité de
(test (test non d’homogénéité
binaire indépendants la différence
paramétrique) paramétrique)
Pas de
différence
Test du Chi Test de Mc Différence
Test de Fisher normale ou
carré Nemar normale
variable
ordinale
Test de Student
Test des rangs
pour échantillons
signés de Wilcoxon
appariés
• Status
Données → Gérer les variables du jeu de données actif → Convertir une variable numérique en
facteurs
p-valeur < 0.003, on rejette H0, les femmes ont plus de risques d’avoir été transplantées à la 3 e
visite
7.1.4. Résultats
Table 1. Description du statut à la 3ème visite en fonction du sexe (n = 259)
Sexe p-value*
Homme Femme 0.0030
(n = 31) (n = 228)
Status à la En vie 7 (22.6) 117 (51.3)
3ème visite Transplanté 2 (6.5) 22 (9.6)
Décédé 22 (71.0) 89 (39.0)
*test exact de Fisher
Conclusion : Le statut à la 3ème visite est significativement associé au sexe, les femmes ont plus
de risque de subir une transplantation tandis que les hommes sont plus à risque de décéder (p
= 0.0030).
7.2. Exercice 7.2
La présence d’hépatomégalie a-t-elle augmenté entre la 1ère et la 2ème visite ?
7.2.1. Analyse de l’énoncé
Variable : présence d’hépatomégalie (1), variable Qualitative Binaire
Population : patients à la 1e visite et patients à la 2e visite (2)
Échantillons indépendants ou apparié : appariés (même variable mesurée à 2 moments)
Mesure d’une durée et d’un évènement (censure) ? Non
→ Test de Mc Nemar
7.2.2. Factorisation
Données → Gérer les variables du jeu de données actif → Convertir une variable numérique en
facteurs
Hépatomégalie à la 1e visite
Hépatomégalie à la 2e visite
p-valeur > 0.05, pas de rejet de H0, pas d’augmentation significative de l’hépatomégalie entre
les 2 visites
7.2.5. Résultats
Evolution de la présence d’hépatomégalie entre la 1ère et 2ème visite (n = 283)
Hépatomégalie visite 2 p-value
Non Oui Total = 0.69
Non 114 (40.3) 27 (9.5) 141 (49.8)
Hépatomégalie
Oui 31 (11.0) 111 (39.2) 142 (50.2)
visite 1
Total 147 (51.2) 138 (48.8) 283 (100.0)
Conclusion : Le pourcentage de sujets avec hépatomégalie n’évolue pas de manière significative
entre la 1ère et la 2ème visite (p = 0.69)
7.3. Exercice 7.3
A Baseline (= visite 1), le taux d’albumines est-il associé au stade de la maladie ?
7.3.1. Analyse de l’énoncé
[Link]. 1e possibilité
Variable : Taux d’albumine (Variable Qualitative) et Stade de la maladie (Variable
Quantitative Ordinale) (2)
Population : Patients de la 1e visite (1)
Échantillons indépendants ou apparié : /
Mesure d’une durée et d’un évènement (censure) ? Non
→ Association entre 1 variable quantitative (taux d’albumines) et 1 variable ordinale (stade
de la maladie) → corrélation de Spearman
OU
[Link]. 2e possibilité
Variable : Taux d’albumine, Variable Qualitative (1)
Population : 4 groupes pour chacun des stades de la maladie (4)
Échantillons indépendants ou apparié : groupes indépendants
Mesure d’une durée et d’un évènement (censure) ? Non
→ ANOVA-1 ou test de Kruskal-Wallis
7.3.2. Corrélation
[Link]. Nuage de points
À ne pas réaliser ici car inapproprié pour une variable qualitative ordinale
[Link]. Corrélation de Spearman
Comme il y a une variable quantitative (ordinale), pas besoin d’étudier la normalité, on fait
directement le test de Spearman (non-paramétrique)
Statistiques → Résumés → Test de corrélations…
• Histogramme
Graphe → Histogramme…
• Q-Q plot
Graphe → Graphe quantile-quantile…
• Test de normalité
Statistique → Résumés → Test de normalité…
Pas de rejet de H0 pour les 4 groupes
On conclut qu’on a une distribution normale dans les 4 groupes, on poursuit avec
l’étude de la variance
[Link]. Vérification de l’hypothèse d’homogénéité des variances
Plusieurs groupes donc test de Bartlett
Statistiques → Variances → Test de Bartlett
p-valeur > 0.05, on ne rejette pas H0, les variances sont homogènes et on peut faire une
ANOVA I
[Link]. ANOVA I
Statistiques → Moyennes → ANOVA à un facteur…
7.3.4. Résultats
[Link]. Avec la corrélation
Conclusion : Le taux d’albumines diminue de manière significative avec le stade de la
maladie (r = -0.35, p < 0.0001). (Remarque : une représentation graphique style nuage de
points n’est pas adéquate avec une variable ordinale).
[Link]. Avec l’ANOVA I
Caractéristique du taux d’albumines en fonction du stade de la maladie à Baseline (n= 312)
Stade de la maladie p-value*
1 (n = 16) 2 (n = 67) 3 (n = 120) 4 (n = 109) < 0.0001
Albumines 3.74 3.63 3.63 3.30
(mg/dl) ± 0.30 ± 0.36 ± 0.37 ± 0.43
*ANOVA-1 (+ comparaisons multiples de Tukey directement fournies par le logiciel)
Graphes → Graphes des moyennes…
➔ Même conclusion pour les 2 analyses statistiques : il y a une association entre le taux
d’albumines et le stade de la maladie
7.4. Exercice 7.4
A Baseline, le taux d’albumines est-il associé à l’âge ? (convertir l’âge en années)
7.4.1. Analyse de l’énoncé
Variable : taux d’albumines et âge, 2 variables quantitatives
Population/échantillon : patients à la 1e visite
Échantillons indépendants ou apparié : /
Mesure d’une durée et d’un évènement (censure) ? Non
→ Association de 2 variables quantitatives : Corrélation de Pearson ou de Spearman
7.4.2. Conversion de l’âge
Données → Gérer les variables du jeu de données actifs → Calculer une nouvelle variable…
• Histogramme
Graphe → Histogramme…
• Q-Q plot
Graphe → Graphe quantile-quantile…
• Test de normalité
Statistique → Résumés → Test de normalité…
On conclut à la normalité
7.4.5. Test de Pearson
Statistiques → Résumés → Test de corrélations…
Conclusion : Le taux d’albumines diminue significativement avec l’âge (r Pearson = -0.20, p <
0.001). Toutefois, cette relation n’est pas significativement relevante car seul 4% de la
variabilité d’une variable est expliquée par sa relation avec l’autre variable.
7.5. Exercice 7.5
Le taux de plaquettes évolue-t-il entre la 1ère et dernière visite ?
7.5.1. Analyse de l’énoncé
Variable : Taux de plaquettes, variable quantitative (1)
Échantillon/population : patients à la 1e visite et patients à la dernière visite (2)
Échantillons indépendants ou apparié : appariés
Mesure d’une durée et d’un évènement (censure) ? Non
→ Test de Student pour échantillons appariés ou test des rangs signés de Wilcoxon