0% ont trouvé ce document utile (0 vote)
63 vues80 pages

TP R : Importation et Analyse de Données

Le document fournit des instructions détaillées pour réaliser des travaux pratiques avec le logiciel R, en se concentrant sur l'importation de bases de données, la catégorisation de variables et la réalisation d'analyses descriptives. Il décrit également comment visualiser les données et effectuer des tests statistiques, tout en soulignant l'importance de sauvegarder régulièrement le script. Les exercices incluent des manipulations de données, des créations de graphiques, et des vérifications de normalité.

Transféré par

scribd112233
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
63 vues80 pages

TP R : Importation et Analyse de Données

Le document fournit des instructions détaillées pour réaliser des travaux pratiques avec le logiciel R, en se concentrant sur l'importation de bases de données, la catégorisation de variables et la réalisation d'analyses descriptives. Il décrit également comment visualiser les données et effectuer des tests statistiques, tout en soulignant l'importance de sauvegarder régulièrement le script. Les exercices incluent des manipulations de données, des créations de graphiques, et des vérifications de normalité.

Transféré par

scribd112233
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Travaux pratiques Logiciel R

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

1.1.2. Importer une base de données


• Télécharger la base de données sur ecampus (l’enregistrer sur notre ordi)
• Commenter le script avec # (pour aérer et expliquer les lignes de commande) On peut mettre 1
ou plusieurs # pour bien séparer les sections
Le texte derrière le # n’est pas lu par le logiciel donc on peut y mettre des espaces, des accents,

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

• La commande associée à l’importation de la base de données dans le script est alors :


MI <- [Link]("C:/Users/Propriétaire/Documents/exercices R/[Link]",
header=TRUE, stringsAsFactors=TRUE, sep="\t", [Link]="NA", dec=".",
[Link]=TRUE)
• Vérifier dans le fichier d’explication le nombre d’observations (voir si l’importation s’est bien
déroulée car doit avoir le même nombre de lignes)
Ok ici car 500 sujets et 12 variables étudiés
• Pour visualiser la base de données : cliquer sur
Une fenêtre s’ouvre
• Pour passer d’une base de données à une autre (changer de jeu de données)
Cliquer sur le bouton avec le petit tableau dessiné, une autre fenêtre s’ouvre

1.1.3. Enregistrer le script


• Attention à renommer le script pour pouvoir le retrouver par après (RCommander.R)

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)

Dans l’onglet statistiques, on sélectionne l’information qu’on souhaite avoir


Par défaut : moyenne, écart-type, écart interquartile et quantiles 0 (=minimum), 0.25, 0.5
(=médiane), 0.75 et 1 (=maximum)
Valider par OK
o La commande à taper dans le script est :
numSummary(MI[,"PAS", drop=FALSE], statistics=c("mean", "sd", "IQR",
"quantiles"), quantiles=c(0,.25,.5,.75,1))
La sortie est :

Avec mean=moyenne, sd=écart-type, IQR=écart interquartile, 0 à 100%=quantiles et


n=nombre d’individus
La médiane est de 141.5, qu’on arrondit à 142
• Création des catégories (catégorisation de la variable PAS)
o Pour la manipulation de bases de données : onglet données
Pour créer ou catégoriser des variables : Gérer les variables du jeu de données actif
Pour catégoriser une variable, 2 possibilités :
Découper une variable numérique en classes ne permet pas de définir nous-même les
classes (ex : découper la PAS en 3 catégories mais sans les définir)

Recoder des variables permet d’imposer les classes


▪ On sélectionne la variable souhaitée (PAS)
▪ On donne un nom à la nouvelle variable qu’on va créer (en général,
nomdelavariableinitiale_CAT), ne stt pas donner le même nom car va écraser la
variable initiale (pb si on doit utiliser à nouveau la variable initiale, on devra alors
réimporter la base de données) et nouveau nom sans espaces/accents/tirets
▪ Laisser par défaut la case cochée Transformer chaque variable en facteur (pas
besoin de la transformer en facteur par après si on veut l’utiliser comme variable
qualitative)
▪ On entre les directives de recodage dans le cadre
On donne au logiciel les bornes des classes :
« De la plus petite valeur possible à la médiane » :
• Écrire lo ( low = petit) ou aller chercher cette valeur minimale dans les
données
• : signifient jusqu’à
• Médiane non comprise (médiane = 142 → noter 141.999 car valeur non
comprise dans un des 2 intervalles)

« de la médiane à la plus grande valeur possible » :

• Écrire la valeur de la médiane (142)


• : (= jusqu’à)
• Écrire hi ( high = grand)

Attention à ce que le séparateur décimal soit tjs noté par « . »


Pour nommer la catégorie : =« nom choisi » (entre les guillemets, on peut avoir
espace/accent/tiret)
Exemple : lo:141.999="PAS normale"

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, …

[Link]. Le graphe en barres


Options :
▪ En général, on représente les pourcentages sur un graphique
→ Cocher « pourcentages » plutôt que « fréquences » (= effectifs dans le logiciel)
▪ On peut ajouter un nom aux axes, un titre au graphique
On peut aussi modifier le graphique via les commandes de R (on touche directement à la
commande ou on fait un copié-collé de la commande pour conserver une version intacte
▪ Modification de la longueur de l’axe des x :

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

Sélectionner la variable quantitative dans le 1 e cadre

Cliquer sur résumer par groupes… ouvre la fenêtre suivante


Sélectionner la variable qui définit le groupe (variable qualitative)
La commande est : numSummary(MI[,"Age", drop=FALSE], groups=MI$PAS_CAT,
statistics=c("mean", "sd", "IQR", "quantiles"), quantiles=c(0,.25,.5,.75,1))
On obtient une statistique descriptive par groupes :

Permet de comparer des groupes (autant de groupes qu’on veut)


1.2. Exercice 1.4 (mais fait avec la base de données MI)
1.2.1. Découper la variable « Age » en 3 classes
• Créer des catégories d’âge (sans seuil imposé (on n’a pas de bornes définies) mais de même
effectif ou de même amplitude/largeur)
Dans Données → Gérer les variables du jeu de données actif → Découper une variable
numérique en classes

• Choisir la variable à découper en classes : Age


• Nom de la nouvelle variable : Age_CAT (sans espace/accent/tiret)
• Le curseur permet de créer de 2 à 20 classes
• Choix entre 3 méthodes de découpage :
▪ Classes de tailles égales (pas le même nombre de sujets par classes mais
même amplitude ; si classes d’âge : 0-20 ans, 20-40 ans et 40-60 ans par ex)
▪ Classes de même effectif (= on retrouve dans chaque classe +/- le même
nombre de sujets)
▪ Coupures de classes naturelles avec k-means (pas utilisé ici car fait réf à des
clusters)

En pratique, on peut choisir sa méthode de découpage (généralement, on


préfère des classes de même effectif pour avoir un même nombre de patients
par classe)

• Nom des niveaux :


R donne un nom aux classes créées
▪ Nom (nous permet de donner nous-même un nom aux classes, ex : jeune,
moyen, âgé)
▪ Nombre (R appelle les classes 1, 2, 3, …)
▪ Étendue (R donne les bornes de chaque classe : intéressant car on sait
comment les classes ont été coupées)

OK → une nouvelle colonne apparait dans la visualisation de la base de données + message


ajouté + code dans la sortie
Puis retourner dans Statistiques → Résumés → Distributions de fréquences

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…

ici, les médianes (ligne en gras dans la boite)


quasi =
• Graphe des moyennes
Graphe → Graphe des moyennes
• Test de normalité
L’ensemble des outils est à consulter pour décider si la distribution suit une loi
normale ou pas
Si distribution normale : méthodes paramétriques et résumé de la variable via
moyenne
Si distribution ne suit pas une loi normale : méthodes non paramétriques et résumé
via médiane (car est un paramètre bcp plus robuste en cas de dissymétrie)
NB : dans exercice, on ne sait pas dire si un groupe est plus âgé que l’autre,
descriptivement ou graphiquement
1.3.3. Ne pas oublier de sauvegarder le script au fur et à mesure
Pour recharger un script dans Rcmdr, Fichier → Ouvrir un script…
Sélectionner tt ce script et cliquer sur soumettre

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)

2.2. Exercice 2.1


La pression artérielle diastolique (PAD) prédit-elle le temps d’hospitalisation ?
• Réalisation d’une régression linéaire (car « prédire ») avec variable fixée = PAD et variable
observée = temps d’hospitalisation
2.2.1. Vérifier si la relation entre les 2 variables est linéaire ou non (avant d’essayer de prédire la
relation à l’aide d’une droite !)
(Mais pas besoin de vérifier la normalité, pas une condition d’application)
[Link]. Réaliser un nuage de points
Graphe → Nuage de points…
Attention de bien choisir x et y (x = variable fixée et y = variable prédite) car important
pour une régression linéaire (mais pas pour une corrélation, pas d’importance de l’ordre
des axes car les 2 variables sont observées simultanément)
Options :
• Cocher « ligne des moindres carrés »
• Nommer clairement les axes + unités
On peut laisser les autres options par défaut (mais on peut aussi modifier les tailles du
texte des axes, …)
Nuage de points + droite de régression

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

[Link]. Réaliser le modèle de régression linéaire


Statistiques → Ajustement de modèles → Régression linéaire…

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

Calcul plus précis qu’à la main


Si on doit faire plusieurs prédictions, on peut changer le nom de la base de données
predict1 en predict2, predict3, … pour ne pas écraser les bases de données et garder une
trace écrite si on veut retourner en arrière (mais garder le même nom de modèle)

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

