Comment créer & Interpréter un tracé QQ dans R



Un tracé QQ , abréviation de « quantile-quantile », est un type de tracé que nous pouvons utiliser pour déterminer si un ensemble de données provient potentiellement ou non d’une distribution théorique.

De nombreux tests statistiques supposent qu’un ensemble de données suit une distribution normale, et un tracé QQ est souvent utilisé pour évaluer si cette hypothèse est remplie ou non.

Bien qu’un tracé QQ ne soit pas un test statistique formel, il fournit un moyen simple de vérifier visuellement si un ensemble de données suit une distribution normale et, dans le cas contraire, comment cette hypothèse est violée et quels points de données sont potentiellement à l’origine de cette violation.

Nous pouvons créer un tracé QQ en traçant deux ensembles de quantiles l’un par rapport à l’autre. Si les deux ensembles de quantiles proviennent de la même distribution, alors les points sur le tracé devraient former à peu près une ligne diagonale droite.

Exemple de tracé QQ

Les quantiles représentent des points dans un ensemble de données en dessous desquels se situe une certaine partie des données. Par exemple, le quantile 0,9 représente le point en dessous duquel se situent 90 % des données. Le quantile 0,5 représente le point en dessous duquel se situent 50 % des données, et ainsi de suite.

Les tracés QQ identifient les quantiles de vos échantillons de données et les comparent aux quantiles d’une distribution théorique. Dans la plupart des cas, la distribution normale est utilisée, mais un tracé QQ peut en réalité être créé pour n’importe quelle distribution théorique.

Si les points de données se situent le long d’une ligne diagonale droite dans un tracé QQ, alors l’ensemble de données suit probablement une distribution normale.

Comment créer un tracé QQ dans R

Nous pouvons facilement créer un tracé QQ pour vérifier si un ensemble de données suit une distribution normale en utilisant la fonction intégrée qqnorm() .

Par exemple, le code suivant génère un vecteur de 100 valeurs aléatoires qui suivent une distribution normale et crée un tracé QQ pour cet ensemble de données afin de vérifier qu’il suit bien une distribution normale :

#make this example reproducible
set.seed(11)

#generate vector of 100 values that follows a normal distribution
data <- rnorm(100)

#create Q-Q plot to compare this dataset to a theoretical normal distribution
qqnorm(data)

Pour qu’il soit encore plus facile de voir si les données suivent une ligne droite, nous pouvons utiliser la fonction qqline() :

#create Q-Q plot
qqnorm(data)

#add straight diagonal line to plot
qqline(data)

Nous pouvons voir que les points de données proches des queues ne suivent pas exactement la ligne droite, mais pour la plupart, ces exemples de données semblent être distribués normalement (comme cela devrait être le cas puisque nous avons demandé à R de générer les données à partir d’une distribution normale). ).

Considérons plutôt le code suivant qui génère un vecteur de 100 valeurs aléatoires qui suivent une distribution gamma et crée un tracé QQ pour ces données afin de vérifier si elles suivent une distribution normale :

#make this example reproducible
set.seed(11)

#generate vector of 100 values that follows a gamma distribution
data <- rgamma(100, 1)

#create Q-Q plot to compare this dataset to a theoretical normal distribution
qqnorm(data)
qqline(data)

Nous pouvons voir un écart clair par rapport à la ligne droite dans ce graphique QQ, indiquant que cet ensemble de données ne suit probablement pas une distribution normale.

Considérons un autre morceau de code qui génère un vecteur de 100 valeurs aléatoires qui suivent une distribution du Chi carré avec 5 degrés de liberté et crée un tracé QQ pour ces données afin de vérifier si elles suivent une distribution normale :

#make this example reproducible
set.seed(11)

#generate vector of 100 values that follows a Chi-Square distribution
data <- rchisq(100, 5)

#create Q-Q plot to compare this dataset to a theoretical normal distribution
qqnorm(data)
qqline(data)

Une fois de plus, nous pouvons constater que cet ensemble de données ne semble pas suivre une distribution normale, notamment près des queues.

Modifier l’esthétique d’un tracé QQ dans R

Nous pouvons modifier certaines esthétiques du tracé QQ dans R, notamment le titre, les étiquettes des axes, les couleurs des points de données, la couleur des lignes et la largeur des lignes.

Le code suivant modifie les titres, les étiquettes des axes et la couleur des points du tracé :

#make this example reproducible
set.seed(11)

#generate vector of 100 values that follows a normal distribution
data <- rnorm(100)

#create Q-Q plot
qqnorm(data, main = 'Q-Q Plot for Normality', xlab = 'Theoretical Dist',
       ylab = 'Sample dist', col = 'steelblue')

Ensuite, le code suivant ajoute une ligne diagonale droite au tracé avec une couleur rouge, une largeur de ligne de 2 (lwd = 2, la valeur par défaut est 1) et une ligne pointillée (lty = 2, la valeur par défaut est 1) :

qqline(data, col = 'red', lwd = 2, lty = 2)

Notes techniques

Gardez à l’esprit qu’un tracé QQ est simplement un moyen de vérifier visuellement si un ensemble de données suit une distribution théorique. Pour tester formellement si un ensemble de données suit ou non une distribution particulière, les tests suivants peuvent être effectués (en supposant que vous comparez votre ensemble de données à une distribution normale) :

Test Anderson-Darling
Test de Shapiro-Wilk
Test de Kolmogorov-Smirnov

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *