Analyse statistique univariée sous SAS

Statistiques univariées et distributions avec PROC UNIVARIATE

Nous avons vu il y a peu de temps la proc means qui permettait de dresser des tableaux d'analyse descriptive des variables quantitatives d'un set de données. Nous allons évoquer ici la proc univariate.
Outre les statistiques descriptives telles que, entre autres, le nombre d'observations, la moyenne, l'écart-type, le coefficient d'asymétrie ou encore le coefficient de variation, la proc univariate permet également de tracer les distributions des variables ou d'effectuer des tests statistiques.

Comportement par défaut

Nous allons travailler avec une base des membres d'un skate park, ce set ne contient qu'une seule colonne, l’âge. Chargeons tout d'abord les données puis voyons ce que proc univariate en fait par défaut.


options validvarname=any;
filename FILE "/home/u49997643/gorenja/skate_park.csv" 
         encoding='utf-8' ;

proc import datafile=FILE out=work.skate dbms=csv replace;
delimiter = ';';
getnames  = yes;
run;

proc univariate data=work.skate;
run;
SAS proc univariate

Le résultat est synthétisé sous la forme de 5 tableaux d'indicateurs.
Dans les 2 premiers, nous retrouvons les indicateurs de tendance centrale comme la moyenne, la médiane ou le mode. Nous trouvons également des indicateurs de dispersion comme la variance, l'écart-type ou le coefficient de variation. Enfin l'analyse ressort des indicateurs de forme comme les coefficients d'asymétrie (skewness) et d'aplatissement (kurtosis) de Fisher.

SAS proc univariate

Le tableau suivant restitue le résultat d'un test statistique de Student pour lequel l'hypothèse H0 est : la moyenne de la variable analysée n'est pas significativement différente de 0. Nous comprenons, via ce rendu, que proc univariate est donc capable de mener le test de la moyenne théorique pour lequel, par ailleurs, l'option Mu0 nous permettra de définir l'hypothèse nulle. Ainsi, si nous désirons effectuer un test de moyenne théorique avec une hypothèse H0=13 ans, il nous suffira de le préciser comme ceci :


proc univariate data=work.skate mu0=13;
run;
SAS proc univariate

Ci-dessus la p-value du test étant supérieur au seuil des 5%, nous pouvons considérer que la moyenne n'est pas significativement différente de 13 ans.

Enfin proc univariate restitue 2 derniers tableaux que sont les quantiles et les valeurs extrêmes. Pour ce dernier tableau SAS édite par défaut les 5 valeurs les plus basses et les 5 valeurs les plus élevées. Il est bien entendu possible de modifier ceci en ajoutant l'option nextrobs= en fin d'instruction proc univariate.

Test de normalité

Il est possible avec proc univariate d'effectuer les tests de normalité classiques. Il suffit pour cela d'ajouter l'option normal. Par ailleurs proc univariate offre également la possibilité de dresser des graphiques comme la distribution, le boxplot ainsi qu'un diagramme quantile quantile. Voici le résultat dans notre exemple :


proc univariate data=work.skate normal plots;
run;
SAS proc univariate
SAS proc univariate

Dans notre cas, nous constatons que le test de Shapiro-Wilk nous donne une p-value de 0.0421, ce qui nous incite à rejeter l'hypothèse nulle et ainsi considérer que l’âge des membres ne suit pas une distribution normale. Le qq-plot laisse transparaitre la même information puisque nous constatons aux extrêmes que les quantiles observés s'écartent de la référence à la normale.

Superposition de distribution

Finissons ce tour d'horizon par la possibilité de superposer la distribution de la variable étudiée avec une distribution théorique. Il est ainsi possible de comparer notre variable a une distribution normale. SAS va par ailleurs nous sortir le résultat de tests statistiques d'évaluation de la qualité d'ajustement des fonctions de répartitions comme Cramer-Von Mises ou le plus connu Kolmogorov-Smirnov.
Il faut noter que, dans notre exemple nous précisons une distribution théorique sur la base d'une loi normale mais d'autres options sont disponibles, et superposables (exponential, ...)


proc univariate data=work.skate;
histogram age / exponential kernel;
run;
SAS proc univariate

ODS (Output Delivery System)

La proc univariate est un bon exemple d'instruction SAS dont le rendu peut s'avérer très chargé. SAS propose un outil très pratique qui permet de tracer les éléments rendus à l'écran puis de les filtrer, il s'agit de l'ODS. Nous n'allons pas rentrer dans les détails dans le cadre de cet article (ce sera fait ultérieurement), mais sachez que cette option existe.


Retrouvez dans la rubrique "Nos datasets" toutes les données dont vous aurez besoin pour tester et pratiquer !