base de données dans la fenêtre qui s’ouvre

2.3. Exercice 2.2


Mesurer l’association entre l’IMC et la pression artérielle systolique (PAS). Cette relation est-elle
relevante ? Significative ?
• On réalise une corrélation : il faut d’abord vérifier la normalité des variables
2.3.1. Réaliser un nuage de points
Pour avoir une idée de la relation (linéaire ou non) entre les 2 variables
Graphe → Nuage de points …
Comme ici corrélation, peu importe quelle variable est x et quelle est y
Dans les options, pas besoin de cocher ligne des moindres carrés car on ne cherche pas
l’équation d’une droite de régression (mais ne pas oublier de nommer clairement les axes +
unités)
2.3.2. Normalité
Comme l’IMC et la PAS sont des variables quantitatives, pour savoir quel coefficient de
corrélation on réalise, il faut vérifier la normalité
Plusieurs moyens d’investiguer la normalité :
[Link]. Investigation numérique
Regarder si moyenne et médiane sont proches : statistique descriptive
Statistiques → Résumés → Statistiques descriptives
On peut sélectionner les 2 variables à analyser en même temps (avec Ctrl)

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…

Options : De préférence, échelle en pourcentages (+ nommer axes)


On estime si les graphes sont symétriques ou non (si petite dissymétrie ok qd même)
Pour l’IMC et la PAS, l’allure globale est assez symétrique (stt pour la PAS)
[Link]. Investigation graphique via Q-Q plot
On doit aussi le faire variable par variable
Graphe → Graphe quantile-quantile…
Pas besoin de changer les options, juste sélectionner la variable

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…

Dans ce cas, pas de différences si on coche Observations complètes ou Observation avec


paires complètes car que 2 variables et base de données et la base de données complète
Cocher p-value par paires
On trouve un r = 0.12 et une p-valeur = 0.0064
Ne pas regarder le dernier cadre avec ajustements
• Statistiques → Résumés → Test de corrélations…

Même menu pour Pearson ou Spearman (cocher le test désiré)


Sélectionner les 2 variables (si besoin avec Ctrl)
Laisser hypothèse bilatérale

Commande facile : [Link] (et on voit la méthode sélectionnée)


Test de corrélation : H0 = les variables ne sont pas corrélées dans la population (ρ=0) et
H1 = il y a une corrélation entre les 2 variables (ρ≠0 car hypothèse bilatérale)
Coefficient de corrélation = 0.12 (>0 donc relation croissante entre les 2 variables)
p-valeur = 0.0064 < 0.05 → H0 rejetée, il y a une association significative entre l’IMC et la
PAS
Mais coefficient de corrélation n’est pas très élevé : nuancer l’association, bien que
significative, elle n’est pas pertinente (r² = 0.0144, 1.4% de la variabilité d’une variable est
expliquée par sa relation avec l’autre variable : faible, non relevant) Souvent, si
échantillon très grand, tests statistiques sont significatifs uniquement par effet de taille
alors que relation non pertinente
(NB : t et df sont des nombres qui permettent au logiciel de calculer la p-valeur donc on
ne les interprète pas)

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 :

• Pour lancer le plug-in à chaque session :


Soit dans Rcmdr
Outils → Charger des plug-ins Rcmdr
Soit taper la commande dans R : library([Link])
On vérifie que le package est bien installé en allant dans l’onglet Statistiques, un menu Survival
analysis doit apparaitre (n’est pas dans le package de base de Rcmdr)

(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 :

Avec les petites lignes verticales = les données censurées


Peut tomber ou non à 0 au dernier temps (si elle tombe à 0, c’est qu’au dernier temps
observé il y a eu un évènement ; si elle ne tombe pas à 0, il n’y a pas eu d’évènement)
Par défaut, le logiciel ne nomme pas les axes, il faut le faire manuellement en ajoutant au
plot (= la commande pour réaliser le graphique) : , xlab="Durée entre l'admission et la
dernière date de suivi (jours)", ylab="Probabilité de survie" (on nomme l’axe x par xlab=" "
et l’axe des y par ylab=" ")
En plus de renommer le plot, il faut resélectionner les 3 1e lignes (le .Survfit) car la
commande remove(.Survfit) aura supprimé le modèle et donc il n’existe plus pour faire le
graphique

Pas besoin donc de sélectionner le summary


Sortie :

La sortie est assez longue, elle comprend différentes parties dont


• .Survfit = le modèle de survie (manière dont R réalise l’analyse de survie)
• summary(.Survfit) donne la table de Kaplan-Meier (time = temps observés dans la
base de données, [Link] = nombres de sujets présents à ce temps, [Link] = nombre
d’évènements observés à ce temps, survival = probabilité de survie (qui diminue dans
le temps)). Cette table de survie sert à dessiner la courbe
• plot(.Survfit, [Link]=FALSE, [Link]=TRUE) correspond au graphique
• quantile(.Survfit, quantiles=c(.25,.5,.75))
Les quantiles de survie : 1e quartile, médiane et 3e quartile
Le nombre en dessous (296, 1627, 2353, …) correspond au temps (jours)
Interprétation de la médiane : après 1627 jours, parmi tous les sujets dans la base de
données, il y a eu la moitié qui est décédée (ou qui ont présenté l’évènement) et
l’autre moitié est toujours en vie (idem pour les quartiles : à 2353 jours, 75% des
sujets ont présenté l’évènement et 25% qui ne l’ont pas présenté)
On peut aussi obtenir ces chiffres graphiquement en traçant une droite horizontale à
la hauteur souhaitée sur l’axe des y et à l’intersection avec la courbe, descendre une
droite verticale pour rejoindre l’axe des x où on lit le temps souhaité (ou faire
l’inverse, partir d’un nombre de jours sur l’axe des x pour trouver la probabilité de
survie sur l’axe des y)
3.3.3. « Etudier numériquement et graphiquement la survie entre l’admission et la dernière date de
suivi en fonction des catégories de PAS créées. »
[Link]. Réaliser une courbe de survie par groupes
Statistiques → Survival analysis → Estimate survival function …

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 :

3 courbes de survies sur le graphique car 3 catégories de PAS


On voit qu’il y a un groupe qui a la meilleure survie (la courbe la plus haute) : PAS élevée
Les courbes pour PAS élevée et normale tombent à 0 mais pas celle de PAS très élevée
(dernière donnée de ce groupe est censurée)
NB : modifier le graphique en ajoutant le nom des axes (le minimum à l’examen), modifiant la
couleur, réécrivant la légende, … via les commandes puis soumettre
Sortie :
• 3 tables de Kaplan-Meier pour chaque catégorie
• Quartiles pour les 3 courbes de survie

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 …

Sélectionner durée, évènement et strate comme précédemment


Laisser rho à 0.0 et supprimer le contenu du cadre de l’expression de sélection
Sortie :

Dans le tableau : N = nombre de sujets par catégorie


p-valeur = 0.008 < 0.05 → On rejette H0, les courbes de survie sont significativement
différentes entre les 3 groupes (mais ne veut pas dire que toutes les 3 sont différentes les
unes par rapport aux autres, il ne peut y avoir que 2 groupes différents entre eux)
Alors il faudrait comparer les courbes 2 à 2 avec la correction de Bonferroni
(mais peu vu dans la littérature car on utilise d’autres modèles plus complexes et car la
correction de Bonferroni n’est pas idéale et il en existe d’autres. Mais explications dans les
capsules vidéos)
3.4. Exercice 4.10
3.4.1. Classer le taux de triglycérides en deux catégories
1. Trig < 150 mg/dl : « Taux normal »
2. Trig ≥ 150 mg/dl : « Taux élevé »
Charger le jeu de données PBC (Données → Importer des données → depuis un fichier texte,
… (/!\ renommer et tabulation))
Recoder les variables (Données → Gérer le jeu de données actif → Recoder les variables…)

3.4.2. Etudier numériquement et graphiquement la survie globale


Statistiques → Survival analysis → Estimate survival function …

(Pas de condition à vérifier comme la normalité avant d’analyser la survie)


Analyse numérique :

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 …

Sélectionner en plus pour cette partie de l’exercice la strate Tri_CAT créée


Analyse numérique :

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 …

p-valeur de 0.006<0.05 → H0 rejetée : les courbes de survie sont différentes, il y a une


association entre le taux de triglycérides et la survie
Les patients qui ont un taux normal de triglycérides ont une meilleure survie

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))

Distinction entre Test d’indépendance et test d’homogénéité mais mathématiquement et


statistiquement sont identiques (Test du X²), nuance dans l’interprétation et dans la façon dont on a
construit l’étude. Un test d’indépendance est utilisé quand on a une population et qu’on souhaite
tester l’association entre 2 variables qualitatives. Un test d’homogénéité est pris si on veut tester si
une variable qualitative se répartit de façon homogène dans plusieurs populations. La distinction
entre les deux est parfois très floue (2 termes utilisés de façon semblable)

Conditions d’application du test du X² : nombre d’effectifs attendus


Si petits échantillons, le test ne va pas bien fonctionner et il faut utiliser le test exact de Fisher
(l’avantage de R et Rcmdr est qu’il ne faut pas vérifier si on est dans les conditions car si pas le cas,
le logiciel met un warning). Conditions importantes à vérifier car les 2 tests pourraient donner des
résultats contradictoires.

Si populations appariées, typiquement un avant-après ou des mesures au cours du temps, on ne


