Page : 1 Informatique décisionnelle SAS [email protected].
-
Upload
lazare-montagne -
Category
Documents
-
view
129 -
download
13
Transcript of Page : 1 Informatique décisionnelle SAS [email protected].
Page : 2
ObjectifObjectif
Le logiciel SAS dispose d’un grand nombre de procédures
spécialisées permettant de réaliser toutes sortes d’analyses
statistiques, allant des plus simples aux plus complexes :
Calculer la moyenne, la médiane, le mode (caractéristiques de tendance centrale)
Analyser la dispersion d’une variable avec son écart type et sa variance Etudier la répartition des effectifs et fréquences des modalités d’une variable Calculer des fréquences croisées entre deux variables Etudier les corrélations 2 à 2 pour plusieurs variables Réaliser des tests (normalité, égalité de la moyenne à une constante,
indépendance, égalité de la moyenne de deux échantillons …) Faire des analyses factorielles Elaborer des typologies sur une population donnée
Estimer des modèles de régression.
Page : 3
Procédures d’analyse statistiqueProcédures d’analyse statistique
La structure générale d’une procédure SAS est toujours la
même :
Page : 4
La spécification de la table SAS en entréeLa spécification de la table SAS en entrée
L’option DATA = permet de spécifier la table SAS à utiliser en
entrée.
Elle est valable dans toutes les procédures de statistique.
Si l'option DATA = nom est absente, la procédure travaille par
défaut sur le dernier tableau créé dans les étapes en amont
Page : 5
La sélection de l’échantillon d’étudeLa sélection de l’échantillon d’étude
Pour effectuer une sélection des observations et des variables
de la table SAS spécifiée en entrée d’une procédure SAS
quelconque, on peut utiliser des options de table. En particulier,
l’option de table WHERE = permet de sélectionner
l’échantillon d’étude, c'est-à-dire un sous-ensemble
d’observations de la table SAS en entrée vérifiant un critère
donné.
Page : 6
La sélection des variables d’analyseLa sélection des variables d’analyse
Pour sélectionner les variables analysées dans les procédures
de statistique, on utilise généralement l’instruction VAR.
Les variables numériques sont les seules autorisées dans une
instruction VAR pour les procédures statistiques.
En l’absence d’une instruction VAR dans les procédures où
cette dernière est valide, la procédure utilisera toutes les
variables numériques de la table SAS en entrée.
Page : 7
L’analyse statistique par sous-groupesL’analyse statistique par sous-groupes
Pour mener une analyse sur plusieurs sous-groupes
d’observations, on dispose des instructions CLASS ou BY.
Les variables des instructions BY et CLASS peuvent être
indifféremment numériques ou caractères car elles ne servent
qu’à constituer des sous-groupes sur lesquels seront effectués
des calculs. Pour chaque variable spécifiée dans l’instruction
BY ou CLASS, SAS crée autant de sous-groupes que de
valeurs distinctes de cette variable.
Page : 8
L’analyse statistique par sous-groupesL’analyse statistique par sous-groupes
Différences entre les instructions BY et CLASS dans les
procédures de statistique :
Page : 9
Le regroupement des valeurs d’une variableLe regroupement des valeurs d’une variable
Pour créer des sous-groupes d’observations en n’utilisant pas toutes
les valeurs distinctes d’une variable, mais en faisant des
regroupements, il est possible d’utiliser une instruction FORMAT
combinée avec la présence d’une instruction BY, CLASS ou TABLE.
Notons que chaque variable de l’instruction FORMAT devra
simultanément figurer dans la liste des variables de l’une de ces
instructions.
Cette démarche sera utile pour recoder une variable qualitative ou pour
mettre une variable quantitative en classes sans avoir à créer une nouvelle
variable.
Page : 10
La pondération des observationsLa pondération des observations
Dans certains cas de figure, il peut s’avérer nécessaire de pondérer les
observations de la table SAS en entrée par les valeurs d’une variable
numérique. Pour cela on dispose des instructions WEIGHT ou
FREQ.
Les deux instructions ne peuvent pas être utilisées simultanément.
Page : 11
Procédure SQLProcédure SQL
Lister le contenu d’une table.
Listons par exemple la table sashelp.class, le poids et le nom de
chaque personne.
proc sql;
select NAME,
WEIGHT
from sashelp.class
;
quit;
Page : 12
Procédure SQLProcédure SQL
Listons le poids de chaque femme dans l’ordre décroissant des
Poids :
proc sql ;
select NAME,
WEIGHT
from SASHELP.CLASS
where SEX = “F”
order by WEIGHT descending
;
quit ;
Page : 13
Procédure SQLProcédure SQL
Syntaxe :
proc sql ;
select VARIABLE1_A_LISTER ,VARIABLE2_A_LISTER
from NOM_TABLE
where CONDITION(S)
order by VARIABLE1_DE_TRI,VARIABLE2_DE_TRI descending
;
quit ;
Page : 14
Procédure SQLProcédure SQL
Exercices :
Comptons le nombre d’hommes et de femmes de la table
SASHELP.CLASS
Calculons, à partir de la table SASHELP.PRDSAL2, le nombre
de ventes par pays, en ne conservant dans le résultat que les
pays ayant totalisé moins de 10000 ventes.
Page : 15
Procédure SQLProcédure SQL
Correction :
proc sql ;
select SEX, count (*)
from SASHELP.CLASS
group by SEX ;
quit ;
Page : 16
Procédure SQLProcédure SQL
Correction :
proc sql ;
select COUNTRY, count (*) as N
label = "Nb de ventes“
format = 4.
from SASHELP.PRDSAL2
group by COUNTRY
having N < 10000 ;
quit ;
Page : 17
Procédure SQLProcédure SQL
Sauvegarde dans la bibliothèque WORK.
proc sql ;
create table WORK.REQUETE as
select NAME,
WEIGHT
from SASHELP.CLASS
;
quit ;
Page : 18
Procédure SQLProcédure SQL
Exercices :
A partir de la table SASHELP.PRDSL2, lister les informations
suivantes : le pays, la province, le produit, les ventes actuelles
et le mois/année. Ce listing ne concernera que les ventes du
premier semestre 1998 effectuées en dehors des Etats-Unis.
Le résultat sera trié par pays, province, produit et ventes
actuelles décroissantes.
Page : 19
Procédure SQLProcédure SQL
Correction :
proc sql ;
select country,state,product,actual, MONYR
from SASHELP.prdsal2
where MONYR between '01JAN98'd and '01JUN98'd
and country ne "U.S.A."
order by country,state,product,actual descending
;
quit ;
Page : 20
Procédure MEANSProcédure MEANS
La procédure MEANS permet d’analyser la distribution d’une
variable numérique sur une population donnée (groupe
d’observations d’une table SAS). Cette procédure pourra
notamment servir à :
Calculer la somme de la variable Calculer la moyenne et médiane (caractéristiques de tendance centrale) Calculer l’écart-type, l’étendue et l’intervalle inter quantiles (caractéristiques de
dispersion) Etudier la répartition de la variable (médiane, quartiles d’ordres 1 et 3, centiles d’ordres
1, 5, 10, 25, 50, 75, 90, 95, 99) Etudier la forme de la distribution (coefficient d’aplatissement et d’asymétrie) Identifier les valeurs extrêmes de la variable Faire des tests d’égalité de la moyenne à une constante donnée.
Page : 21
Procédure MEANSProcédure MEANS
Statistiques Définition
N Nombre d’observations non manquantes
Nmiss Nombre d’observations manquantes
Min Minimum
Max Maximum
Mean Moyenne
Sum Somme
Var Variance
Std Ecart-type
Range Ecart entre le maximum et le minimum
Qrange Ecarts entre Q3 et Q1.
Sumwgt Somme pondérée
Stderr Ecart-type de la moyenne
Quelques statistiques descriptives calculées par la procédure
MEANS
Page : 22
Procédure MEANSProcédure MEANS
QUELQUES OPTIONS
- MAXDEC = n : nombre de décimales en impression
- FW = n : largeur de chaque statistique en impression (12 par défaut)
LISTE DES STATISTIQUES DISPONIBLES :
- N, NMISS, MEAN, STD, VAR, MIN, MAX, RANGE,
- SUM, USS, CSS, CV, STDERR, T, PRT, SUMWGT
Si aucune statistique n'est demandée, sortent par défaut celles
qui sont soulignées.
Page : 23
Procédure MEANSProcédure MEANS
INSTRUCTION BY
Elle permet de sortir les statistiques demandées pour chaque
modalité de la variable-by. Le tableau doit être trié avant.
INSTRUCTION CLASS
Elle a le même rôle qu'une instruction BY. Seule change la
présentation des résultats. De plus, le tableau n'a pas à être trié.
INSTRUCTION FREQ
Chaque observation du tableau d'entrée représente n
observations, si n est la valeur de la variable freq.
Page : 24
Procédure MEANSProcédure MEANS
INSTRUCTION WEIGHT
Les moyennes et les variances sont pondérées par les valeurs
de la variable de pondération.
INSTRUCTION OUTPUT
Les mots-clés disponibles sont : N, NMISS, MEAN, STD,
VAR, MIN, MAX, RANGE, SUM, USS, CSS, CV, STDERR,
T, PRT, SUMWGT
On a autant d'observations dans le tableau de sortie que de
groupes BY ou CLASS (une seule s'il n'y a ni BY ni CLASS).
Page : 25
Procédure MEANSProcédure MEANS
Exemples :
proc means data=sashelp.class; var age height weight;
run;
Page : 26
Procédure MEANSProcédure MEANS
Exercice :DATA eleves;
INPUT nom $ genre $ age taille poids ; CARDS;Albert M 14 155 52.5Marc M 13 145 50.0Louis M 15 132 35.5Valérie F 12 126 28.7Mélanie F 14 138 . Jean M 15 144 46.2Pierre M 12 140 32.3Deborah F 13 142 34.6Suzanne F 13 145 39.5Laura F 14 156 45.5Hélène F 12 135 34.6Steve M 15 . 37.2David M 16 155 48.3;RUN;
PROC PRINT DATA=eleves; RUN;
Page : 27
Procédure MEANSProcédure MEANS
Exercice :
Définissez pour chaque genre, des stats sur les variables poids
et taille.
Page : 28
Procédure MEANSProcédure MEANS
Correction :
PROC MEANS DATA=eleves;
VAR taille poids ;CLASS genre ;OUTPUT OUT=stats ;
RUN;
Page : 29
Procédure MEANSProcédure MEANS
On peut stocker des résultats dans un tableau de sortie.
PROC MEANS DATA = Tableau SAS Options;
VAR variables;
CLASS variables;
BY variables;
FREQ variable;
WEIGHT variable;
OUTPUT OUT = tableau SAS
mot-clé=noms de variables...;
RUN;
Page : 30
Procédure SUMMARYProcédure SUMMARY
La procédure MEANS possède une procédure jumelle,
SUMMARY, qui propose exactement les mêmes résultats,
avec une syntaxe analogue.
Leur seule différence est que, par défaut, la procédure MEANS
édite ses résultats dans la fenêtre « sortie », tandis que
SUMMARY nécessite une option PRINT pour le faire.
Page : 31
Procédure SUMMARYProcédure SUMMARY
Exemples :
proc summary data=SASHELP.PRDSAL2
maxdec = 2
mean min max print ;
class COUNTRY ;
var ACTUAL ;
run ;
Page : 32
Procédure SUMMARYProcédure SUMMARY
Exercices :
Faites un tableau indiquant la moyenne du poids à partir de la
table SAS Sashelp.class. Ne conservez qu’une décimale pour
les résultats.
A partir de la table sashelp.prdsal2, déterminez le CA moyen
par tranche de CA sans étape DATA. Définissez dans un
premier temps un format VENTE pour les tranches.
Page : 33
Procédure SUMMARYProcédure SUMMARY
proc format;
value VENTE 0 - < 50 = "Vente faible"
50 - < 500 = "Moyenne"
500 - high = "élevée" ;
run;
proc summary data = SASHELP.PRDSAL2 missing nway;
var ACTUAL ;
format ACTUAL VENTE.;
Class ACTUAL;
output
out = WORK.PRDSALTEST
mean (ACTUAL) = MY_CA;
format MY_CA DOLLAR12.2 ;
run;
Page : 34
Procédure FREQProcédure FREQ
Elle permet de produire des tableaux de fréquence à une ou
plusieurs dimensions (pour les variables numériques, on aura
intérêt à utiliser l’instruction FORMAT pour avoir une table
lisible).PROC FREQ Options;
TABLES Demandes/Options;
WEIGHT Variable;
FORMAT Variables et Formats;
BY Variables ;
TITLE 'Titre';
WHERE Condition Logique;
Page : 35
Les instructions de la procédure FREQLes instructions de la procédure FREQ
L’instruction TABLE permet de créer un ou plusieurs tableaux contenant des effectifs ou des fréquences des variables. Il peut s’agir de tableaux à une variable ou de tableaux croisés encore appelés tableaux de contingence).
L’option MISSPRINT permet d’éditer les valeurs manquantes dans les tableaux demandés dans l’instruction TABLE, mais elles ne sont pas prises en compte dans les calculs statistiques effectués par la procédure.
L’option MISSING permet de traiter les valeurs manquantes comme des modalités renseignées dans les calculs et tous les tableaux.
Page : 36
Les options de la procédure FREQLes options de la procédure FREQ
L’option ORDER = permet de spécifier l’ordre dans lequel
SAS devra éditer les valeurs des variables en lignes dans les
tableaux produits par la procédure FREQ :
• ORDER = DATA pour éditer les valeurs dans l’ordre d’apparition dans la table
• ORDER = FORMATTED pour éditer les valeurs dans l’ordre croissant du format d’affichage
• ORDER = FREQ pour éditer les valeurs dans l’ordre de leurs fréquences décroissantes
• ORDER = INTERNAL pour éditer les valeurs dans l’ordre croissant des valeurs non formatées. C’est l’ordre utilisé par défaut
Page : 37
Procédure FREQProcédure FREQ
INSTRUCTION TABLES
Tables à une dimension : PROC FREQ;- TABLES AGE QUAL STAT;
Tables à plusieurs dimensions : PROC FREQ;
- TABLES A*B;
- TABLES A*B*C;
L'écriture peut être simplifiée; A*(B C) est équivalent à A*B
A*C; (A B)*(C D) est équivalent à A*C A*D B*C B*D ...
Page : 38
Procédure FREQProcédure FREQ
Options de l'instruction TABLES :
OUT = nom de tableau : pour stocker les résultats dans un tableau SAS
NOROW, NOCOL, NOPERCENT..... : pour supprimer les sorties standards
CHISQ, EXPECTED, DEVIATION,... : pour des calculs associés au CHI2
Page : 39
Procédure FREQProcédure FREQ
Exemples :
proc freq data=sashelp.class;
tables age sex ;
run;
proc freq data=sashelp.class;
tables age sex*age ;
run;
Page : 40
Procédure TABULATEProcédure TABULATE
La procédure TABULATE de SAS permet de créer un tableau
croisé à 2 ou 3 dimensions à partir des données d’une table
SAS. Un certains nombre de statistiques peuvent être calculées.
La mise en forme du tableau peut être personnalisée.
Le résultat de la procédure TABULATE se trouve dans la
fenêtre OUTPUT ou alors dans un fichier externe (htm, rtf,
pdf), une sortie directe sur imprimante si l’ODS est précisé.
Les données résultat des différents croisements peuvent être
sauvées dans une table SAS.
Page : 41
Procédure TABULATEProcédure TABULATE
Exemples : Tableau croisé simple.
Réalisons un tableau croisé calculant la moyenne des ventes
actuelles par pays et type de produit.
proc tabulate data = SASHELP.PRDSAL2 ;
var ACTUAL ;
class COUNTRY PRODTYPE ;
table COUNTRY , PRODTYPE *ACTUAL * MEAN;
run;
Page : 42
Procédure TABULATEProcédure TABULATE
Exemples :
Plusieurs statistiques et plusieurs croisements. En plus de la
moyenne, représentons la somme des ventes actuelles, le
nombre de produits vendus ainsi que le pourcentage que cela
représente. Ajoutons la décomposition année par pays. Seules
les années 1995 et 1996 seront représentées.
Page : 43
Procédure TABULATEProcédure TABULATE
proc tabulate data = SASHELP.PRDSAL2 format = 9.1 ;
var ACTUAL ;
class COUNTRY PRODTYPE YEAR ;
table COUNTRY * YEAR ,
PRODTYPE * ACTUAL * ( MEAN SUM N PCTN ) ;
where YEAR in (1995 , 1996) ;
Run ;
Page : 44
Procédure TABULATEProcédure TABULATE
Exercice 1
Créer un tableau à partir de la table SASHELP.PRDSAL2,
affichant par pays (COUNTRY) et par produit (PRODUCT) la
somme des ventes prévues (PREDICT).
Product
BED CHAIR DESK SOFA
Predicted Sales Predicted Sales Predicted Sales Predicted Sales
Sum Sum Sum Sum
Country
850600.80 847395.00 844844.40 888175.80Canada
Mexico605701.80 571402.80 578431.80 599823.00
U.S.A.2453193.80 2579405.29 2586199.03 2517807.03
Page : 45
Procédure TABULATEProcédure TABULATE
Correction :
proc tabulate data = SASHELP.PRDSAL2;
var PREDICT ;
class COUNTRY PRODUCT ;
table COUNTRY ,
PRODUCT * PREDICT * ( SUM ) ;
Run ;