Comment créer un tracé Q-Q dans SAS
Un tracé QQ, abréviation de « quantile-quantile », est utilisé pour évaluer si un ensemble de données provient potentiellement d’une distribution théorique.
Dans la plupart des cas, ce type de tracé est utilisé pour déterminer si un ensemble de données suit ou non une distribution normale.
Si les données sont distribuées normalement, les points d’un tracé QQ se trouveront sur une ligne diagonale droite.
À l’inverse, plus les points du graphique s’écartent considérablement d’une ligne diagonale droite, moins l’ensemble de données est susceptible de suivre une distribution normale.
Le moyen le plus simple de créer un tracé QQ dans SAS consiste à utiliser l’instruction PROC UNIVARIATE avec l’instruction QQPLOT :
proc univariate data=my_data noprint; qqplot my_variable; run;
Les exemples suivants montrent comment utiliser cette syntaxe dans la pratique.
Remarque : Nous utilisons l’instruction NOPRINT pour supprimer toutes les autres statistiques récapitulatives et tableaux générés automatiquement par l’instruction PROC UNIVARIATE .
Exemple 1 : Créer un tracé QQ dans SAS pour des données normales
Le code suivant montre comment créer un tracé QQ pour un ensemble de données contenant 1 000 observations générées à partir d’une distribution normale avec une moyenne de 10 et un écart type de 2 :
/*generate 1000 values that follow normal distribution with mean 10 and sd 2 */
data normal_data;
do i = 1 to 1000;
x = 10 + 2*rannor(1);
output;
end;
run;
/*create q-q plot*/
proc univariate data=normal_data noprint;
qqplot x;
run;
Nous pouvons voir que les points se situent principalement le long d’une ligne diagonale droite avec quelques déviations mineures le long de chacune des queues.
Sur la base de ce graphique, nous pouvons supposer en toute sécurité que cet ensemble de données est normalement distribué.
Exemple 2 : tracé QQ pour des données non normales
Le code suivant montre comment créer un tracé QQ pour un ensemble de données contenant 1 000 observations générées à partir d’une distribution exponentielle :
/*generate 1000 values that follow an exponential distribution*/
data exp_data;
do i = 1 to 1000;
x = ranexp(1);
output;
end;
run;
/*create q-q plot*/
proc univariate data=exp_data noprint;
qqplot x;
run;
Je vois que les points s’écartent considérablement d’une ligne droite diagonale. Cela indique clairement que l’ensemble de données n’est pas normalement distribué.
Cela devrait avoir du sens étant donné que nous avons précisé que les données doivent suivre une distribution exponentielle.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans SAS :
Comment utiliser Proc Univariate pour les tests de normalité dans SAS
Comment effectuer une transformation de journal dans SAS
Comment identifier les valeurs aberrantes dans SAS