peut pas utiliser le test du X² ou de Fisher (car ces 2 tests supposent que tous les individus dans
l’échantillon sont indépendants les uns des autres), on utilise alors le test de Mc Nemar si table de
2x2
Ce test doit s’utiliser avec une commande [Link]
Il existe des extensions au test de Mc Nemar, dont le test de symétrie (pas pr exam)

4.2. Exercice 3.1


4.2.1. Factorisation
Toutes les variables utilisées avec des tests de cette séance doivent être factorisées ou
catégorisées (dans les tables RxC, il n’y a pas de paramètre quantitatif, tout est qualitatif)
Considérer les trois catégories de PAS suivantes :
PAS < 140 mmHg = « Normale »
140 mmHg ≤ PAS < 180 mmHg = « Elevée »
PAS ≥ 180 mmHg= « Très élevée »
→ On ne considère pas la PAS comme quantitative, mais comme une variable à 3 catégories
(on veut savoir si cette variable à 3 catégories se répartit de la même manière selon le statut à
la dernière date de visite (= variable binaire, patient vivant ou décédé))
Donc ici, on a 2 groupes de patients, les vivants et les décédés, où on va regarder la distribution
de la PAS : test d’homogénéité (les 2 groupes de patients sont-ils homogènes dans leur PAS)
• Catégorisation de la variable PAS
Données → Gérer les variables du jeu de données actif → Recoder les variables

• Convertir en facteurs la variable de dernière date de suivi


Données → Gérer les variables du jeu de données actif → Convertir une variable numérique en
facteurs

4.2.2. Test du X² / test exact de Fisher


Statistiques → Tables de contingence → Tri croisé…
Tant qu’on n’a pas au moins 2 variables converties en facteurs dans la base de données, le
menu « Tri croisé » est inaccessible
• Données :
N’apparaissent dans les variables que celles qui sont catégorisées ou converties en facteurs
On spécifie ce qu’on met en lignes et ce qu’on met en colonne (mais peu importe ce qu’on met
en lignes ou en colonnes, la p-valeur reste la même)
Cependant, l’interprétation des chiffres est différente selon ce qu’on met en ligne/colonne : par
convention, on met la variable qui définit les groupes/population en colonne, et le paramètre
comparé dans ces populations en ligne (si on fait un test d’indépendance et qu’il n’y a pas
vraiment une distinction entre population ou variable, pas de choix évident pour ce qui est mis
en ligne ou en colonne et ça dépende de ce qu’on veut représenter/interpréter dans les
résultats)
(À l’examen, on nous indique ce qui va en ligne et ce qui va en colonne, tableau pré-rempli)
Ici : population = statut vivant-décédé → en colonne
Caractère = PAS → ligne
(Mais inverse est aussi ok)
• Statistiques :
o Cocher au minimum test Chi-deux et test de Fisher (les autres cases sont ici pour la
compréhension)
Comme le test de Fisher n’est pas adéquat pour de très gros échantillons ou avec
beaucoup de catégories dans les variables à croiser (demande beaucoup de temps de
calcul), donc il pourrait ne pas marcher dans ces cas (mais pas dans le cadre de ce cours
donc toujours cocher le test de Fisher)
Les composants de la statistique du X² et l’impression des fréquences attendues : pas à
interpréter mais sont des étapes mathématiques qui permettent de calculer la p-valeur
du test du X² (pas besoin de les cocher)
o Quand on fait un test du X², on ne sélectionne généralement jamais les pourcentages
totaux (car peu intéressants car avec un X² on souhaite plutôt la distribution des
colonnes ou des lignes)
On sélectionne le pourcentage des colonnes (pour que le total d’une colonne fasse
100%) logiquement lorsqu’on a organisé les populations en colonnes (Ex : pour voir chez
les vivants-décédés la distribution de la PAS)
Mais on pourrait aussi sélectionner les pourcentages en ligne (dépend de la question et
de l’interprétation)
L’implémentation est très longue :
local({
.Table <- xtabs(~PAS_CAT+Censure_f, data=MI, subset=)
cat("\nFrequency table:\n")
print(.Table)
cat("\nColumn percentages:\n")
print(colPercents(.Table))
.Test <- [Link](.Table, correct=FALSE)
print(.Test)
cat("\nExpected counts:\n")
print(.Test$expected)
cat("\nChi-square components:\n")
print(round(.Test$residuals^2, 2))
print([Link](.Table))
})
La sortie :

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

(Catégorisation de la PAS à T0)


(Catégorisation de la PAS au 1e follow-up)
Données → Gérer les variables du jeu de données actif → Recoder les variables
4.5.3. Tri croisé
Statistiques → Tables de contingence → Tri croisé…

Peu importe quelle variable est en ligne et quelle variable est en colonne

4.5.4. Test de Mc Nemar

À taper dans le script + soumettre


Sortie :

Cette commande ne nous donne que la p-valeur


