Trois fenêtres importantes

publicité
Cours de SAS – Séance 3 (16 décembre 2008)
Statistique descriptive et inferentielle
- PROC UNIVARIATE, CORR
- PROC FREQ
- PROC GCHART
Exemple 1 :
1. Ouvrez la table SAS Température. Si elle est déjà crée, utiliser une instruction LIBNAME,
sinon, importer le fichier « temperature.txt ».
filename donnees 'F:\ecole-doct\cours3\temperatures.txt';
data temperature;
infile donnees firstobs=5;
input annee mois precipitations temperature;
run;
2. Tracer les histogrammes des variables Précipitations et Température et tester la normalité de
ces deux variables.
PROC UNIVARIATE
La procédure UNIVARIATE produit des statistiques descriptives, des graphiques et des tests
permettant de caractériser la distribution d’une ou plusieurs variables numériques continues (ou avec
un très grand nombre de modalités).
Pour résumer, la sortie de la procédure peut contenir :
a. Les statistiques descriptives usuelles pour caractériser la distribution :
- les statistiques de position :
moyenne (MEAN)
médiane (MED)
mode (MODE)
- les statistiques de dispersion :
écart-type et variance (STD DEV et VARIANCE)
étendue (RANGE)
écart interquartiles (Q3-Q1)
certains quantiles, déciles ou centiles (99%, 95%, 90%, 10%, 5%, 1%)
- les statistiques de dissymétrie et d’aplatissement :
dissymétrie (SKEWNESS)
aplatissement (KURTOSIS)
b. Renseignements sur les données manquantes :
- code utilisé pour les valeurs manquantes (MISSING VALUE)
- effectif des données manquantes (COUNT)
- pourcentage des valeurs manquantes par rapport au nombre d’observations
(% COUNT/NOBS)
1
c. Tests statistiques
1. Test de Student pour tester la nullité de la moyenne
H0 : moyenne=0
H1 : moyenne ≠ 0
La statistique de Student est T=MEAN/(STD/SQRT(n))
Sous H0, T suit une loi de Student à n-1 degrés de liberté.
Niveau de significativité du test = p-value.
Règle de décision : Si p-value<alpha, rejeter H0.
2. Test du signe pour la médiane
H0 : médiane=0
H1 : médiane ≠ 0
La statistique du test est M=p-n/2
où p=nombre de valeurs >0 et n=nombre de valeurs ≠ 0.
Sous H0, M suit une loi binomiale B(n, 0.5).
Niveau de significativité du test = p-value.
Règle de décision : Si p-value<alpha, rejeter H0.
Remarque : Si la distribution est symétrique, ce test sert aussi à tester la nullité de la moyenne.
3. Test des rangs signés de Wilcoxon
H0 : médiane=0
H1 : médiane ≠ 0
Si la supposition de normalité de la distribution d’une variable n’est pas vérifiée, il faut utiliser le
test de Wilcoxon qui est un test non paramétrique. Cependant, ce test fait quand même une
hypothèse : la loi est continue et symétrique.
La statistique du test est S=p-n(n+1)/4
où p=somme des rangs des valeurs positives non nulles.
Sous H0, S suit une loi normale.
Niveau de significativité du test = p-value.
Règle de décision : Si p-value<alpha, rejeter H0.
2
4. Tests de normalité avec option Normal
H0 : la distribution théorique est celle d’une loi normale
H1 : autre distribution
Quatre tests sont réalisés : Shapiro-Wilks, Kolmogorov-Smirnov, Cramer-von Mises,
Anderson- Darling.
d. Intervalles de confiance, CIBASIC (TYPE=, ALPHA=)
- fournit des intervalles de confiance pour la moyenne, l’écart-type et la variance, sous
l’hypothèse de normalité des données
- TYPE=LOWER, UPPER, TWOSIDED (par défaut, TWOSIDED)
- ALPHA=niveau de confiance (par défaut, 5%)
e.
-
Représentations graphiques de la distribution
Steam and Leaf plot
Histogramme
Box plot (« boîte à moustache »)
Normality plot (« droite de Henry »)
QQ-PLOT
Syntaxe réduite la procédure
PROC UNIVARIATE DATA=nom_de_table options;
VAR variable(s) ;
CLASS variable(s) ;
FREQ variable;
WEIGHT variable;
ID variable;
OUTPUT OUT=nom_de_table statistiques;
HISTOGRAM ;
PROBPLOT ;
QQPLOT ;
INSET ; (affiche sur les graphiques des statistiques résumées)
GOUT= spécifier un catalogue SAS où seront sauvegardés les graphiques ;
RUN ;
data temperature; set temperature;
date=mdy(mois,1,annee);
format date monyy5.;
run;
/* Uniquement les statistiques descriptives*/
proc univariate data=temperature;
var precipitations temperature;
id date;
run;
/* Statistiques descriptives et graphiques*/
proc univariate data=temperature plot;
var precipitations temperature;
id date;
3
run;
/* Statistiques descriptives et histogrammes*/
proc univariate data=temperature;
var precipitations temperature;
id date;
histogram;
run;
/* Statistiques descriptives, histogrammes et ajustement d'une loi
normale*/
proc univariate data=temperature;
var precipitations temperature;
id date;
histogram / normal;
run;
/* Rajout de QQ-Plots*/
proc univariate data=temperature;
var precipitations temperature;
id date;
histogram / normal;
qqplot;
run;
Exercice : Réaliser la même étude, mais en regroupant les observations par mois.
Même chose pour les années.
3. Calculer la matrice de corrélation des variables continues.
PROC CORR
Cette procédure calcule divers coefficients de corrélation entre des variables. Implicitement, la
procédure CORR donne aussi les statistiques unidimensionnelles les plus usuelles.
PROC CORR DATA= jeu_de_données options;
VAR
liste_des_variables ;
WITH
liste_des_variables;
BY
liste_des_variables;
FREQ
variable;
WEIGHT
variable;
RUN;
Options :
NOMISS
élimine les observations présentant des valeurs manquantes (par défaut le calcul se
fait avec toutes les données définies pour chaque couple)
NOSIMPLE supprime l’affichage des statistiques unidimensionnelles
NOPRINT
supprime les affichages dans la fenêtre Output
PEARSON demande le calcul des coefficients de corrélation de Pearson (option par défaut)
OUTP
OUTP=nom_de_table demande le rangement de la matrice de corrélation dans une
table SAS
4
Instructions :
VAR
donne la liste des variables à traiter (par défaut, toutes les variables numériques sauf
celles citées par BY, FREQ, WEIGHT
WITH
les croisements sont limités aux variables de l’instruction VAR avec celles de
l’instruction WITH
BY
variables définissant des groupes (le fichier doit être ordonné sur ces variables)
proc corr data=temperature;
var precipitations temperature;
run;
Exemple 2 :
1. Ouvrir la table SAS Couleurs. Afficher les fréquences des variables qualitatives Sexe,
Couleur des yeux et couleurs de cheveux.
PROC FREQ
La procédure FREQ permet d'obtenir des tables de fréquences et des tableaux de contingences ainsi
que plusieurs statistiques descriptives et différents tests.
PROC FREQ DATA= jeu_de_données options1;
BY
nom_variable ...; (imprime des tables ou des tableaux différents pour les observations
de chaque groupe)
TABLES
ligne_var[*col_var] / options2; (produit les tables de fréquences et les tableaux de
contingence demandés)
WEIGHT
nom_variable; (par défaut, 1 par observation)
RUN;
Options1 :
FORMCHAR (1, 2,7)=`trois_caractères'
Identifie les caractères qui formeront les lignes de divisions (1) verticales, (2) horizontales et
(7) les intersections. Par défaut c'est |-+ .
ORDER=
Indique l'ordre selon lequel apparaîtront les variables. Par défaut c'est INTERNAL.
PAGE
Imprime une seule table ou un seul tableau par page.
Options2 :
ALPHA=
Identifie le niveau 100(1- ) % de l'intervalle de confiance. Par défaut =0,05.
CHISQ
Imprime la valeur et la "p-value" des khi-deux de Pearson, du maximum de vraisemblance et
de Mantel-Haenszel, ainsi que le test de Fisher, le coefficient de Phi, celui de contingence et
la statistique V de Cramer.
CELLCHI2
Imprime pour chaque cellule sa contribution à la statistique chi-deux.
CUMCOL
Imprime pour chaque cellule les pourcentages cumulatifs des colonnes.
DEVIATION
5
Imprime pour chaque cellule la différence entre sa fréquence et sa valeur espérée.
EXPECTED
Imprime les fréquences espérées sous l'hypothèse de l'indépendance.
MISSPRINT
Pour les tableaux, imprime les fréquences des valeurs manquantes sans toutefois les utiliser
dans les calculs de statistiques.
MISSING
Inclut les valeurs manquantes dans les calculs.
OUT=nom
Nomme le jeu de données qui contiendra les valeurs et les fréquences des variables de la
dernière table ou du dernier tableau.
LIST
Imprime les données en une liste plutôt que sous forme de table.
NOCOL
Supprime l'impression des pourcentages des colonnes.
NOCUM
Supprime l'impression des fréquences cumulatives et des pourcentages cumulatifs.
NOFREQ
Supprime l'impression des fréquences.
NOPERCENT
Supprime l'impression des pourcentages.
NOPRINT
Supprime l'impression des tables, mais imprime les statistiques demandées.
NOROW
Supprime l'impression des pourcentages de lignes.
data couleurs;
infile 'F:\ecole-doct\cours2\couleurs.txt' delimiter='09'x
firstobs=2;
input Indice Cheveux $ Yeux $ Sexe $ Freq;
run;
proc freq data=couleurs;
tables sexe cheveux yeux;
run;
On ne tient pas compte des vraies fréquences, contenues dans la variable Freq. Si on en tient
compte,
proc freq data=couleurs;
tables sexe cheveux yeux;
weight freq;
run;
2. Créer une table de contingence en croisant les variables Couleur des yeux et couleur des
cheveux. Tenir compte des vraies fréquences. Tester l’indépendance des deux variables.
proc freq data=couleurs;
tables cheveux*yeux;
weight freq;
6
run;
Si on veut afficher uniquement les effectifs,
proc freq data=couleurs;
tables cheveux*yeux /nopercent nocol norow out=stat1;
weight freq;
run;
Le test de chi-deux :
proc freq data=couleurs;
tables cheveux*yeux /nopercent nocol norow deviation expected
cellchi2 chisq;
weight freq;
run;
3. Créer une table de contingence en croisant les variables Couleur des yeux et Couleur des
cheveux selon le Sexe. Tenir compte des vraies fréquences. Tester l’indépendance des
variables dans les deux groupes.
proc freq data=couleurs;
by sexe;
tables cheveux*yeux /nopercent nocol norow expected chisq;
weight freq;
run;
Problème de tri sur le fichier !!!
proc freq data=couleurs;
by descending sexe;
tables cheveux*yeux /nopercent nocol norow expected chisq;
weight freq;
run;
4. Représenter les variables qualitatives Sexe, Cheveux et Couleurs avec des diagrammes en
bâtons et en camemberts.
PROC GCHART
Cette procédure permet de tracer divers diagrammes. Ce cours se borne aux commandes pour obtenir
des histogrammes et des camemberts.
Elle peut être utilisée avec des variables numériques (discrètes ou continues) ou avec des variables
de type chaîne de caractère. Les variables numériques sont considérées comme continues sauf si
l’option DISCRETE est présente. L’option MIDPOINTS permet de choisir les centres des classes. Il
est possible de construire des diagrammes entrelacés ou/et empilés (option GROUP et
SUBGROUP).
PROC GCHART DATA= jeu_de_données options;
VBAR
variable(s) / options ;
HBAR
variable(s) / options ;
7
PIE
AXISn
TITLE
NOTE
BY
RUN;
variable(s) / options;
options;
options ‘texte’;
options ‘texte’;
variables;
Remarque :
Cette procedure est interactive, les ordres de trace HBAR, VBAR et PIE seront executés
imédiatement s’ils sont suivis de RUN puis soumises (F3), sans quitter la procédure GCHART, ce
qui permet de produire de nouveaux graphiques ou de réviser le tracé sans quitter GCHART. On
utilise l’instruction QUIT pour sortir de GCHART.
proc gchart data=couleurs;
pie cheveux yeux sexe ;
hbar cheveux yeux sexe ;
run;
/* Problème avec les fréquences !*/
proc gchart data=couleurs;
pie cheveux yeux sexe /sumvar=freq;
hbar cheveux yeux sexe /sumvar=freq;
run;
Exercice
1. Ouvrir la bibliothèque suivante :
libname a 'C:\Program Files\SAS\SAS 9.1\insight\sample';
Afficher la table Iris.
2. Utiliser la Proc CONTENTS pour récupérer les noms des variables.
3. Afficher les statistiques descriptives pour les variables continues et étudier si les
variables sont distribuées selon des lois normales. On fera une deuxième étude
par espèce.
4. Calculer la matrice de corrélation pour les variables continues.
5. Afficher les fréquences des espèces et représenter-les à l’aide d’un diagramme
camembert.
6. Représenter graphiquement le nuage des points en utilisant les variables
continues et en étiquetant les observations par leur espèce. Est-ce que les
espèces sont facilement séparables ?
libname a 'C:\Program Files\SAS\SAS 9.1\insight\sample';
/* Recuperer les noms des variables*/
proc contents data=a.iris;
run;
/* Statistiques descriptives*/
8
proc univariate data=a.iris;
var petallen petalwid sepallen sepalwid;
histogram /normal;
run;
/* Statistiques descriptives par espece*/
proc univariate data=a.iris;
var petallen petalwid sepallen sepalwid;
histogram /normal;
class species;
run;
/* Matrice de correlation*/
proc corr data=a.iris;
var sepallen--petalwid;
run;
/* Etude de la variable espece*/
proc freq data=a.iris;
tables species;
run;
proc gchart data=a.iris;
pie species;
run;
/* Representation du nuage de points*/
proc gplot data=a.iris;
plot sepallen*sepalwid=species;
run;
9
Téléchargement