SAS Base
SAS Base
Christian Longhi
UNIVERSITE DE NICE SOPHIA ANTIPOLIS
LATAPSES – IDEFI – CNRS
ETAPE DATA 5
L'INSTRUCTION INFILE 8
CARDS 8
L'INSTRUCTION INPUT 9
L'INSTRUCTION LABEL 13
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 DE CONTROLE 22
PROCEDURE PRINT 26
PROCEDURE DATASETS 28
PROCEDURE SORT 29
PROCEDURE MEANS 30
PROCEDURE FREQ 34
PROCEDURE CORR 36
PROCEDURE PLOT 38
PROCEDURE CHART 43
PROCEDURE REG 48
1
SAS BASE
SAS/AF
SAS/GRAPH
SAS/FSP
SAS DE BASE
SAS/ETS
SAS/STAT
....
SAS fournit les outils pour transformer des données extérieures en TABLEAU SAS
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.
Un tableau SAS contient des variables. Chaque VARIABLE est identifiée par :
- son NOM
- son TYPE (CARACTERE OU NUMERIQUE)
- sa LONGUEUR
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 _
(JOB SAS)
C'EST UNE SUITE D'INSTRUCTIONS; INSTRUCTIONS D'ETAPES DATA ET PROC, ET
INSTRUCTIONS DE PROGRAMMATION.
Tableau 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
MISSING= '.'
ETAPE DATA
SET INFILE
MERGE CARDS
UPDATE INPUT
ETAPE DATA
FILE
PUT
DATA
OUTPUT
DATA
L'INSTRUCTION DATA...;
SYNTAXE
CAS PARTICULIER : DATA _NULL_; ne créé pas de tableau SAS, cas d'impression d'états ou
sortie sur supports externes.
ETAPE DATA
RECHERCHE DE DONNÉES
DONNÉES ÉTAPE DATA TABLEAUX
EN ENTRÉE SAS
FICHIER ENTRER
EXTERNE ÉDITER
TRANSFORMER
TRANSFERT ET RECODAGE
TABLEAU ÉTAPE DATA TABLEAU
SAS SAS
DATA B; SET A;
A IF AN>1970 ; B
BENEF=REY-DEP;
CONCATENATION
TABLEAUX ÉTAPE DATA TABLEAU
SAS SAS
C D DATA E; C
SET C D ;
FUSION (MERGE)
TABLEAUX ETAPE DATA TABLEAU
SAS SAS
DATA
F G F G
MERGE F G;
M1 T M2
DATA M2 ;
UPDATE M1 T ;
BY ID ;
EDITION D'ETATS
TABLEAU ETAPE DATA
SAS IMPRESSION
Instructions
PUT et FILE
FICHIER
EXTERNE
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 :
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
;
- IL EST CONSEILLE DE TERMINER LES DONNEES PAR UNE INSTRUCTION NULLE (;).
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.
. MODE LISTE
. MODE COLONNE
. MODE FORMAT
CES TROIS MODES PEUVENT ETRE COMBINES DANS UNE MEME INSTRUCTION
INPUT
SYNTAXE
SUR LE FICHIER
SYNTAXE
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
CONTRAINTE : LES VALEURS DES VARIABLES DOIVENT TOUJOURS ETRE DANS LES
MEMES ZONES.
SYNTAXE
* DECIMALE
* ENTIER BINAIRE
* HEXADECIMALE
* VIRGULE FLOTTANTE
* FORMAT DATE
@ : à 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
EXEMPLES
ANDRE M 12 32 141
1 10 14 19 24
EXEMPLES
AMIENS INPUT @10 VILLE $7.;
TOURS
LE PUY
---------- Donnera:
AMIENS
TOURS
LE PUY
L'INSTRUCTION LABEL
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.
TABLEAU SAL
SAL1 SAL2 SAL3 SALT SALM
6100 6200 6300 18600 6200
6000 6300 . . .
5000 4000 6000 15000 1500
LES OPERATEURS
OPERATEURS ARITHMETIQUES
OPERATEURS DE COMPARAISON
= ou EQ Egal à
NE Différent de
> ou GT Supérieur à
< ou LT Inférieur à
>= ou GE Supérieur à ou égal à
<= ou LE Inférieur à ou égal à
OPERATEURS LOGIQUES
AND Et
OR Ou
NOT Non
|| Concaténation
LES FONCTIONS
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= ;
L'INSTRUCTION SET
4. CONCATENATION DE TABLEAUX
DATA FIC3;
SET FIC1 (IN=IN1) FIC2 (IN=IN2);
IF IN1 THEN X=1;
IF IN2 THEN X=2;
INSTRUCTION MERGE
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;
L'INSTRUCTION IF
1. SELECTION D'OBSERVATIONS
IF expression logique;
EXEMPLE: DATA FIC2; SET FIC1;
IF X = 2;
2. INSTRUCTION DE CONTROLE
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 AGEGR=1;
ELSE IF (AGE>=25) AND (AGE < 50) THEN AGEGR=2;
ELSE IF (AGE>=50) AND (AGE < 76) THEN AGEGR=3;
Autre programme:
DATA FIC2; SET FIC1;
AGEGR = (AGE>15) + (AGE > 24) + (50 <= AGE <= 75);
IF AGE < 16 OR AGE > 75 THEN AGEGR=. ;
ON NE PEUT PAS UTILISER A LA FOIS DROP ET KEEP DANS UNE MEME ETAPE.
INSTRUCTIONS DE CONTROLE
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;
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.
FORME GENERALE :
- Eventuellement, des instructions propres à la procédure peuvent avoir leurs propres options:
celles-ci sont alors placées derrière un /.
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.
BY liste de variables;
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 mot-
clé DESCENDING
=> 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.
PROCEDURE PRINT
OPTIONS :
- POUR LES GROS TABLEAUX, UTILISER L'OPTION OBS = n : seules les n premières
observations sont imprimées dans l'output.
- 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 :
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;
BY liste de variable;
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;
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.
INSTRUCTIONS DE DATASETS
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
TRI PAR ORDRE DECROISSANT: faire précéder chaque variable concernée du mot clé
DESCENDING.
EXEMPLES
PROC SORT; Tri du dernier tableau créé
BY NOM SEXE; Le tableau trié stocké avec le même nom
PROCEDURE MEANS
Elle calcule des statistiques univariées usuelles de variables numériques. On peut stocker des
résultats dans un tableau de sortie.
QUELQUES OPTIONS
- MAXDEC = n : nombre de décimales en impression
- FW = n : largeur de chaque statistique en impression (12 par défaut)
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 variable-
freq.
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).
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;
PROGRAM
OUTPUT
UNIVARIATE PROCEDURE
Moments
N 50 Sum Wgts 50
Mean 4.0472 Sum 202.36
Std Dev 4.329319 Variance 18.743
Skewness 2.055218 Kurtosis 4.545617
USS 1737.398 CSS 918.407
CV 106.9707 Std Mean 0.612258
T:Mean=0 6.610284 Prob>|T| 0.0001
Sgn Rank 637.5 Prob>|S| 0.0001
Num ^= 0 50
W:Normal 0.763119 Prob<W 0.0001
UNIVARIATE PROCEDURE
Quantiles(Def=5)
Extremes
Lowest ID Highest ID
0.3(ALASKA ) 11.01(ILL )
0.33(WYO ) 1.2(TEXAS )
0.44(VT ) 11.79(PA )
0.49(NEV ) 18.24(NY )
0.55(DEL ) 19.95(CALIF )
PROCEDURE FREQ
- ORDER = Précise l'ordre dans lequel apparaissent les niveaux d'une variable.
INSTRUCTION TABLES
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 ...
OUT = nom de tableau : pour stocker les résultats dans un tableau SAS
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 :
INSTRUCTION FORMAT
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
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.
Use this
To do this statement
Identify a variable whose values represent the frequency of each observation FREQ
Identify controlling variables to compute Pearson, Spearman, or Kendall partial correlation PARTIAL
coefficients
Identify variables to correlate and their order in the correlation matrix VAR
Identify a variable whose values weight each observation to compute Pearson weight product- WEIGHT
moment correlation
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 Statistics
PROCEDURE PLOT
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.
- UNIFORM : pour conserver une échelle identique si on utilise un BY, les graphiques par strates
sont donc directement comparables.
- VPERCENT = Valeur
L'INSTRUCTION PLOT
Exemple:
Par défaut, un point isolé est représenté par un A, deux points superposés par un B....
- 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.
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.
- .....
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;
Plot of Y*X. Legend: A = 1 obs, B = 2 obs, etc. Plot of Y*X. Legend: A = 1 obs, B = 2 obs, etc.
Y | Y |
2 + 2 +
| |
| A | A
1 + A A A 1 + A A A
| A A A | A A A
| A A A | A A A
0 + A A 0 + A A
| A A A | A A A
| A | A
-1 + A A A -1 + A A A
---+---------+---------+---------+---------+-- ---+-------+-------+-------+-------+-------+-------+--
0.0 2.5 5.0 7.5 10.0 0 2 4 6 8 10 12
X X
Y | Y ---+-------+-------+-------+-------+-------+-------+---
2 + 2 + +
| | |
| + | 3 |
1 + + + + 1 + 1 1 3 +
| + + + | 1 3 2 |
| + + + | 1 3 2 |
0 + + + 0 + 2 2 +
| + + + | 2 2 3 |
| + | 3 |
-1 + + + + -1 + 2 3 1 +
---+-------+-------+-------+-------+-------+-------+-- ---+-------+-------+-------+-------+-------+-------+---
0 2 4 6 8 10 12 0 2 4 6 8 10 12
X X
X X
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
Sum of Mean
Source DF Squares Square F Value Prob>F
Parameter Estimates
WEIGHT
NOTE: 6 obs hidden.
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
Y |
|
350 + ======++++++OOOOOOOOXXXXXXXXXXXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXOOOOOOOO
340 + ====++++++OOOOOOOXXXXXXXXXXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXOOOOOOO
330 + =++++++OOOOOOOXXXXXXXXXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXOOOOO
320 + +++++OOOOOOOXXXXXXXXWWWWWWWWWWWWWW********************WWWWWWWWWWWWWWXXXXXXXXXOOOO
310 + +++OOOOOOXXXXXXXXWWWWWWWWWWWW*****************************WWWWWWWWWWWXXXXXXXXOOOO
300 + +OOOOOOXXXXXXXXWWWWWWWWWW***********************************WWWWWWWWWWXXXXXXXXOOO
290 + OOOOOXXXXXXXWWWWWWWWWW****************************************WWWWWWWWWXXXXXXXOOO
280 + OOOXXXXXXXWWWWWWWWW********************####********************WWWWWWWWWXXXXXXXOO
270 + OXXXXXXXWWWWWWWWW**************##################***************WWWWWWWWXXXXXXXOO
260 + XXXXXXWWWWWWWW*************#########################************WWWWWWWWXXXXXXXOO
250 + XXXXWWWWWWWW************#############################************WWWWWWWWXXXXXXOO
240 + XXXWWWWWWW***********#################################***********WWWWWWWWXXXXXXOO
230 + XWWWWWWWW**********####################################**********WWWWWWWXXXXXXXOO
220 + WWWWWWW**********######################################**********WWWWWWWXXXXXXOOO
210 + WWWWWW*********########################################**********WWWWWWWXXXXXXOOO
200 + WWWWW*********#########################################*********WWWWWWWXXXXXXOOOO
190 + WWW**********##########################################*********WWWWWWWXXXXXXOOOO
180 + WW*********###########################################*********WWWWWWWXXXXXXOOOOO
170 + W*********############################################*********WWWWWWWXXXXXXOOOOO
160 + W*********###########################################*********WWWWWWWXXXXXXOOOOO+
150 + *********###########################################*********WWWWWWWXXXXXXOOOOO++
140 + ********###########################################*********WWWWWWWXXXXXXOOOOO+++
130 + ********##########################################*********WWWWWWWXXXXXXOOOOO++++
120 + ********########################################**********WWWWWWWXXXXXXOOOOO+++++
110 + ********#######################################**********WWWWWWWXXXXXXOOOOO+++++=
100 + ********#####################################**********WWWWWWWXXXXXXOOOOOO+++++==
90 + ********###################################**********WWWWWWWWXXXXXXOOOOO+++++====
80 + *********################################***********WWWWWWWXXXXXXXOOOOO+++++====-
70 + **********############################************WWWWWWWWXXXXXXOOOOOO+++++====--
60 + ************######################**************WWWWWWWWXXXXXXXOOOOO+++++=====---
50 + ***************###############***************WWWWWWWWWXXXXXXXOOOOOO+++++====----'
40 + W******************************************WWWWWWWWWXXXXXXXOOOOOO+++++=====----''
30 + WW**************************************WWWWWWWWWWXXXXXXXOOOOOO+++++=====----''''
20 + WWWW********************************WWWWWWWWWWWXXXXXXXXOOOOOO++++++====-----''''.
10 + WWWWWW**************************WWWWWWWWWWWWWXXXXXXXXOOOOOO++++++=====----''''...
0 + WWWWWWWWWW*****************WWWWWWWWWWWWWWWXXXXXXXXOOOOOOO++++++=====----'''''....
|
---+---------+---------+---------+---------+---------+---------+---------+---------+--
0 50 100 150 200 250 300 350 400
..... 2.2 - 8.1 ----- 14.0 - 19.9 +++++ 25.8 - 31.7 XXXXX 37.6 - 43.5 ***** 49.4 - 55.4
''''' 8.1 - 14.0 ===== 19.9 - 25.8 OOOOO 31.7 - 37.6 WWWWW 43.5 - 49.4 ##### 55.4 - 61.3
PROCEDURE CHART
BY variables de stratification;
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.
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.
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.
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 = 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....
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.
- 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.
EXEMPLES
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;
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
DEPT REVENUE
FREQ SUM
|
100 |CCCCCCCLLLLLLLLLNNNNNNNNNNRRRRRRRRRR 88 $73,970
|
115 |CCCCCCCCLLLLLLLLNNNNNNNNNRRRRRRRRRR 88 $69,990
|
314 |CCCCCCLLLLLLLLNNNNNNNNNNRRRRRRRRRR 88 $69,177
----------+---------+---------+-------
$20,000 $40,000 $60,000
REVENUE SUM
REVENUE SUM
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.
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.
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.