Ici, la p-valeur est hautement significative (dans un rapport/exercice, il ne faut pas écrire tous
les chiffres mais par convention, on dit que c’est hautement significatif et on note que la p-
valeur < 0.0001)
On rejette H0, il y a une différence au niveau du pourcentage de PAS à T0 et à T1
• Pour aller plus loin, il faut regarder les pourcentages totaux en colonnes et en lignes
(plus d’une catégorie à T0 qu’à T1)
Si on s’intéresse aux sujets avec une PAS élevée, à T0, 59,1% des sujets ont une PAS
élevée et à T1, on en a 48,6%
Comme on sait que c’est significativement différent, on peut affirmer qu’il y a moins de
sujets qui ont une PAS élevée à T1 qu’à T0
(Donc, implicitement, que le médicament donné serait efficace)
4.6. Conseils pour la résolution d’exercices
• Quand on lit un énoncé (il faut le faire jusqu’au bout), repérer les variables et leurs types car
c’est en fonction du type de variables qu’on saura le test qu’on peut réaliser
On peut utiliser le formulaire du manuel d’exercices pour s’aider
• Faire les exercices en les piochant sans faire attention au chapitre, mélangés
• Bien lire le document explicatif accompagnant la base de données

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
()

Variances Variances non Test de Mann- Test de Kruskall-


homogènes homogènes Whitney Wallis

2 variables Plusieurs variables 2 variables Plusieurs variables

Test de Student ANOVA I Test de Welsh ANOVA de Welsh

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

Etude de la Test de Mann-


Etude de la
variance par le Whitney Test de Kruskall-
variance par le
test F de deux Wallis
test de Batlett (ou Wilcoxon)
variances

Variances Variances non Variances Variances non


homogènes homogènes homogènes homogènes

Test de Student Test de Welsh ANOVA I ANOVA de Welsh

Comparaisons
multiples de
Tukey (si rejet H0)

5.2. Exercice 5.3


Le diagnostic histologique influence-t-il le taux d’albumines ?
5.2.1. Factorisation
Le taux d’albumine est une variable quantitative continue qui est mesurée dans 4 groupes
indépendants de patients (4 groupes selon les stades de diagnostique histologique)
Il faut d’abord convertir la variable qui définit les groupes en facteurs
Données → Gérer les variables du jeu de données actif → Convertir des variables numériques
en facteurs
5.2.2. Vérification de la normalité
On vérifie la normalité de la variable taux d’albumine dans chacun des groupes de diagnostique
histologique (on ne vérifie pas la normalité globalement)
• Statistiques descriptives
Statistiques → Résumés → Statistiques descriptives

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)

Moyennes et médianes sont relativement proches dans chaque groupe


NB : pour ne plus résumer par groupes une fois que le bouton est activé, l’enlever en
cliquant sur réinitialiser
• Histogramme
Graphe → Histogramme…
Moins jolie allure des graphiques 1 et 2 car moins de sujets
Eventuellement doute sur le groupe 4 qui a une dissymétrie plus marquée
Mais fort symétrique dans l’ensemble
• Q-Q plot
Graphe → Graphe quantile-quantile…

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

H0 = les variances sont égales et H1 = les variances ne sont pas égales


Ici, p-valeur > 0.05, on ne rejette pas H0, on suppose qu’on est dans l’hypothèse
d’homoscédasticité des variances
5.2.4. ANOVA I (analyse de la variance à 1 critère)
Statistiques → Moyennes → ANOVA à un facteur…

On peut garder le nom du modèle donné par défaut par le logiciel


Cocher comparaisons multiples des moyennes, elles n’ont d’intérêt que si on rejette H0 mais le
cocher d’office pour ne pas à y revenir
Comme on a vérifié l’égalité des variances, ne pas cocher Test F de Welsh sans supposer
l’égalité des variances
Sortie très longue :
• Summary(AnovaModel1.1)
C’est la table ANOVA avec les sommes de carrés
Pr(>F) donne la p-valeur pour H0 = les moyennes sont égales et H1 = il y a au moins 2
moyennes qui diffèrent entre elles
Ici, la p-valeur est hautement significative 2.45e-11 (ne pas l’écrire telle quelle quand on
reporte des résultats ni que p-valeur = 0 mais écrire qu’elle est hautement significative et
qu’elle est <0.00001) R marque *** car hautement significatif
Donc on rejette H0, il y a au moins 2 grades qui ont des moyennes de taux d’albumine
différentes
• with(PBC, numSummary(Albu, groups=Hist_f, statistics=c("mean", "sd")))
R remet une statistique descriptive qui correspond à un test paramétrique : moyennes +
écarts-types de chaque groupe (à remettre dans un tableau par la suite)
• Simultaneous Tests for General Linear Hypotheses Multiple Comparisons of Means: Tukey
Contrasts
R réalise les comparaisons multiples par la technique de Tukey et l’ajustement des p-valeurs
est déjà fait
On a la liste des comparaisons 2 à 2 (groupe 2 moins groupe 1, groupe 3 moins groupe 1, …)
Estimate donne la différence moyenne (moyenne du groupe 1 moins la moyenne du groupe
2, …)
Std. Error est l’erreur type
Pr(>|t|) donne la p-valeur, ici pas de différence de moyenne entre les groupes 1,2 et 3 mais
le groupe 4 est significativement différent des autres
Puis en allant revoir les valeurs des moyennes on peut dire si la moyenne du groupe 4 est
significativement plus élevée ou plus basse qu’une autre
Si H0 pas rejeté, ne pas aller voir les comparaisons mutiples
• Simultaneous Confidence Intervals Multiple Comparisons of Means: Tukey Contrasts
Donne l’intervalle de confiance de différences moyennes
• Graphique (dans R) :

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

