COURS SAS BASE1

Transcription

COURS SAS BASE1
COURS SAS BASE
1
Christian Longhi
UNIVERSITE DE NICE SOPHIA ANTIPOLIS
LATAPSES – IDEFI – CNRS
SAS Statistical Analysis System
1
LES TABLEAUX SAS
2
LES VARIABLES SAS
2
LES NOMS SAS
3
LES PROGRAMMES SAS
3
OPTIONS DU SYSTEME SAS
4
ETAPE DATA
5
L'INSTRUCTION INFILE
8
CARDS
8
L'INSTRUCTION INPUT
9
MODE LISTE DE INPUT
9
MODE COLONNE DE INPUT
10
MODE FORMAT DE INPUT
11
L'INSTRUCTION LABEL
13
LES DONNEES MANQUANTES
13
LES LISTES DE VARIABLES
14
INSTRUCTIONS D'ASSIGNATION
14
LES OPERATEURS
15
1 Ce cours a été réalisé avec l'aide de SAS Language Guide et SAS Procedures Guide, SAS Institute Inc., et des
cours SAS-MICRO de l'INSEE et de l'IRESCO. Il ne pourrait remplacer les documents SAS.
LES FONCTIONS
16
L'OPTION IN =
16
L'INSTRUCTION SET
17
INSTRUCTION MERGE
18
L'INSTRUCTION IF
20
INSTRUCTIONS DELETE KEEP DROP RENAME
21
INSTRUCTIONS DE CONTROLE
22
GENERALITES SUR LES PROCEDURES
24
PROCEDURE PRINT
26
PROCEDURE DATASETS
28
PROCEDURE SORT
29
PROCEDURE MEANS
30
PROCEDURES MEANS, UNIVARIATE, SUMMARY
31
PROCEDURE FREQ
34
PROCEDURE CORR
36
PROCEDURE PLOT
38
PROCEDURE CHART
43
PROCEDURE REG
48
1
SAS Statistical Analysis System
Logiciel d'étude de données individuelles permettant de
- MANIPULER et GERER DES FICHIERS
- PROGRAMMER DES CALCULS
- UTILISER UN ENSEMBLE DE PROCEDURES STATISTIQUES OU UTILITAIRES
PRODUISANT DES RESULTATS (tableaux croisés, corrélations, régression,...).
LE SYSTEME SAS EST CONSTITUE D'UN ENSEMBLE DE MODULES.
AU CENTRE DU SYSTEME SAS, IL Y A LE MODULE
SAS BASE
PERMETTANT LA MANIPULATION ET LA GESTION DES DONNEES, AINSI QUE
L'ECRITURE DE RAPPORTS.
LE MODULE SAS BASE EST NECESSAIRE AU FONCTIONNEMENT DU SYSTEME.
DIFFERENTS MODULES PEUVENT ETRE AJOUTES AU MODULE DE BASE POUR
ACCEDER A D'AUTRES OUTILS ET D'AUTRES TACHES.
SAS/AF
SAS/GRAPH
SAS/FSP
SAS DE BASE
SAS/ETS
SAS/STAT
....
SAS/FSP Acquisition et modification interactive de données
SAS/STAT Procédures statistiques
SAS/GRAPH Graphiques et cartographie
SAS/ETS Séries temporelles
...
Christian Longhi. Cours SAS Base. UNSA_CNRS.
2
LES TABLEAUX SAS
(FICHIERS SAS, SAS Data Sets)
LES DONNEES DOIVENT ETRE MISES SOUS FORME DE TABLEAU SAS POUR QUE LE
SYSTEME SAS PUISSE LES MANIPULER
LE TABLEAU SAS EST LE COEUR DU SYSTEME SAS
SAS fournit les outils pour transformer des données extérieures en TABLEAU SAS
LES TABLEAUX SAS SONT TEMPORAIRES OU PERMANENTS
- IL EST NECESSAIRE DE SPECIFIER UNE "LIBRARY", QUI PERMETTE A SAS
D'ALLOUER DES FICHIERS, AFIN DE CREER DES TABLEAUX SAS PERMANENTS.
SYNTAXE : LIBNAME libref 'Sous-répertoire';
EXEMPLE : LIBNAME B 'A:\IUP2';
DATA B.TABLEAU;
Lors de l'exécution, il y aura création d'un fichier TABLEAU.SSD dans le sous-répertoire A:\IUP2.
Il contient le fichier généré par l'étape DATA.
- LORSQU'AUCUNE "LIBRARY" N'EST SPECIFIEE, SAS CREE LUI-MEME UNE LIBRARY
"WORK" DANS LAQUELLE IL STOCKE DES FICHIERS TEMPORAIRES (DATA1,
DATA2...) CORRESPONDANT A TOUTES LES ETAPES DATA QU'IL RENCONTRE.
LES VARIABLES SAS
Un tableau SAS contient des variables. Chaque VARIABLE est identifiée par :
- son NOM
- son TYPE (CARACTERE OU NUMERIQUE)
- sa LONGUEUR
L'ensemble des variables décrivant une entité s'appelle une OBSERVATION.
Une OBSERVATION (ensemble de valeurs concernant le même individu) correspond à une ligne
du tableau SAS.
Une VARIABLE (ensemble de valeurs concernant une même information) correspond à une
colonne du tableau SAS.
Christian Longhi. Cours SAS Base. UNSA_CNRS.
3
LES NOMS SAS
C'est l'utilisateur qui donne un nom aux tableaux, aux variables,...
REGLES GENERALES SUR LES NOMS SAS :
1. 1 à 8 caractères
2. Commence toujours par une lettre ou _
3. Ne peut contenir que des lettres, des chiffres, ou le caractère _
LES PROGRAMMES SAS
(JOB SAS)
C'EST UNE SUITE D'INSTRUCTIONS; INSTRUCTIONS D'ETAPES DATA ET PROC, ET
INSTRUCTIONS DE PROGRAMMATION.
TOUTES LES INSTRUCTIONS SE TERMINENT PAR UN POINT VIRGULE
LES ETAPES DATA PREPARENT LES TABLEAUX SAS
LES ETAPES PROC EXPLOITENT LES TABLEAUX SAS
DANS CHAQUE INSTRUCTION SAS, ON TROUVE DES INFORMATIONS SUR LA TACHE
A EFFECTUER, LE NOM DU TABLEAU A CREER OU LE NOM DE LA PROCEDURE A
EFFECTUER; TOUTE INSTRUCTION PEUT S'ACCOMPAGNER D'OPTIONS
Entrée des données
Etape DATA, instructions
de programmation
=
COMMENT FAIRE
DATA FIC.
INPUT X Y;
CARDS;
.......
Tableau SAS
Etape PROC, instructions
dans les procédures
=
QUE FAIRE
PROC MEANS DATA=FIC;
VAR X Y;
RUN;
Christian Longhi. Cours SAS Base. UNSA_CNRS.
4
OPTIONS DU SYSTEME SAS
On peut avoir la liste des options par défaut, définies à l'installation, en écrivant :
PROC OPTIONS;
Ces options sont modifiables à tout moment du programme (en général au début) par une
instruction :
OPTIONS options ;
Exemple : OPTIONS LS=120 NODATE;
L'effet est valable le temps de la session, à moins que n'interviennent d'autres instructions
OPTIONS.
OPTIONS PRINCIPALES
CENTER/NOCENTER
Centre les impressions des
résultats des procédures
DATE/NODATE
Imprime la date en haut de
chaque page
INVALIDDATA=
Par défaut .
MISSING=
'.'
PAGESIZE= ou PS=
Nombre de lignes par page, de
20 à 500 (61)
LS=
Taille d'une ligne d'Imprimante
de 64 à 132 (132)
NEWS/NONEWS
Imprime message au début du listage :
"Vous utilisez la version..."
Christian Longhi. Cours SAS Base. UNSA_CNRS.
5
ETAPE DATA
TABLEAU SAS
DONNEES SUR SUPPORT EXTERNES
SET
INFILE
MERGE
CARDS
UPDATE
INPUT
ETAPE DATA
FILE
PUT
DATA
OUTPUT
TABLEAU SAS
DONNEES SUR
SUPPORT EXTERNE
LOG
DATA
L'INSTRUCTION DATA...;
- EST LA PREMIERE DE TOUTE ETAPE DATA
- ANNONCE LA CREATION D'UN TABLEAU SAS
- PERMET DE DONNER UN NOM AU(X) TABLEAU(X) SAS A CREER DANS CETTE
ETAPE.
SYNTAXE
DATA [nom de tableau SAS] [liste d'options]
[nom de tableau SAS] [liste d'options] ;
Forme simplifiée : DATA;
Le nom du tableau créé sera DATA1
DATA2
DATAn
nom attribué à chaque étape
séquentiellement.
CAS PARTICULIER : DATA _NULL_; ne créé pas de tableau SAS, cas d'impression d'états ou
sortie sur supports externes.
Christian Longhi. Cours SAS Base. UNSA_CNRS.
6
ETAPE DATA
RECHERCHE DE DONNÉES
DONNÉES
EN ENTRÉE
ÉTAPE DATA
FICHIER
EXTERNE
ENTRER
ÉDITER
TRANSFORMER
TABLEAUX
SAS
TRANSFERT ET RECODAGE
TABLEAU
SAS
A
ÉTAPE DATA
TABLEAU
SAS
DATA B; SET A;
IF AN>1970 ;
BENEF=REY-DEP;
B
CONCATENATION
TABLEAUX
SAS
C
D
ÉTAPE DATA
DATA E;
SET C D ;
TABLEAU
SAS
C
D
Christian Longhi. Cours SAS Base. UNSA_CNRS.
7
FUSION (MERGE)
TABLEAUX
SAS
F
G
ETAPE DATA
DATA
MERGE F G;
TABLEAU
SAS
F
G
MISE A JOUR (UPDATE)
TABLEAUX
SAS
M1
ETAPE DATA
TABLEAU
SAS
M2
T
DATA M2 ;
UPDATE M1 T ;
BY ID ;
EDITION D'ETATS
TABLEAU
SAS
ETAPE DATA
IMPRESSION
Instructions
PUT et FILE
FICHIER
EXTERNE
Christian Longhi. Cours SAS Base. UNSA_CNRS.
8
L'INSTRUCTION INFILE
Elle permet d'identifier à l'intérieur d'un programme SAS le fichier extérieur (les données brutes)
que l'on veut transformer en tableau SAS.
SYNTAXE :
INFILE [Spécification du fichier] [Options];
L'instruction INFILE précède toujours INPUT.
La SPECIFICATION DU FICHIER peut être
- FILEREF (définit dans une instruction FILENAME)
- 'NOM DE FICHIER'
QUELQUES OPTIONS
END = variable
EOF = label
FIRSTOBS = n
OBS = n
LRECL = longueur logique de l'enregistrement (132 par défaut)
STOPOVER
CARDS
EXEMPLE :
DATA T;
INPUT .......;
Instructions de programation SAS;
........
CARDS;
données
;
- L'INSTRUCTION 'CARDS;' DOIT ETRE LA DERNIERE INSTRUCTION NON NULLE DE
L'ETAPE DATA
- UNE SEULE INSTRUCTION 'CARDS;' PAR ETAPE DATA
- IL EST CONSEILLE DE TERMINER LES DONNEES PAR UNE INSTRUCTION NULLE (;).
Christian Longhi. Cours SAS Base. UNSA_CNRS.
9
L'INSTRUCTION INPUT
INPUT DONNE LES CONSIGNES DE LECTURE D'UN FICHIER EXTERNE; ELLE PERMET
DE DECRIRE LES VARIABLES A LIRE (NOMS, TYPES, ...). A L'EXECUTION, ELLE
ENCLENCHE UN ORDRE DE LECTURE SUR LE FICHIER CONCERNE.
IL EXISTE TROIS MODES INPUT
. MODE LISTE
. MODE COLONNE
. MODE FORMAT
CES TROIS MODES PEUVENT ETRE COMBINES DANS UNE MEME INSTRUCTION
INPUT
MODE LISTE DE INPUT
SYNTAXE
INPUT nom de la 1° variable ... nom de la nième variable;
LES NOMS DES VARIABLES CARACTERES SERONT TOUJOURS SUIVIS DU SYMBOLE
'$'
SUR LE FICHIER
. LES VALEURS DES VARIABLES SERONT SEPAREES PAR AU MOINS UN ESPACE
. ON NE PEUT PAS SAUTER DE VALEURS SUR LE FICHIER
. SI UN ENREGISTREMENT CONTIENT MOINS DE VALEURS QUE DE NOMS DE
VARIABLES CITES DANS INPUT...; SAS VA CHERCHER LES AUTRES VALEURS SUR
L'ENREGISTREMENT SUIVANT (sauf si l'option MISSOVER a été présente dans l'instruction
INFILE...;)
. SI UNE VALEUR DOIT ETRE MANQUANTE SUR LE FICHIER ELLE SERA
REPRESENTEE PAR UN POINT : '.'
Christian Longhi. Cours SAS Base. UNSA_CNRS.
10
MODE COLONNE DE INPUT
SYNTAXE
INPUT nom de variable [$] colonne début [-colonne fin] [.décimale];
EXEMPLE : Soit le contenu d'un enregistrement du fichier à lire
ANDRE.....M...12...32...141...
1
10
14
19
24
INPUT N0M $ 1-9 SEXE $ 10 AGE 14-15 POIDS 19-20 TAILLE 24-26;
ou encore
INPUT N0M $ 1-9 SEXE $ 10 POIDS 19-20 TAILLE 24-26 AGE 14-15 ;
ou encore
INPUT N0M $ 1-9 SEXE $ 10 TAILLE 24-26 .2 AGE 14-15 AD 14;
. L'ORDRE DES VARIABLES EST INDIFFERENT
. ON PEUT LIRE DES SOUS-ZONES DE ZONES DEJA LUES
. DANS LE DERNIER EXEMPLE, LA TAILLE PRENDRA LA VALEUR 1.41
CONTRAINTE : LES VALEURS DES VARIABLES DOIVENT TOUJOURS ETRE DANS LES
MEMES ZONES.
Christian Longhi. Cours SAS Base. UNSA_CNRS.
11
MODE FORMAT DE INPUT
SYNTAXE
INPUT [pointeur] nom de variable [$] format d'entrée......;
POINTEUR : SAS PERMET DE CONTROLER LA COLONNE A PARTIR DE LAQUELLE VA
SE FAIRE LA LECTURE SUR L'ENREGISTREMENT EN COURS.
PERMET DE POINTER SUR UNE COLONNE PRECISE
FORMAT : LE FORMAT PRECISE
-
LE TYPE DE VARIABLE (CARACTERE, NUMERIQUE)
-
LA LONGUEUR OCCUPEE SUR LE SUPPORT
-
LE TYPE DE REPRESENTATION UTILISEE
* DECIMALE
* ENTIER BINAIRE
* HEXADECIMALE
* VIRGULE FLOTTANTE
* FORMAT DATE
PERMET DE TOUT LIRE
INSTRUCTION LIEES AU POINTEUR
@n : va à la colonne n de la ligne courante
+m : avance de m colonnes
#1 : va à la ligne 1 de la colonne 1
@ : à la fin d'une instruction INPUT, reste sur la ligne courante pour le prochain INPUT de l'étape
DATA
@@ : à la fin d'une instruction INPUT, reste sur la ligne courante lorsque l'on revient au début de
l'étape DATA
Christian Longhi. Cours SAS Base. UNSA_CNRS.
12
EXEMPLES
ANDRE
1
M
10
12
14
32
19
141
24
On peut écrire l'enregistrement ainsi:
INPUT NOM $8. +1 SEXE $1. @14 AGE 2. @24 TAILLE 3.2
@19 POIDS 2.;
$8. - NOM : variable caractère, sur 8 colonnes à partir de la première colonne
Le pointeur se positionne en 9° colonne
+1 Le pointeur avance d'une position, se trouve donc en 10
$1. - SEXE : variable caractère sur une colonne
Après lecture, le pointeur se trouve en 11
@14 Le pointeur se positionne en 14
2. - AGE : variable numérique sur 2 colonnes
@24 Le pointeur va en colonne 24
3.2 - TAILLE : variable numérique sur 3 colonnes, avec 2 chiffres
décimaux
@19 Le pointeur revient en 19
2. - POIDS : variable numérique sur 2 colonnes
EXEMPLES
AMIENS
TOURS
LE PUY
----------
TOULOUSE
TOURS
LE PUY
---------
INPUT @10 VILLE $7.;
Donnera:
AMIENS
TOURS
LE PUY
INPUT VILLE $CHAR7.;
Donnera:
TOULOUSE
TOURS
LE PUY
EXEMPLE @: INPUT NUMERO 1-4 TYPE 5 @;
IF TYPE=1 THEN INPUT SEXE 6 AGE 10-11;
IF TYPE=2 THEN INPUT CSP 7;
EXEMPLE @@: Soient les données (1 15 2 20 2 15 1 40.....)
DATA...;
INFILE...; INPUT SEXE AGE @@;
RUN;
Christian Longhi. Cours SAS Base. UNSA_CNRS.
13
L'INSTRUCTION LABEL
LABEL Variable = 'label' ;
LE LABEL EST LIMITE A 40 CARACTERES
LES DONNEES MANQUANTES
REPRESENTATION DES DONNEES MANQUANTES EN SAS
DONNEES NUMERIQUES : . (point)
.A,...., .Z, ._
DONNEES CARACTERES : ' ' (blancs entouré de quote)
DONNEES MANQUANTES EN ENTREE
Blanc si lecture en mode colonne
.
si lecture en mode liste
Pour les données NUMERIQUES seulement:
A,....,Z, _, avec l'instruction MISSING
EXEMPLE : Si la question Q numérique admet dans un fichier les 4 données manquantes
suivantes:
R : les refus,
I : les réponses invalides,
S : les sans-objets,
N : les non-réponses,
on utilisera l'instruction MISSING R I S N ;
et donc le job: DATA; MISSING R I S N;
INPUT Q;
CARDS;
....;
On manipulera ces codes dans un programme en les faisant précéder du . : IF Q NE .R THEN DO;
DONNEES MANQUANTES EN IMPRESSION
DONNEES NUMERIQUES :
. pour une numérique ordinaire
A,...,Z pour une numérique spéciale
DONNEES CARACTERES
Blanc
!!!!!! PROPAGATION DES DONNEES MANQUANTES
Christian Longhi. Cours SAS Base. UNSA_CNRS.
14
LES LISTES DE VARIABLES
LISTE SIMPLE : on énumère les variables
VAR A B C;
LISTE A NOM INDICE : de la forme X1 X2 ...Xn
VAR X1 - Xn;
LISTE ABREGEE (Indicées ou non)
VAR X -- A ;
!!!!! : L'ordre est celui dans lequel les variables ont été définies, et non l'ordre alphabétique.
LISTE ABREGEE DE VARIABLES NUMERIQUES
VAR X _NUMERIC_ A ;
LISTE ABREGEE DE VARIABLES CARACTERES
VAR X _CHARACTER_ A ;
LISTE GLOBALES
VAR _NUMERIC_ ;
VAR _CHARACTER_ ;
VAR _ALL_ ;
INSTRUCTIONS D'ASSIGNATION
Variables = Expression ;
DATA B.FIC;
X=Y+Z;
Attention aux TYPES (Numériques ou Caractères)
des deux membres et à leur LONGUEUR.
Si la variable de gauche existe, elle garde toujours son TYPE et sa LONGUEUR.
ATTENTION A LA PROPAGATION DES DONNEES MANQUANTES :
DATA SAL ; SET B.BRUT;
SALT = SAL1 + SAL2 + SAL3 ;
SALM = SALT / 3 ;
TABLEAU B.BRUT
TABLEAU SAL
SAL1
SAL2
6100
6200
6000
6300
5000
4000
SAL1
6100
6000
5000
SAL3
6300
.
6000
SAL2
6200
6300
5500
SALT
18600
.
15000
SAL3
6200
.
5100
SALM
6200
.
1500
Christian Longhi. Cours SAS Base. UNSA_CNRS.
15
LES OPERATEURS
OPERATEURS ARITHMETIQUES
SYMBOLE
SIGNIFICATION
**
Exponentiation
*
Multiplication
/
Division
+
Addition
Soustration
><
Maximum
<>
Minimum
EXEMPLES
Y = X**2;
Y = A*B;
Y = A / B;
Y = A + B;
Y = A - B;
Y = A >< B;
Y = A <> B;
OPERATEURS DE COMPARAISON
= ou EQ
NE
> ou GT
< ou LT
>= ou GE
<= ou LE
Egal à
Différent de
Supérieur à
Inférieur à
Supérieur à ou égal à
Inférieur à ou égal à
OPERATEURS LOGIQUES
AND Et
OR Ou
NOT Non
OPERATEURS SUR VARIABLES CARACTERES
||
Concaténation
Christian Longhi. Cours SAS Base. UNSA_CNRS.
16
LES FONCTIONS
CALCULS DE STATISTIQUES EN LIGNE
Variables = Nom fonction (Liste d'arguments);
Variables = Nom fonction (OF Liste de variables);
N
Nombre d'arguments, excepté les données
NMISS
Nombre de données manquantes
SUM Somme
MEAN
Moyenne
MAX Maximum
MIN Minimum
RANGE Etendue MAX-MIN
STD Ecart-type
VAR Variance
EXEMPLES
X = SUM (2,6); Résultat: X=8;
X = MEAN (2,6);
X=4;
X = MIN (2,6);
X=2;
X = RANGE (2,6);
X=4;
X = SUM (OF V1 - V10);
!!!! SUM : somme les variables qui n'ont pas de données manquantes
SUM (OF SAL1-SAL3); => SALT : 18600 12300 15000.
L'OPTION IN =
ELLE CREE UNE VARIABLE AYANT LE NOM DONNE, QUI VAUT 1 SI L'OBSERVATION
COURANTE EST LUE DANS LE TABLEAU CONCERNE, 0 SINON.
LES VARIABLES CREEES NE SONT PAS AJOUTEES AUX TABLEAUX SAS.
IN = Nom
....
DATA FOUR;
SET ONE (IN=IN1) TWO (IN=IN2) THREE (IN=IN3);
IF X = . THEN PUT X = IN1= IN2= IN3= ;
Christian Longhi. Cours SAS Base. UNSA_CNRS.
17
L'INSTRUCTION SET
SET Tableau SAS en entrée [Options de Data Set] [Options de SET];
Une observation du tableau d'entrée est lue à chaque exécution de l'instruction SET.
S'il y a plusieurs tableaux, on lit d'abord les observations du premier tableau avant de lire le suivant.
1. CREATION D'UN NOUVEAU TABLEAU AVEC DE NOUVELLES VARIABLES
DATA AN; SET MOIS;
TOTAL = SUM (OF MOIS1-MOIS12);
Le tableau AN contient toutes les variables du tableau MOIS, plus la variable TOTAL.
2. CREATION D'UN SOUS-TABLEAU PAR ELIMINATION D'OBSERVATIONS
DATA FIC2; SET FIC1;
IF VAR = 'A';
IF ((X > 0) OR (0 <= Y <= 2000));
Dans le tableau FIC2 ne figurent que les observations du tableau FIC1 pour lesquelles les
expressions logiques sont vraies.
3. CREATION D'UN SOUS-TABLEAU PAR ELIMINATION DE VARIABLES
DATA FIC2; SET FIC1;
DROP V1-V4;
Le tableau FIC2 contient toutes les variables du tableau FIC1 excepté V1, V2, V3, V4.
4. CONCATENATION DE TABLEAUX
DATA FIC3;
SET FIC1 (IN=IN1) FIC2 (IN=IN2);
IF IN1 THEN X=1;
IF IN2 THEN X=2;
LES OPTIONS DE DATA SET
1. ATTACHER UN LABEL DE 40 CARACTERES MAXIMUM : DATA FIC (LABEL = 'label');
2. INCLURE OU EXCLURE DES VARIABLES
SET FIC (KEEP = V1-V4);
SET FIC (DROP = V1 V5-V7);
3. RENOMMER DES VARIABLES
DATA NEW (RENAME = (XOLD=XNEW)); (la variable XNEW est créée dans le tableau NEW)
SET OLD (RENAME = (X1=X1NEW)); (la variable X1 est nommée X1NEW pendant l'exécution
de l'étape DATA)
4. OPTIONS SUR LES OBSERVATIONS : SET FIC (FIRSTOBS=3 OBS=10);
5. CREER DES VARIABLES INDICATRICES : SET FIC (IN = variable);
Christian Longhi. Cours SAS Base. UNSA_CNRS.
18
INSTRUCTION MERGE
ELLE PERMET LA FUSION DE PLUSIEURS TABLEAUX.
MERGE SASdataset [(options IN=name)];
SASdataset [(options IN=name)];
data three;
merge one (in=inone) two (in=intwo);
run;
EXEMPLE :
options ls=72;
title;
data class;
input name $ 1-25 year $ 26-34 major $ 36-50;
cards;
Abbott, Jennifer
freshman
Carter, Tom
junior
Theater
Kirby, Elissa
senior
Mathematics
Tucker, Rachel
freshman
Uhl, Roland
sophomore
Wacenske, Maurice
junior
Theater
;
run;
proc print data=class;
title 'The Data Set CLASS';
run;
data timeslot;
input date date7. @10 time $ @17 room $;
format date date7.;
cards;
12sep88 10:00 103
12sep88 10:30 103
12sep88 11:00 207
13sep88 10:00 105
13sep88 10:30 105
15sep88 11:00 207
;
run;
proc print data=timeslot;
title 'Dates, Times, and Locations of Conferences';
run;
data schedule;
merge class timeslot;
run;
proc print data=schedule;
title 'Merging CLASS and TIMESLOT to Assign';
title2 'Conference Times to Students';
run;
Christian Longhi. Cours SAS Base. UNSA_CNRS.
19
Obs
1
2
3
4
5
6
name
year
Abbott, Jennifer
Carter, Tom
Kirby, Elissa
Tucker, Rachel
Uhl, Roland
Wacenske, Maurice
freshman
junior
senior
freshman
sophomore
junior
Obs
1
2
3
4
5
6
date
12SEP88
12SEP88
12SEP88
13SEP88
13SEP88
15SEP88
major
Theater
Mathematics
Theater
time
room
10:00
10:30
11:00
10:00
10:30
11:00
103
103
207
105
105
207
Merging CLASS and TIMESLOT to Assign
Conference Times to Students
Obs
1
2
3
4
5
6
name
year
Abbott, Jennifer
Carter, Tom
Kirby, Elissa
Tucker, Rachel
Uhl, Roland
Wacenske, Maurice
freshman
junior
senior
freshman
sophomore
junior
major
Theater
Mathematics
Theater
date
12SEP88
12SEP88
12SEP88
13SEP88
13SEP88
15SEP88
5
time
room
10:00
10:30
11:00
10:00
10:30
11:00
103
103
207
105
105
207
Christian Longhi. Cours SAS Base. UNSA_CNRS.
20
L'INSTRUCTION IF
1. SELECTION D'OBSERVATIONS
IF expression logique;
EXEMPLE: DATA FIC2; SET FIC1;
IF X = 2;
2. INSTRUCTION DE CONTROLE
IF expression logique THEN instruction ;
ELSE instruction;
3. S'IL Y A PLUSIEURS INSTRUCTIONS APRES THEN
IF Condition THEN DO;
Instruction 1; Instruction 2; ...
END;
EXEMPLES:
- SELECTION D'OBSERVATIONS
IF X NE 2 THEN DELETE
- RECODAGE DE VARIABLES
DATA FIC2; SET FIC1;
IF (AGE<16) OR (AGE>75) THEN AGEGR=.;
ELSE IF (AGE>=16) AND (AGE < 25) THEN
ELSE IF (AGE>=25) AND (AGE < 50) THEN
ELSE IF (AGE>=50) AND (AGE < 76) THEN
Autre programme:
DATA FIC2; SET FIC1;
AGEGR = (AGE>15) + (AGE > 24) + (50 <=
IF AGE < 16 OR AGE > 75 THEN AGEGR=. ;
AGEGR=1;
AGEGR=2;
AGEGR=3;
AGE <= 75);
Tableau FIC1
Tableau FIC2
AGE
AGE
AGEGR
73
73
3
24
24
1
51
51
3
30
30
2
(Il existe une autre solution de recodage avec PROD FORMAT)
Christian Longhi. Cours SAS Base. UNSA_CNRS.
21
INSTRUCTIONS DELETE KEEP DROP RENAME
DELETE:
PERMET D'ELIMINER CERTAINES OBSERVATIONS
PERMET D'ARRETER LE TRAITEMENT SUR L'OBSERVATION EN VOIE DE
CREATION: IL N'Y A PAS AJOUT DE L'OBSERVATION, SAS RETOURNE AU DEBUT DE
L'ETAPE DATA.
Exemple: on veut supprimer d'un tableau certaines valeurs négatives ou nulles.
DATA FIC; ....;
INPUT DEPT PROD COUT;
IF PROD <=0 OR COUT <=0 THEN DELETE;
PU = COUT/PROD;
........
EQUIVALENT AU FILTRE IF
DROP:
PERMET DE SPECIFIER LES VARIABLES A EXCLURE DANS LE TABLEAU
CREE DANS L'ETAPE DATA
DROP Variables;
KEEP: PERMET DE SPECIFIER LES VARIABLES A CONSERVER DANS LE TABLEAU
SAS CREE DANS L'ETAPE DATA
KEEP Variables;
ON NE PEUT PAS UTILISER A LA FOIS DROP ET KEEP DANS UNE MEME ETAPE.
RENAME Ancien nom = Nouveau nom;
LE NOUVEAU NOM N'EST ACTIF QUE DANS LE TABLEAU DE SORTIE; IL FAUT
UTILISER LES ANCIENS NOMS DANS L'ETAPE (SINON OPTIONS DE DATA SET).
QUAND IL Y A ENSEMBLE Ancien nom = Nouveau nom;
LE NOUVEAU NOM N'EST ACTIF QUE DANS LE TABLEAU DE SORTIE; IL FAUT
UTILISER LES ANCIENS NOMS DANS L'ETAPE (SINON OPTIONS DE DATA SET).
QUAND IL Y A ENSEMBLE DROP (OU KEEP) ET RENAME, DROP (OU KEEP) EST
EXECUTE EN PREMIER.
Christian Longhi. Cours SAS Base. UNSA_CNRS.
22
INSTRUCTIONS DE CONTROLE
INSTRUCTIONS: IF, WHERE
DO, DO WHILE, DO UNTIL, DO OVER
GO TO
RETURN, STOP
INSTRUCTION IF
IF Expression logique THEN Instruction;
[ELSE Instruction;]
FORME GENERALE
IF {expression logique} THEN DO;
Suite d'instructions...;
END;
ELSE DO;
Suite d'instructions...;
END;
Une expression logique est composée de variables, de constantes, sur lesquelles sont affectés des
opérateurs de comparaison et pouvant être reliés par des opérateurs logiques. SAS va créer (pour
lui) une variable "logique" qui prendra la valeur 1 si l'expression est vraie, 0 sinon.
INSTRUCTION WHERE
PERMET DE SELECTIONNER DES OBSERVATIONS.
DATA FIC2; SET FIC1;
WHERE X > 100;
On ne conserve dans le tableau FIC2 que les observations pour lesquelles X est supérieur à 100.
INSTRUCTION DO SIMPLE
DO;
Instructions SAS...;
END;
INSTRUCTION DO ITERATIVE
DO I = 1 TO 10;
Instructions SAS...;
END;
N = 0;
DO WHILE (N LT 5);
PUT N = ;
N+1;
END;
N = 0;
Christian Longhi. Cours SAS Base. UNSA_CNRS.
23
DO UNTIL (N >= 5);
PUT N = ;
N + 1;
END;
INSTRUCTION DO OVER
DO OVER Nom d'"ARRAY";
Instructions SAS...;
END;
INSTRUCTION GO TO
INSTRUCTION PERMETTANT DE SE BRANCHER SUR UNE AUTRE INSTRUCTION
DE LA MEME ETAPE DATA.
SYNTAXE: GO TO étiquette;
instructions....;
......
étiquette : instruction exécutable;
DO I = 1 BY 1;
PUT I = ;
IF I = 5 THEN GO TO FINI;
END;
FINI : PUT 'ON A TERMINE';
INSTRUCTION RETURN
DATA FIC; ...
INPUT X Y Z;
IF X = 0 THEN RETURN;
X = Y + Z;
A = X**2;
Les deux dernières instructions ne sont exécutées que si X est différent de 0.
INSTRUCTION STOP
DATA FIC; ...
INPUT X Y Z;
IF X = 0 THEN STOP;
X = Y + Z;
A = X**2;
L'étape DATA est arrêtée dès qu'elle rencontre une observation pour laquelle X est nul.
Christian Longhi. Cours SAS Base. UNSA_CNRS.
24
GENERALITES SUR LES PROCEDURES
LES PROCEDURES OPERENT SUR LES TABLEAUX SAS
FORME GENERALE :
PROC nom de procédure options;
instructions particulières;
................;
RUN;
- Nom de procédure: nom d'une procédure Means, Corr, Reg, Print,...
- Les options de PROC et les instructions particulières dépendent de la procédure.
- Eventuellement, des instructions propres à la procédure peuvent avoir leurs propres options:
celles-ci sont alors placées derrière un /.
Exemple: PROC REG DATA=B.FIC1 SIMPLE;
MODEL Y=X1-X3 / DW R;
RUN;
- Certaines options de PROC et certaines instructions sont communes à la quasi-totalité des
procédures.
- Option: DATA = nom;
=> définit le nom du tableau SAS en entrée
Exemple: PROC CORR DATA = B.FIC;
Si l'option DATA = nom est absente, la procédure travaille par défaut sur le dernier tableau
créé dans les étapes en amont
-
IMPORTANT: sur les gros tableaux en entrée avec beaucoup de variables, ne conserver que
quelques variables actives pour la procédure. Sélectionner ces variables au moyen de KEEP
ou DROP.
Exemple: PROC CORR DATA=B.FIC (KEEP=AGE SEX QUAL SAL70-SAL90);
Christian Longhi. Cours SAS Base. UNSA_CNRS.
25
FICHIER STRATIFIE : INSTRUCTION BY
BY liste de variables;
Exemple PROC CORR DATA = B.FIC;
BY SEX QUAL;
.....
La procédure CORR s'exécute pour toutes les modalités du croisement SEX QUAL
SEX1 QUAL1
SEX1 QUAL2
...
SEX2 QUALn
...
LE TABLEAU DOIT ETRE TRIE SUR LES VARIABLES BY (cf. PROC SORT)
Si le tableau est trié par valeurs décroissantes d'une variable, faire précéder cette variable du motclé DESCENDING
Exemple: BY DESCENDING SEX QUAL;
VARIABLES ACTIVES: INSTRUCTION VAR
VAR liste de variables;
Exemple: PROC CORR DATA=B.FIC;
VAR SAL70-SAL90;
RUN;
=> Les corrélations seront calculées pour les variables SAL70, SAL71,....,SAL90.
Si l'instruction VAR est absente, SAS prend par défaut, dans la presque totalité des procédures,
toutes les variables numériques dans les autres instructions.
ECRIRE LES OPTIONS ESSENTIELLES,
MEME SI CE SONT DES OPTIONS PAR DEFAUT.
Christian Longhi. Cours SAS Base. UNSA_CNRS.
26
PROCEDURE PRINT
PROC PRINT (DATA = tableau SAS) (options);
TITLE 'Titre';
TITLE2 'Sous-titre';
LES TITRES ONT AU PLUS 132 CARACTERES
OPTIONS :
- POUR LES GROS TABLEAUX, UTILISER L'OPTION OBS = n : seules les n premières
observations sont imprimées dans l'output.
PROC PRINT DATA = FIC (OBS = 10);
- OPTION N : si cette option est précisée, on obtient le nombre d'observations du tableau à la fin de
l'impression, ou celui de chaque sous-population si on utilise l'instruction BY.
INSTRUCTIONS DE PROCEDURE :
VAR liste de variables;
Précise les variables que l'on veut lister, et dans quel ordre.
Par défaut, toutes les variables sont imprimées dans leur ordre de création.
ID variables;
Précise les variables qui remplaceront le numéro de l'observation à l'impression.
BY liste de variable;
Pour obtenir l'impression du tableau par sous-populations
Les sous-populations sont séparées par une ligne, avec rappel des modalités des variables -by-.
PAGEBY variables;
Nom de variables précisées dans BY (ce qui implique l'instruction BY). Permet de passer endébut
de page à chaque changement de modalité.
Christian Longhi. Cours SAS Base. UNSA_CNRS.
27
SUM variables;
Précise les variables dont on veut obtenir les sommes; elles sont différentes de celles mentionnées
dans ID ou BY.
SUMBY variables;
Nom de variables mentionés dans BY; permet d'obtenir des totalisations par sous-populations.
EXEMPLE
PROC PRINT DATA = B.TAB;
BY REGION;
ID SECTEUR;
VAR VAB90 INV90;
TITLE 'IMPRESSION PAR REGION';
RUN;
Christian Longhi. Cours SAS Base. UNSA_CNRS.
28
PROCEDURE DATASETS
Elle contient des utilitaires de gestion des membres d'une LIBRAIRIE SAS.
Elle permet de :
- lister, renommer, détruire des membres;
- donner des informations concernant les tableaux SAS;
- copier et concaténer des tableaux SAS.
Une LIBRAIRIE SAS est l'ensemble des fichiers manipulés par SAS et qui sont contenus dans un
même sous-répertoire.
Ils sont appelés des MEMBRES.
Ce peuvent être :
- des tableaux SAS (extention .SSD)
- des formats, dans le fichier FORMAT.SCT.
PROC DATASETS LIBRARY = libref;
MEMTYPE = [ALL / DATA / FORMAT ];
INSTRUCTIONS DE DATASETS
1. Pour décrire le contenu de tableaux SAS
CONTENTS DATA = _ALL_ / tableau [POSITION];
Exemple PROC DATASETS LIBRARY = B;
CONTENTS DATA = B.EAE POSITION;
RUN;
2. Pour concaténer deux tableaux SAS
APPEND BASE = Tableau1 NEW = Tableau2;
On ajoute à la fin du Tableau1 les observations contenues dans le Tableau2.
3. Pour renommer un membre
CHANGE ancien nom = nouveau nom;
4. Pour détruire des membres
DELETE membre;
Christian Longhi. Cours SAS Base. UNSA_CNRS.
29
PROCEDURE SORT
OBJET: Trier les observations d'un tableau SAS selon les valeurs d'une ou plusieurs variables, ce
qui permettra par exemple de:
- interclasser...
- traiter les données en sous-population
SYNTAXE: PROC SORT options;
BY liste de variables critères de tri;
RUN;
OPTIONS DE PROC SORT:
DATA = nom du tableau à trier,
par défaut le dernier tableau crée.
OUT = nom de tableau trié
par défaut le même nom que le tableau d'entrée.
TRI PAR ORDRE DECROISSANT: faire précéder chaque variable concernée du mot clé
DESCENDING.
PROC SORT DATA=Tableau en entrée OUT=Tableau trié;
BY (DESCENDING) Variables;
EXEMPLES
PROC SORT;
Tri du dernier tableau créé
BY NOM SEXE; Le tableau trié stocké avec le même nom
PROC SORT DATA=FIC OUT = TRI; On conserve la version non
triée. La version triéé s'appelle
BY NOM SEXE;
TRI
PROC SORT OUT = TRI;
Pour chaque nom apparaissent
BY NOM DESCENDING SEXE; d'abord les SEXE='M', puis 'F'.
Christian Longhi. Cours SAS Base. UNSA_CNRS.
30
PROCEDURE MEANS
Elle calcule des statistiques univariées usuelles de variables numériques. 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 varaibles...;
RUN;
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.
INSTRUCTION BY
Elle permet de sortir les statistiques demandées pour chaque modalité de la variable-by. Le tableau
doit avoir été 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 variablefreq.
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).
Christian Longhi. Cours SAS Base. UNSA_CNRS.
31
PROCEDURES MEANS, UNIVARIATE, SUMMARY
PROC MEANS;
BY...;
FREQ..;
ID...;
WEIGHT...;
OUTPUT...;
PROC UNIVARIATE;
BY...;
FREQ...;
ID...;
WEIGHT...;
VAR...;
OUTPUT...;
PROC SUMMARY;
BY...;
CLASS...;
FREQ...;
VAR...;
OUTPUT...;
La procédure UNIVARIATE est la plus complète, notamment en raison de :
détails sur les extrèmes, quantiles P1, P5, P10, P90, P95, P99, quartiles , médiane, graphiques,
tableaux de fréquence par variables...
C'est aussi la plus coûteuse en temps calcul et interprétation.
La procédure MEANS est moins coûteuse, et permet d'avoir, par variable active:
N, NMISS, MEAN, STD, VAR, MIN, MAX, RANGE,
SUM, USS, CSS, CV, STDERR, T, PRT, SUMWGT
Pour avoir plus (quartiles...), utiliser UNIVARIATE.
SUMMARY n'imprime rien, mais récupère à la demande dans des tableaux SAS:
N, NMISS, MEAN, STD, VAR, MIN, MAX, RANGE,
SUM, USS, CSS, CV, STDERR, T, PRT, SUMWGT
Ces statistiques sont calculées pour toutes les modalités, simples et croisées, des variables
spécifiées dans l'instruction CLASS...;
LE TABLEAU D'ENTREE N'A PAS BESOIN D'ETRE TRIE SUR LES VARIABLES CLASS.
POUR LES GROS FICHIERS, UTILISER DE PREFERENCE
PROC SUMMARY...;
CLASS...;
SUIVI DE
PROC PRINT;
EXEMPLE: PROC SUMMARY DATA = B.REGION;
CLASS REGION;
VAR X Y Z;
OUTPUT OUT=OUT
MEAN= MR STD= SR;
RUN;
PROC PRINT;
RUN;
Christian Longhi. Cours SAS Base. UNSA_CNRS.
32
PROCEDURE UNIVARIATE EXEMPLES
PROGRAM
OPTIONS LS=75 NODATE;
DATA STATEPOP;
INPUT STATE $ POP @@;
LABEL POP ='1970 CENSUS POPULATION IN MILLIONS';
CARDS;
ALA 3.44 ALASKA 0.30 ARIZ 1.77 ARK 1.92
CALIF 19.95 COLO 2.21 CONN 3.03 EL
0.55
FLA 6.79
GA 4.59 HAW 0.77 IDAHO 0.71 ILL 11.01 IND 5.19 IOWA 2.83
KAN 2.25 KY 3.22
LA 3.64
ME 0.99
MD 3.92
MASS 5.69 MICH 8.88
MINN 3.81
MISS 2.22 MO 4.68 MONT 0.69 NEB 1.48
NEV 0.49 NH 0.74 NJ 7.17 NM 1.02
NY 18.24 NC 5.08 ND 0.62 OHIO 10.65 OKLA 2.56 ORE 2.09 PA 11.79 RI 0.95 SC
2.59 SD 0.67 TENN 3.92 TEXAS 11.2 UTAH 1.06 VT 0.44 A 4.65
WASH 3.41 W.VA
1.74 WIS 4.42
WYO 0.33
PROC UNIVARIATE FREQ PLOT NORMAL;
VAR POP; ID STATE;
OUTPUT
UNIVARIATE PROCEDURE
Variable=POP
1970 CENSUS POPULATION IN MILLIONS
Moments
N
Mean
Std Dev
Skewness
USS
CV
T:Mean=0
Sgn Rank
Num ^= 0
W:Normal
50
4.0472
4.329319
2.055218
1737.398
106.9707
6.610284
637.5
50
0.763119
Sum Wgts
Sum
Variance
Kurtosis
CSS
Std Mean
Prob>|T|
Prob>|S|
Prob<W
50
202.36
18.743
4.545617
918.407
0.612258
0.0001
0.0001
0.0001
UNIVARIATE PROCEDURE
Quantiles(Def=5)
100%
75%
50%
25%
0%
Range
Q3-Q1
Mode
Max
Q3
Med
Q1
Min
19.95
4.68
2.71
0.99
0.3
19.65
3.69
3.92
99%
95%
90%
10%
5%
1%
19.95
11.79
10.83
0.585
0.44
0.3
Christian Longhi. Cours SAS Base. UNSA_CNRS.
33
Extremes
Lowest
ID
0.3(ALASKA
0.33(WYO
0.44(VT
0.49(NEV
0.55(DEL
Stem
2
1
1
0
0
)
)
)
)
)
Highest
ID
11.01(ILL
)
1.2(TEXAS
)
11.79(PA
)
18.24(NY
)
19.95(CALIF
)
Leaf
0
8
1112
555556779
00001111111111112222222333333344444
----+----+----+----+----+----+----+
Multiply Stem.Leaf by 10**+1
22.5+
|
12.5+
|
2.5+
#
1
1
4
9
35
Boxplot
*
*
0
+-----+
*--+--*
Normal Probability Plot
*
*
**+**+++++++++
++++*****++
*
* ** *********************
+----+----+----+----+----+----+----+----+----+----+
-2
-1
0
+1
+2
Christian Longhi. Cours SAS Base. UNSA_CNRS.
34
PROCEDURE FREQ
ELLE PERMET DE PRODUIRE DES TABLEAUX DE FREQUENCE A UNE OU PLUSIEURS
DIMENSIONS (POUR LES VARIABLES NUMERIQUES, ON AURA INTERET A 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;
OPTIONS DE PROC FREQ
-
DATA = Nom du tableau en entrée.
- ORDER = Précise l'ordre dans lequel apparaissent les niveaux d'une variable.
ORDER = FREQ : dans l'ordre décroissant des fréquences
ORDER = DATA : dans l'ordre où elles apparaissent pour la première fois dans les données
ORDER = INTERNAL : dans l'ordre croissant de leur représentation interne (par défaut)
ORDER = FORMATTED : dans l'ordre croissant de leur format externe
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 ...
Christian Longhi. Cours SAS Base. UNSA_CNRS.
35
Options de l'instruction TABLES
MISSING : pour inclure les valeurs manquantes dans les calculs
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
INSTRUCTION WEIGHT
Elle permet d'obtenir des tris à plats ou croisés avec une variable de pondération; soit un tableau
avec les variables SEX, QUAL, HRSTRAV :
PROC FREQ; TABLES SEX*QUAL;
WEIGHT HRSTRAV;
donne le tableau croisant SEX et QUAL selon le nombre d'heures de travail.
INSTRUCTION FORMAT
PROC FREQ groupe les variables selon leurs valeurs formatées.
Par exemple, si X a les valeurs 1.3, 1.7 et 2.0, chacune de ces valeurs constitue une modalité.
Préciser FORMAT X 1.; engendrera seulement deux modilités : 1 et 2.
Christian Longhi. Cours SAS Base. UNSA_CNRS.
36
PROCEDURE CORR
The CORR procedure is a statistical procedure for numeric random variables that computes Pearson
correlation coefficients, three nonparametric measures of association, and the probabilities
associated with these statistics. The correlation statistics include
•
•
•
•
•
Pearson product-moment and weighted product-moment correlation
Spearman rank-order correlation
Kendall's tau-b
Hoeffding's measure of dependence, D
Pearson, Spearman, and Kendall partial correlation.
The default correlation analysis includes descriptive statistics, Pearson correlation statistics, and
probabilities for each analysis variable. You can save the correlation statistics in a SAS data set for
use with other statistical and reporting procedures.
Syntax.
PROC CORR <option(s)>;
BY
<DESCENDING>
<NOTSORTED>;
variable-1<...<DESCENDING>
variable-n>
FREQ frequency-variable;
PARTIAL variable(s);
VAR variable(s);
WEIGHT weight-variable;
WITH variable(s);
To do this
Use
statement
Produce separate correlation analyses for each BY group
BY
Identify a variable whose values represent the frequency of each observation
FREQ
Identify controlling variables to compute Pearson, Spearman, or Kendall partial correlation
coefficients
PARTIAL
Identify variables to correlate and their order in the correlation matrix
VAR
Identify a variable whose values weight each observation to compute Pearson weight productmoment correlation
WEIGHT
Compute correlations for specific combinations of variables
WITH
this
Christian Longhi. Cours SAS Base. UNSA_CNRS.
37
The following program produces the simplest form of PROC CORR output. Pearson correlation
statistics are computed for all numeric variables from a study investigating the effect of exercise on
physical fitness.
options pagesize=60;
proc corr data=fitness;
run;
Simple Correlation Analysis for a Fitness Study Using PROC CORR
The SAS System
1
The CORR Procedure
4
Variables:
Age
Weight
Runtime
Oxygen
Simple Statistics
Variable
Age
Weight
Runtime
Oxygen
N
Mean
Std Dev
Sum
Minimum
Maximum
30
30
29
29
47.56667
77.70500
10.61448
47.06445
5.26330
8.34152
1.41655
5.32129
1427
2331
307.82000
1365
38.00000
59.08000
8.17000
37.38800
57.00000
91.63000
14.03000
60.05500
Pearson Correlation Coefficients
Prob > |r| under H0: Rho=0
Number of Observations
Age
Age
Weight
Runtime
Oxygen
1.00000
-0.21777
0.2477
30
0.19528
0.3100
29
-0.32899
0.0814
29
-0.21777
0.2477
30
1.00000
0.15155
0.4326
29
-0.19900
0.3007
29
0.19528
0.3100
29
0.15155
0.4326
29
1.00000
-0.78346
<.0001
28
-0.32899
0.0814
29
-0.19900
0.3007
29
-0.78346
<.0001
28
30
Weight
Runtime
Oxygen
30
29
1.00000
29
Christian Longhi. Cours SAS Base. UNSA_CNRS.
38
PROCEDURE PLOT
ELLE DONNE DES GRAPHIQUES : Y FONCTION DE X, Y FONCTION DE X ET Z.
Les coordonnées de chaque point correspondent aux valeurs des variables pour chaque observation;
on peut identifier (avec des limites), les points figurant sur les graphiques.
PROC PLOT DATA = Tableau SAS Options;
PLOT demande / options;
BY variables;
RUN;
QUELQUES OPTIONS DE LA PROCEDURE
- DATA= nom du tableau de données.
- UNIFORM : pour conserver une échelle identique si on utilise un BY, les graphiques par strates
sont donc directement comparables.
- NOLEGEND : pour supprimer la légende en tête de graphique
- VPERCENT = Valeur
- HPERCENT = Valeur : pour éditer plusieurs graphiques par page
L'INSTRUCTION PLOT
-
Un graphique se demande par
variable verticale * variable horizontale
Exemple:
PLOT Y*X; : Y définit l'axe vertical et X l'axe horizontal
Christian Longhi. Cours SAS Base. UNSA_CNRS.
39
-
Plusieurs graphiques peuvent être demandés dans le même instruction PLOT
Exemple:
PLOT Y*X Y*Z S*T;
Il y aura un graphique par page, sauf option particulière (OVERLAY).
L'écriture peut être simplifiée:
(X Y) * (A B) équivaut à Y*A Y*B X*A X*B
Par défaut, un point isolé est représenté par un A, deux points superposés par un B....
On peut imposer un autre caractère par : var1 * var2 = 'caractère'.
Les points sont représentés par le caractère donné: X*Y='*' ou X*Y='1'
- On peut également utiliser une variable pour identifier les points: var1 * var2 = variable
X*Y=REGION, X*Y=Z; les points sont représentés par le premier caractère de la variable de
droite.
OPTIONS DE L'INSTRUCITON PLOT
- OVERLAY : Les graphiques de l'instruction sont superposés
PLOT X*Y A*B/OVERLAY;
- VAXIS = liste de valeurs: Contrôle l'impression de l'échelle
PLOT Y*X='*'/ VAXIS=0 TO 20 BY 2;
PLOT Y*X='*'/ VAXIS= 10 20 30 40;
On peut ainsi faire un échelle logarithmique.
- HAXIS = liste de valeurs
- CONTOUR = n : Permet de faire des graphiques avec n niveaux d'intensité.
PLOT A*B = X / CONTOUR =n;
A sera en ordonnée
B en abscisse
X est une variable numérique que SAS découpe en n tranches. Selon la tranche de X pour un couple
de valeurs (A,B), le point sera imprimé de façon plus ou moins sombre. C'est une façon de faire des
graphiques en trois dimensions.
- .....
Christian Longhi. Cours SAS Base. UNSA_CNRS.
40
EXEMPLES
DATA GENERATE;
DO X=1 TO 10 BY .5;
Y=SIN(X) + SIN(2*X)/(X+1);
Z=CEIL(UNIFORM(13131)*3);
A=2*MOD(X,Y);
B=3*(1-MOD(Y,X));
OUTPUT;
END;
PROC PLOT
PLOT Y
PLOT Y
PLOT Y
PLOT Y
PLOT Y
PLOT Y
RUN;
HPERCENT=50 VPERCENT=33;
* X;
* X / HAXIS = 0 TO 12 BY 2;
* X = '+' / HAXIS = 0 TO 12 BY 2;
* X = Z / HAXIS = 0 TO 12 BY 2 BOX;
* X = Z / HAXIS = 0 TO 12 BY 2 HREF = 4 8;
* X = Z A * B / OVERLAY;
Plot of Y*X.
Legend: A = 1 obs, B = 2 obs, etc.
Y |
2 +
|
|
A
1 +
A
A A
|
A
A
A
|
A
A
A
0 +
A
A
|
A
A
A
|
A
-1 +
A A A
---+---------+---------+---------+---------+-0.0
2.5
5.0
7.5
10.0
Plot of Y*X.
Legend: A = 1 obs, B = 2 obs, etc.
Y |
2 +
|
|
A
1 +
A
A A
|
A
A
A
|
A
A
A
0 +
A
A
|
A
A
A
|
A
-1 +
A A A
---+-------+-------+-------+-------+-------+-------+-0
2
4
6
8
10
12
X
Plot of Y*X.
Symbol used is '+'.
Y |
2 +
|
|
+
1 +
+
+ +
|
+
+
+
|
+
+
+
0 +
+
+
|
+
+
+
|
+
-1 +
+ + +
---+-------+-------+-------+-------+-------+-------+-0
2
4
6
8
10
12
X
Plot of Y*X.
Symbol is value of Z.
Y |
|
|
2 +
|
|
|
|
|
|
3
|
|
1 +
1
|
1 3
|
1
|
3
| 2
|
1
|
3
|
2
0 +
2
|
|
2
|
2 |
2
|
3
|
3
|
-1 +
| 2 3 1
|
---+-------+-------+-------+-------+-------+-------+-0
2
4
6
8
10
12
X
X
Plot of Y*X.
Symbol is value of Z.
Y ---+-------+-------+-------+-------+-------+-------+--2 +
+
|
|
|
3
|
1 +
1
1 3
+
|
1
3
2
|
|
1
3
2
|
0 +
2
2
+
|
2
2
3
|
|
3
|
-1 +
2 3 1
+
---+-------+-------+-------+-------+-------+-------+--0
2
4
6
8
10
12
X
Plot of Y*X. Symbol is value of Z.
Plot of A*B. Legend: A = 1 obs, B = 2 obs, etc.
Y
2 +
A
|
A
A A
|
3
1 +
A
1
1 3
|
AA
1A
A A
A
3
2
|
A
B 1
A
3
2
0 +
A
A2AA
2
|
2
2
3
|
3
-1 +
2 3 1
---+-------+-------+-------+-------+-------+-------+--2
0
2
4
6
8
10
X
Christian Longhi. Cours SAS Base. UNSA_CNRS.
41
DATA HTWT;
INPUT HEIGHT WEIGHT @@;
CARDS;
69.0 112.5 56.5 84.0 65.3 98.0 62.8 102.5 63.5 102.5 57.3 83.0 59.8 84.5 62.5
112.5 62.5 84.0 59.0 99.5 51.3 50.5 64.3 90.0 56.3 77.0 66.5 112.0 72.0 150.0
64.8 128.0 67.0 133.0 57.5 85.0 66.5 112.0
;
PROC REG;
MODEL HEIGHT=WEIGHT;
OUTPUT OUT=BOTH P=PREDHT;
RUN;
PROC PLOT DATA=BOTH;
PLOT HEIGHT*WEIGHT PREDHT*WEIGHT='*' / OVERLAY;
TITLE 'PREDICTED VS. ACTUAL';
RUN;
Model: MODEL1
Dependent Variable: HEIGHT
Analysis of Variance
Source
DF
Sum of
Squares
Mean
Square
Model
Error
C Total
1
17
18
364.57626
108.58795
473.16421
364.57626
6.38753
Root MSE
Dep Mean
C.V.
2.52736
62.33684
4.05435
R-square
Adj R-sq
F Value
Prob>F
57.076
0.0001
0.7705
0.7570
Parameter Estimates
Variable
DF
Parameter
Estimate
Standard
Error
T for H0:
Parameter=0
Prob > |T|
INTERCEP
WEIGHT
1
1
42.570142
0.197615
2.67988870
0.02615725
15.885
7.555
0.0001
0.0001
PREDICTED VS. ACTUAL
HEIGHT |
Plot of HEIGHT*WEIGHT. Legend: A = 1 obs, B = 2 obs, etc.
|
Plot of PREDHT*WEIGHT. Symbol used is '*'.
72.5 +
|
A
|
|
|
70.0 +
|
|
A
*
|
|
*
67.5 +
|
A
|
B
|
|
A
65.0 +
*
A
|
A
*
|
|
A
|
A
62.5 +
A
A
|
**
|
|
|
*
60.0 +
A
|
**
|
**
A
|
|
*
57.5 +
A A
|
|
A
A
|
-+----------+----------+----------+----------+----------+----------+----------+----------+----------+----------+50
60
70
80
90
100
110
120
130
140
150
WEIGHT
NOTE: 6 obs hidden.
Christian Longhi. Cours SAS Base. UNSA_CNRS.
42
DATA CONTOURS;
FORMAT Z 5.1;
DO X=0 TO 400 BY 5;
DO Y=0 TO 350 BY 10;
Z=46.2+.09*X-.0005*X**2+.1*Y-.0005*Y**2+.0004*X*Y;
OUTPUT;
END;
END;
PROC PLOT;
PLOT Y*X=Z / CONTOUR=10;
TITLE 'CONTOUR PLOT OF X VS. Y';
TITLE2 'CONTOURS ARE Z';
RUN;
TITLE;
CONTOUR PLOT OF X VS. Y
CONTOURS ARE Z
Contour plot of Y*X.
Y |
|
+ ======++++++OOOOOOOOXXXXXXXXXXXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXOOOOOOOO
+ ====++++++OOOOOOOXXXXXXXXXXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXOOOOOOO
+ =++++++OOOOOOOXXXXXXXXXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXOOOOO
+ +++++OOOOOOOXXXXXXXXWWWWWWWWWWWWWW********************WWWWWWWWWWWWWWXXXXXXXXXOOOO
+ +++OOOOOOXXXXXXXXWWWWWWWWWWWW*****************************WWWWWWWWWWWXXXXXXXXOOOO
+ +OOOOOOXXXXXXXXWWWWWWWWWW***********************************WWWWWWWWWWXXXXXXXXOOO
+ OOOOOXXXXXXXWWWWWWWWWW****************************************WWWWWWWWWXXXXXXXOOO
+ OOOXXXXXXXWWWWWWWWW********************####********************WWWWWWWWWXXXXXXXOO
+ OXXXXXXXWWWWWWWWW**************##################***************WWWWWWWWXXXXXXXOO
+ XXXXXXWWWWWWWW*************#########################************WWWWWWWWXXXXXXXOO
+ XXXXWWWWWWWW************#############################************WWWWWWWWXXXXXXOO
+ XXXWWWWWWW***********#################################***********WWWWWWWWXXXXXXOO
+ XWWWWWWWW**********####################################**********WWWWWWWXXXXXXXOO
+ WWWWWWW**********######################################**********WWWWWWWXXXXXXOOO
+ WWWWWW*********########################################**********WWWWWWWXXXXXXOOO
+ WWWWW*********#########################################*********WWWWWWWXXXXXXOOOO
+ WWW**********##########################################*********WWWWWWWXXXXXXOOOO
+ WW*********###########################################*********WWWWWWWXXXXXXOOOOO
+ W*********############################################*********WWWWWWWXXXXXXOOOOO
+ W*********###########################################*********WWWWWWWXXXXXXOOOOO+
+ *********###########################################*********WWWWWWWXXXXXXOOOOO++
+ ********###########################################*********WWWWWWWXXXXXXOOOOO+++
+ ********##########################################*********WWWWWWWXXXXXXOOOOO++++
+ ********########################################**********WWWWWWWXXXXXXOOOOO+++++
+ ********#######################################**********WWWWWWWXXXXXXOOOOO+++++=
+ ********#####################################**********WWWWWWWXXXXXXOOOOOO+++++==
+ ********###################################**********WWWWWWWWXXXXXXOOOOO+++++====
+ *********################################***********WWWWWWWXXXXXXXOOOOO+++++====+ **********############################************WWWWWWWWXXXXXXOOOOOO+++++====-+ ************######################**************WWWWWWWWXXXXXXXOOOOO+++++=====--+ ***************###############***************WWWWWWWWWXXXXXXXOOOOOO+++++====----'
+ W******************************************WWWWWWWWWXXXXXXXOOOOOO+++++=====----''
+ WW**************************************WWWWWWWWWWXXXXXXXOOOOOO+++++=====----''''
+ WWWW********************************WWWWWWWWWWWXXXXXXXXOOOOOO++++++====-----''''.
+ WWWWWW**************************WWWWWWWWWWWWWXXXXXXXXOOOOOO++++++=====----''''...
+ WWWWWWWWWW*****************WWWWWWWWWWWWWWWXXXXXXXXOOOOOOO++++++=====----'''''....
|
---+---------+---------+---------+---------+---------+---------+---------+---------+-0
50
100
150
200
250
300
350
400
350
340
330
320
310
300
290
280
270
260
250
240
230
220
210
200
190
180
170
160
150
140
130
120
110
100
90
80
70
60
50
40
30
20
10
0
X
Symbol
.....
'''''
Z
2.2 - 8.1
8.1 - 14.0
Symbol
----=====
Z
14.0 - 19.9
19.9 - 25.8
Symbol
+++++
OOOOO
Z
25.8 - 31.7
31.7 - 37.6
Symbol
XXXXX
WWWWW
Z
37.6 - 43.5
43.5 - 49.4
Symbol
*****
#####
Z
49.4 - 55.4
55.4 - 61.3
Christian Longhi. Cours SAS Base. UNSA_CNRS.
43
PROCEDURE CHART
OUTIL DE STATISTIQUE DESCRIPTIVE PERMETTANT DE VISUALISER LES
VARIABLES ETUDIEES PAR DES GRAPHIQUES: HISTOGRAMMES A BARRES
VERTICALE (VBAR), HORIZONTALES (HBAR), GRAPHIQUES CIRCULAIRES, EN
CAMEMBERT (PIE), EN ETOILE (STAR), EN BLOCS (BLOCK).
PROC CHART DATA = nom;
BY variables de stratification;
FORMAT variable format variable format...;
HBAR variables / options;
VBAR variables / options;
PIE variables / options;
STAR variables / options;
BLOCK variables / options;
DATA = nom peut être omis s'il s'agit du dernier tableau créé.
HBAR, ..., BLOCK commandent les graphiques et peuvent être emplyés en nombre quelconque.
FORMAT précise les formats à utiliser dans les impressions; ce sont des formats SAS ou bien des
formats créés par une PROC FORMAT. On peut indiquer plusieurs variables pour HBAR, ...,
BLOCK. Pour chacune des variables ainsi mentionnées, SAS établit le nombre de tranches,
branches, ou blocs à construire. Il y en a autant que de modalités, et pour les variables numériques,
SAS opère un découpage en tranches. Cependant, les options permettent d'en contrôler le nombre,
le champ, la dimension. BY permet d'obtenir des analyses séparées par groupes d'observations des
variables BY.
OPTIONS COMMUNES AUX INSTRUCTIONS HBAR, VBAR, PIE, STAR, BLOCK
MISSING : Les données manquantes entrent dans l'histogramme, sinon elles sont ignorées.
DISCRETE : Précise que la variable numérique indiquée est discrète, et que chaque valeur
est une modalité, sinon SAS découpe en tranches.
Christian Longhi. Cours SAS Base. UNSA_CNRS.
44
FREQ = variable : Nomme une variable dans le tableau permettant de pondérer les
observations.
SUMVAR = variable :Précise une variable du tableau d'entrée dont on veut le résumé
numérique, qui servira à déterminer la taille des barres, blocs, tranches... Le type de résumé est
précisé par l'option TYPE.
Exemple: VBAR DEPT/SUMVAR=SALAIRE;
On a une barre par département, la hauteur de chaque barre est fonction du total des salaires par
département; s'il n'y avait pas eu SUMVAR= , la taille de la barre serait fonction de la fréquence
dans le tableau de la modalité de DEPT associéée.
TYPE = : Permet de spécifier ce que les unités d'histogramme représentent.
TYPE = FREQ : Fréquence d'une modalité, valeur ou intervalle; valeur par défaut.
TYPE = CFREQ : Fréquence cumulée
TYPE = PERCENT ou PCT : Pourcentage
TYPE = CPERCENT ou CPCT : Pourcentage cumulé
TYPE = SUM : Somme de la variable précisée dans SUMVAR; type par défaut de
SUMVAR
TYPE = MEAN : Moyenne de la variable précisée dans SUMVAR
MIDPOINTS = Liste de valeurs : chaque barre ou tranche représente une "plage" dont le
milieu est précisé dans MIDPOINTS; on peut ainsi imposer un découpage à SAS, se programmer
en échelle logarithmique....
Exemples: VBAR X / MIDPOINTS = 10 20 30 40 ;
VBAR X / MIDPOINTS = 10 TO 100 BY 5;
VBAR X / MIDPOINTS = 'JAN' 'FEV' 'MAR' ;
AXIS = max
AXIS = min max : Spécifie les valeurs minimum et maximum à prendre en compte dans la
construction des barres de type FREQ, CFREQ,.... Important si des valeurs sont négatives, la valeur
minimum par défaut est 0.
Exemple : STAR A / SUMVAR = X AXIS = 100 200;
-
LEVELS = n : Pour les variables numériques, impose le nombre de tranches à effectuer,
c'est à dire le nombre de barres, blocs...
OPTIONS PARTICULIERES A INSTRUCTIONS HBAR, VBAR, BLOCK
- GROUP = variable : Produit dansle graphique des histogrammes pour chaque modalité de la
variable GROUP, y compris pour les valeurs manquantes.
- SUBGROUP = variable : La contribution de chaque modalité de la variable SUBGROUP est
représentée dans les barres ou blocs d'histogrammes.
Christian Longhi. Cours SAS Base. UNSA_CNRS.
45
EXEMPLES
N.B. Les étapes DATA ne sont pas explicitées.
Variables: city, revenue, dept, data, week....
proc chart;
vbar dept / subgroup=city sumvar=revenue discrete; run;
proc chart;
hbar dept / subgroup=city sumvar=revenue discrete; run;
proc chart;
hbar dept / group=city sumvar=revenue discrete; run;
proc chart;
block dept / group=city sumvar=revenue discrete; run;
proc chart;
pie city / sumvar=revenue discrete; run;
proc chart;
pie city / type=mean sumvar=revenue discrete; run;
vbar dept / subgroup=city sumvar=revenue discrete;
(vertical bar chart of revenue sums by dept and city)
January 1987 Revenue Report
SUM OF REVENUE BY DEPT
REVENUE SUM
|
|
RRRRR
$70,000 +
RRRRR
RRRRR
|
RRRRR
RRRRR
RRRRR
|
RRRRR
RRRRR
RRRRR
|
RRRRR
RRRRR
RRRRR
|
RRRRR
RRRRR
RRRRR
$60,000 +
RRRRR
RRRRR
RRRRR
|
RRRRR
RRRRR
RRRRR
|
RRRRR
RRRRR
RRRRR
|
RRRRR
RRRRR
RRRRR
|
NNNNN
RRRRR
RRRRR
$50,000 +
NNNNN
NNNNN
RRRRR
|
NNNNN
NNNNN
NNNNN
|
NNNNN
NNNNN
NNNNN
|
NNNNN
NNNNN
NNNNN
|
NNNNN
NNNNN
NNNNN
$40,000 +
NNNNN
NNNNN
NNNNN
|
NNNNN
NNNNN
NNNNN
|
NNNNN
NNNNN
NNNNN
|
NNNNN
NNNNN
NNNNN
|
LLLLL
LLLLL
NNNNN
$30,000 +
LLLLL
LLLLL
NNNNN
|
LLLLL
LLLLL
LLLLL
|
LLLLL
LLLLL
LLLLL
|
LLLLL
LLLLL
LLLLL
|
LLLLL
LLLLL
LLLLL
$20,000 +
LLLLL
LLLLL
LLLLL
|
LLLLL
LLLLL
LLLLL
|
LLLLL
CCCCC
LLLLL
|
CCCCC
CCCCC
LLLLL
|
CCCCC
CCCCC
CCCCC
$10,000 +
CCCCC
CCCCC
CCCCC
|
CCCCC
CCCCC
CCCCC
|
CCCCC
CCCCC
CCCCC
|
CCCCC
CCCCC
CCCCC
|
CCCCC
CCCCC
CCCCC
-------------------------------------------100
115
314
DEPT
SYMBOL CITY
C
Chicago, IL
N
New York, NY
SYMBOL CITY
L
Los Angeles, CA
R
Raleigh, NC
Christian Longhi. Cours SAS Base. UNSA_CNRS.
46
vbar dept / subgroup=city sumvar=revenue discrete;
(vertical bar chart of revenue sums by dept and city)
January 1987 Revenue Report
SUM OF REVENUE BY DEPT
DEPT
100
115
314
FREQ
|
|CCCCCCCLLLLLLLLLNNNNNNNNNNRRRRRRRRRR
88
|
|CCCCCCCCLLLLLLLLNNNNNNNNNRRRRRRRRRR
88
|
|CCCCCCLLLLLLLLNNNNNNNNNNRRRRRRRRRR
88
----------+---------+---------+------$20,000
$40,000
$60,000
REVENUE SUM
SYMBOL CITY
C
Chicago, IL
N
New York, NY
REVENUE
SUM
$73,970
$69,990
$69,177
SYMBOL CITY
L
Los Angeles, CA
R
Raleigh, NC
hbar dept / group=city sumvar=revenue discrete;
(horizontal bar chart of revenue sums by dept and city)
January 1987 Revenue Report
SUM OF REVENUE BY DEPT GROUPED BY CITY
CITY
DEPT
Chicago, IL
100
115
314
Los Angeles, CA
100
115
314
New York, NY
100
115
314
Raleigh, NC
100
115
314
FREQ
|
|*******************
22
|*********************
22
|*****************
22
|
|************************
22
|*********************
22
|*********************
22
|
|***************************
22
|***********************
22
|***************************
22
|
|**************************** 22
|***************************
22
|***************************
22
|
------------+-----------+---$9,000
$18,000
REVENUE
SUM
$14,318
$15,900
$12,491
$18,332
$16,111
$16,080
$20,445
$17,589
$20,510
$20,875
$20,389
$20,095
REVENUE SUM
block dept / group=city sumvar=revenue discrete;
(block chart of revenue sums by dept and city)
January 1987 Revenue Report
SUM OF REVENUE BY DEPT GROUPED BY CITY
___
___
___
/_ /|
/_ /|
/_ /|
|**| |
|**| |
|**| |
|**| |
|**| |
|**| |
|**| |
|**| |
|**| |
|**| |
|**| |
|**| |
|**| |
|**| |
|**| |
___ -|**| |--------|**| |---___ -|**| |------/_ /| |**| |
/ |**| | /_ /| |**| |
/
|**| | |**| |
___ |**| | |**| | |**| |
/
Raleigh, NC |**| | |**| | /_ /| |**| | |**| | |**| |
/
|**| | |**|/ |**| | |**|/ |**| | |**|/
/
|**| |
|**| |
|**| |
/
|**| |$20,875 |**| |$20,389 |**| |$20,095 /
/|**| |-------/|**| |-------/|**| |-------/
___ |**| |
/ |**| |
/ |**| |
/
/_ /| |**| |
___ |**| |
___ |**| |
/
New York, NY |**| | |**| | /_ /| |**| | /_ /| |**| |
/
|**| | |**|/ |**| | |**|/ |**| | |**|/
/
|**| |
|**| |
|**| |
/
|**| |$20,445 |**| |$17,589 |**| |$20,510 /
/|**| |-------/|**| |-------/|**| |-------/
/ |**| |
/ |**| |
/ |**| |
/
/ |**| |
___ |**| |
/ |**| |
/
Los Angeles, CA
___ |**| | /_ /| |**| |
/
|**| |
/
/_ /| |**|/ |**| | |**|/
___ |**|/
/
|**| |
|**| |
/_ /|
/
|**| |$18,332 |**| |$16,111 |**| |$16,080 /
CITY
/|**| |-------/|**| |-------/|**| |-------/
/ |**| |
/ |**| |
/ |**| |
/
/ |**| |
/ |**| |
/ |**| |
/
Chicago, IL /
|**| |
/
|**| |
/
|**| |
/
/
|**|/
/
|**|/
/
|**|/
/
/
/
/
/
/
$14,318 /
$15,900 /
$12,491 /
/-------------/-------------/-------------/
100
115
DEPT
314
Christian Longhi. Cours SAS Base. UNSA_CNRS.
47
pie city / sumvar=revenue discrete;
(pie chart of revenue sums by city)
January 1987 Revenue Report
SUM OF REVENUE BY CITY
Los Angeles, CA
***********
****
****
***
..
***
**
.
**
**
.
**
Chicago, IL
*
$50,524
.
*
**
23.70%
.
**
*
.
$42,710
*
* . .
.
20.04%
*
**
. ..
.
**
*
.. .
.
*
*
. .
*
*
+ . . .. . .. . .. *
*
*
*
.
*
**
$58,544
.
**
*
27.47%
.
*
*
.
$61,359
*
New York, NY **
.
28.79%
**
*
.
*
**
.
**
**
.
**
***
.
*** Raleigh, NC
**** .
****
***********
pie city / type=mean sumvar=revenue discrete;
(pie chart of mean revenue per day by city)
January 1987 Revenue Report
MEAN OF REVENUE BY CITY
Los Angeles, CA
***********
****
****
***
..
***
**
.
**
**
.
**
Chicago, IL
*
$766
.
*
**
23.70%
.
**
*
.
$647
*
* . .
.
20.04%
*
**
. ..
.
**
*
.. .
.
*
*
. .
*
*
+ . . .. . .. . .. *
*
*
*
.
*
**
$887
.
**
*
27.47%
.
*
*
.
$930
*
New York, NY **
.
28.79%
**
*
.
*
**
.
**
**
.
**
***
.
*** Raleigh, NC
**** .
****
***********
Christian Longhi. Cours SAS Base. UNSA_CNRS.
48
PROCEDURE REG (Introduction)
La procédure REG exécute des régressions simples ou multiples. Elle donne différentes
informations concernant les résultats: précision des estimateurs, colinéarités, analyse des résidus,
tests... On récupère, sur demande, diverses statistiques sous forme de tableaux SAS : matrice de
produits croisés, coefficients estimés, matrice de covariance des coefficients, valeurs ajustées,
résidus, limites de confiance des valeurs ajustées... On ne donnera ici que quelques unes des options
parmi les nombreuses disponibles.
PROC REG Options;
MODEL var. dépendantes=var. indépendantes/options;
VAR variables;
OUTPUT OUT = nom tableau résultats ;
RESTRICT équation,...;
TEST équation,...;
MTEST équation,...;
ID variable ;
WEIGHT variable ;
FREQ variable ;
BY variables ;
PLOT y-variable*x-variable='symbol'/options;
OPTIONS DE PROC REG
DATA = nom : nom du tableau d'entrée.
SIMPLE : Imprime des statistiques descriptives simples pour les variables utilisées dans la
procédure.
ALL : Imprime des statistiques diverses concernant ces variables; équivaut à spécifier ALL pour
chaque MODEL.
....
On peut utiliser plusieurs instructions MODEL pour estimer plusieurs modèles. RESTRICT, TEST,
ou MTEST opèrent sur le MODEL qui les précède; WEIGHT, FREQ, et ID sont valables pour toute
la procédure.
OPTIONS DE L'INSTRUCTION MODEL
P : Imprime la première variable ID, les yi, yi et ûi=yi-yi
CLM : Limites de confiance à 95 % de E(yi)
CLI : Limites de confiance à 95 % pour yi
R : Analyse des résidus
Christian Longhi. Cours SAS Base. UNSA_CNRS.
49
INSTRUCTIONS WEIGHT ET FREQ
WEIGHT : Désigne une variable pondérant les observations
FREQ : Désigne une variable dont la partie entière (positive) indique le nombre de fois où
l'observation doit être prise en compte dans les calculs.
INSTRUCTION ID
Spécifie une variable pour identifier les observations dans les impressions; en son absence, SAS
met des numéros.
INSTRUCTION OUTPUT
OUTPUT OUT = Tableau Stat=noms Stat=noms etc...;
Les statistiques récupérables sont PREDICTED, RESIDUAL, L95M, U95M, L95, U95, STDP,
STDR, STUDENT.....
INSTRUCTION RESTRICT
Définit les contraintes linéaires que doivent respecter les coefficients.
RESTRICT restriction1, ..., restriction k ;
Il peut y avoir plusieurs RESTRICT ou plusieurs restrictions dans un RESTRICT, séparées alors
par des virgules.
INSTRUCTION TEST
La syntaxe est semblable à celle de RESTRICT
TEST équation 1,...., équation k;
Exemple : MODEL Y = A1 A2 B1 B2;
TEST A1+2*A2=1;
TEST B1=0, B2=0;
INSTRUCTION MTEST
Applicable quand l'instruction MODEL spécifie plusieurs variables endogènes fonctions des
mêmes régresseurs.
MTEST équation 1,...., équation k;
Exemple : MODEL Y1 Y2 = X1 X2 X3;
T1: MTEST X1,X2;
T2: MTEST Y1-Y2;
Les hypothèses suivantes sont testées:
T1 : les coefficients de X1 et X2 sont nuls dans les deux régressions
T2 : tous les coefficients sauf la constante sont les mêmes pour les deux équations.
INSTRUCTION PLOT
PROC REG ...;
MODEL ...;
PLOT y-variable* x-variable = 'symbol'/ OVERLAY SYMBOL=' ';
L'instruction permet de tracer des graphes à partir de l'ensemble des variables (statistiques) générées
dans l'estimation de l'équation.
Christian Longhi. Cours SAS Base. UNSA_CNRS.