5.3.2. Analyse de la normalité


Normalité du taux de cholestérol en fonction des 3 groupes
• Statistiques descriptives
Statistiques → Résumés → Statistiques descriptives
Moyennes et médianes ne sont pas très proches
• Histogramme
Graphe → Histogramme…

Dissymétrie claire de la distribution du taux de cholestérol


• Q-Q plot
Graphe → Graphe quantile-quantile…
1 groupe s’éloigne fort de la droite (mais les 2 autres sont encore OK)
• Test de normalité
Statistique → Résumés → Test de normalité…

Rejet de H0 pour les 3 groupes


On conclut qu’on n’a pas de distribution normale dans les 3 groupes, on va alors faire un test
non paramétrique
5.3.3. Test de Kruskall-Wallis
(Pas le test de Wilcoxon car plus de 2 groupes)
p-valeur significative <0.05
En non paramétrique, les techniques de comparaison multiples sont moins connues que celles
des paramétriques (tukey, scheffe, dennett, … ) donc on arrête l’analyse ici
On pourrait faire des comparaisons de groupes 2 à 2 en utilisant un ajustement de type
Bonferroni (parfois fait dans la littérature)
5.3.4. Conclusion
Le taux de cholestérol est significativement différent selon qu’il y ait ou non présence
d’œdème, avec ou sans traitement (p = 0.0062)
• Tableau
Pas Œdème sans Œdème avec p-valeur =
d’oedème traitement traitement 0.0062
n = 241 n = 26 n = 17
Cholestérol 316(256-404) 292 (244-411) 222 (188-299)
(mg/dl)
Comme non paramétrique, on reporte la médiane, le P25 et le P75 (voir statistique
descriptive pour l’analyse de la normalité)
Il faut aussi la p-valeur et le nombre d’individus par groupe
• Graphique
Graphes → Boîtes de dispersion…
5.4. Exercice 5.1
Le taux de cholestérol dépend-il de la présence d’hépatomégalie ?
De même, la présence d’hépatomégalie influence-t-elle le taux d’albumines ?
5.4.1. Factorisation
Données → Gérer les variables du jeu de données actif → Convertir des variables numériques
en facteurs

5.4.2. Analyse de la normalité


• Statistiques descriptives
Statistiques → Résumés → Statistiques descriptives

(Sélectionner 2 variables avec Ctrl)

• Histogramme
Graphe → Histogramme…
• Q-Q plot
Graphe → Graphe quantile-quantile…

On conclut difficilement pour le cholestérol


• Test de normalité
Statistique → Résumés → Test de normalité…
On rejette H0 pour le cholestérol et pour l’albumine (mais on a vu le contraire dans les
autres tests pour l’albumine) pour le test de normalité
On conclut qu’on n’est pas en faveur de la normalité pour le cholestérol (on fait un test non
paramétrique) mais bien en faveur de la normalité pour l’albumine (test paramétrique)
5.4.3. Vérification de l’homoscédasticité des variances pour l’albumine
Comme il y a 2 groupes on privilégie les tests pour 2 groupes donc on fait le test F de deux
variances
Statistiques → Variances → Test F de deux variances

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…

Dissymétrie aussi visible (s’éloigne de la droite dans les extrémités)


(Dans l’autre sens :
)
• Test de normalité
Statistique → Résumés → Test de normalité…

(exactement mêmes résultats si autre sens)


p-valeur hautement significative, vaut presque 0 : pas normal
• On conclut en faveur de la non-normalité au vu des résultats des 4 tests
On va réaliser un test non paramétrique
6.2.3. Test non paramétrique des rangs signés de Wilcoxon
2 méthodes :

• Statistiques → Tests non paramétriques → Test Wilcoxon apparié…

On spécifie les 2 mesures (peu importe le sens)

p-valeur (= 0.005109) < 0.05


H0 : les médianes des 2 mesures sont identiques, H1 : les médianes ne sont pas identiques
• Statistiques → Tests non paramétriques → Test de Wilcoxon univarié…

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…

6.3.2. Analyse de la normalité de la différence


• Statistiques descriptives
Statistiques → Résumés → Statistiques descriptives
Moyenne et médiane pas trop éloignés
• Histogramme
Graphe → Histogramme…

Histogramme assez joli


• Q-Q plot
Graphe → Graphe quantile-quantile…

Points assez bien alignés


• Test de normalité
Statistique → Résumés → Test de normalité…

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…

6.4.2. Analyse de la normalité de la différence


• Statistiques descriptives
Statistiques → Résumés → Statistiques descriptives

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é…

On ne conclut pas à la normalité


6.4.3. Test non paramétrique des rangs signés de Wilcoxon
Statistiques → Tests non paramétriques → Test Wilcoxon apparié…
6.4.4. Résultats
Variable Visite 1 Visite 2 Visite 3
Cholestérol 309.5 (249.5-400) 293.0 (247.0-326.0) 312.5 (252.5-419.0)
(mg/dl) p-valeur = 0.065
p-valeur = 0.64
Le taux de cholestérol n’évolue pas de manière significative au cours du temps (p > 0.05)
6.5. Exercice 6.8
Le stade histologique de la maladie a-t-il augmenté entre la 1ère et
dernière visite?
Le stade histologique est une variable qualitative ordinale (les autres exercices reprenaient des
variables quantitatives continues)
Il ne faut alors pas étudier la normalité d’une variable quantitative ordinale et on fait directement le
test des rangs signés de Wilcoxon (non paramétrique)
6.5.1. Statistiques descriptives
Statistiques → Résumés → Statistiques descriptives

6.5.2. Test non paramétrique des rangs signés de Wilcoxon


Statistiques → Tests non paramétriques → Test Wilcoxon apparié…

On ne prend que le stade au temps 1 et au temps 3 car c’est l’énoncé


p-valeur hautement significative, on rejette H0
6.5.3. Résultats
Variable Visite 1 Visite 3 p-valeur
(n = 312) (n = 259)
Stade histologique 3 (2-4) 3 (3-4) <0.0001
de la maladie (1-4)
On note une p-valeur hautement significative par un arrondi, et pas par sa vraie valeur
Le stade histologique de la maladie a significativement augmenté entre la 1ère et la dernière
visite

7. TP 25/11 et 02/12

• Synthèse tests statistiques


Nombre de
variables
mesurées

2 variables 1 variable
(X et Y) dans n
1 population échantillons

Type de variable Type de variable

Au moins 1 est Qualitative


Les 2 sont
qualitative Quantitative
quantitatives (proportion)
ordinale

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

Utilisation de la base de données PBC_long_cours.txt


7.1. Exercice 7.1
Les femmes sont-elles plus à risque d’avoir été transplantées lors de la 3ème visite que les hommes
?
7.1.1. Analyse de l’énoncé
Variable : Statut à la 3e visite (1) → variable Qualitative (proportion)
Échantillon/ population : les femmes et les hommes (2)
Échantillons indépendants ou apparié : indépendants
Mesure d’une durée et d’un évènement (censure) ? Non
→ Comparaison de proportions non appariées: Test d’homogénéité (table RxC)
7.1.2. Factorisation
Dans les tables RxC, les variables doivent être qualitatives, sinon il faut les factoriser/catégoriser
• Sexe
Données → Gérer les variables du jeu de données actif → Convertir une variable numérique en
facteurs

• Status
Données → Gérer les variables du jeu de données actif → Convertir une variable numérique en
facteurs

7.1.3. Test du X² / test exact de Fisher


Statistiques → Tables de contingence → Tri croisé…
On prend le Test exact de Fisher car les fréquences attendues sont inférieures à 5

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

7.2.3. Tri croisé


Statistiques → Tables de contingence → Tri croisé…
7.2.4. Test de Mc Nemar
[Link](PBC_long_cours$hepatom1_f,PBC_long_cours$hepatom2_f)

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…

p-valeur = 1.925e-10, on ne rejette pas H0

7.3.3. Tests de comparaison pour échantillons indépendants


[Link]. Factorisation
Données → Gérer les variables du jeu de données actif → Convertir une variable
numérique en facteurs

[Link]. Etude de la normalité


Normalité du taux d’albumine en fonction des 4 stades
• Statistiques descriptives
Statistiques → Résumés → Statistiques descriptives

• 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…

Taux d’albumines en fonction du stade de la maladie (n = 312)


Conclusion : Le taux moyen d’albumines diffère significativement selon le stade de la
maladie (p < 0.0001). Le stade 4 présente en effet des taux significativement inférieurs
aux 3 autres stades (p < 0.05). Il n’y a par contre pas de différence significative entre
les stades 1, 2 et 3.

➔ 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…

7.4.3. Nuage de points


Graphe → Nuage de points …
7.4.4. Étude de la normalité
• Statistiques descriptives
Statistiques → Résumés → Statistiques descriptives

• 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

Vous aimerez peut-être aussi