0% ont trouvé ce document utile (0 vote)
500 vues51 pages

SAS Base

Transféré par

lealinux
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
500 vues51 pages

SAS Base

Transféré par

lealinux
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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 DATA FIC.


de programmation INPUT X Y;
= CARDS;
COMMENT FAIRE .......

Tableau SAS

Etape PROC, instructions PROC MEANS DATA=FIC;


dans les procédures VAR X Y;
= RUN;
QUE FAIRE

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 LOG


SUPPORT EXTERNE

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 nom attribué à chaque étape
DATA2 séquentiellement.
DATAn

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 É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 ;

Christian Longhi. Cours SAS Base. UNSA_CNRS.


7

FUSION (MERGE)
TABLEAUX ETAPE DATA TABLEAU
SAS SAS
DATA
F G F G
MERGE F G;

MISE A JOUR (UPDATE)


TABLEAUX ETAPE DATA TABLEAU
SAS SAS

M1 T M2

DATA M2 ;
UPDATE M1 T ;
BY ID ;

EDITION D'ETATS
TABLEAU ETAPE DATA
SAS 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 M 12 32 141

1 10 14 19 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 INPUT @10 VILLE $7.;
TOURS
LE PUY
---------- Donnera:
AMIENS
TOURS
LE PUY

TOULOUSE INPUT VILLE $CHAR7.;


TOURS
LE PUY
--------- 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 SAL1 SAL2 SAL3


6100 6200 6200
6000 6300 .
5000 5500 5100

TABLEAU SAL
SAL1 SAL2 SAL3 SALT SALM
6100 6200 6300 18600 6200
6000 6300 . . .
5000 4000 6000 15000 1500

Christian Longhi. Cours SAS Base. UNSA_CNRS.


15

LES OPERATEURS

OPERATEURS ARITHMETIQUES

SYMBOLE SIGNIFICATION EXEMPLES


** Exponentiation Y = X**2;
* Multiplication Y = A*B;
/ Division Y = A / B;
+ Addition Y = A + B;
- Soustration Y = A - B;
>< Maximum Y = A >< B;
<> Minimum Y = A <> B;

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

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 name year major

1 Abbott, Jennifer freshman


2 Carter, Tom junior Theater
3 Kirby, Elissa senior Mathematics
4 Tucker, Rachel freshman
5 Uhl, Roland sophomore
6 Wacenske, Maurice junior Theater

Obs date time room

1 12SEP88 10:00 103


2 12SEP88 10:30 103
3 12SEP88 11:00 207
4 13SEP88 10:00 105
5 13SEP88 10:30 105
6 15SEP88 11:00 207

Merging CLASS and TIMESLOT to Assign 5


Conference Times to Students

Obs name year major date time room

1 Abbott, Jennifer freshman 12SEP88 10:00 103


2 Carter, Tom junior Theater 12SEP88 10:30 103
3 Kirby, Elissa senior Mathematics 12SEP88 11:00 207
4 Tucker, Rachel freshman 13SEP88 10:00 105
5 Uhl, Roland sophomore 13SEP88 10:30 105
6 Wacenske, Maurice junior Theater 15SEP88 11:00 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 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=. ;

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 mot-
clé 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 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).

Christian Longhi. Cours SAS Base. UNSA_CNRS.


31

PROCEDURES MEANS, UNIVARIATE, SUMMARY

PROC MEANS; PROC UNIVARIATE; PROC SUMMARY;


BY...; BY...; BY...;
FREQ..; FREQ...; CLASS...;
ID...; ID...; FREQ...;
WEIGHT...; WEIGHT...; VAR...;
OUTPUT...; VAR...; OUTPUT...;
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 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)

100% Max 19.95 99% 19.95


75% Q3 4.68 95% 11.79
50% Med 2.71 90% 10.83
25% Q1 0.99 10% 0.585
0% Min 0.3 5% 0.44
1% 0.3
Range 19.65
Q3-Q1 3.69
Mode 3.92

Christian Longhi. Cours SAS Base. UNSA_CNRS.


33

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 )

Stem Leaf # Boxplot


2 0 1 *
1 8 1 *
1 1112 4 0
0 555556779 9 +-----+
0 00001111111111112222222333333344444 35 *--+--*
----+----+----+----+----+----+----+
Multiply Stem.Leaf by 10**+1

Normal Probability Plot


22.5+
| * *
12.5+ **+**+++++++++
| ++++*****++
2.5+ * * ** *********************
+----+----+----+----+----+----+----+----+----+----+
-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> variable-1<...<DESCENDING> variable-n>
<NOTSORTED>;
FREQ frequency-variable;
PARTIAL variable(s);
VAR variable(s);
WEIGHT weight-variable;
WITH variable(s);

Use this
To do this 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 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

Compute correlations for specific combinations of variables WITH

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 N Mean Std Dev Sum Minimum Maximum

Age 30 47.56667 5.26330 1427 38.00000 57.00000


Weight 30 77.70500 8.34152 2331 59.08000 91.63000
Runtime 29 10.61448 1.41655 307.82000 8.17000 14.03000
Oxygen 29 47.06445 5.32129 1365 37.38800 60.05500

Pearson Correlation Coefficients


Prob > |r| under H0: Rho=0
Number of Observations

Age Weight Runtime Oxygen

Age 1.00000 -0.21777 0.19528 -0.32899


0.2477 0.3100 0.0814
30 30 29 29

Weight -0.21777 1.00000 0.15155 -0.19900


0.2477 0.4326 0.3007
30 30 29 29

Runtime 0.19528 0.15155 1.00000 -0.78346


0.3100 0.4326 <.0001
29 29 29 28

Oxygen -0.32899 -0.19900 -0.78346 1.00000


0.0814 0.3007 <.0001
29 29 28 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 HPERCENT=50 VPERCENT=33;


PLOT Y * X;
PLOT Y * X / HAXIS = 0 TO 12 BY 2;
PLOT Y * X = '+' / HAXIS = 0 TO 12 BY 2;
PLOT Y * X = Z / HAXIS = 0 TO 12 BY 2 BOX;
PLOT Y * X = Z / HAXIS = 0 TO 12 BY 2 HREF = 4 8;
PLOT Y * X = Z A * B / OVERLAY;
RUN;

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

Plot of Y*X. Symbol used is '+'. Plot of Y*X. Symbol is value of Z.

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

Plot of Y*X. Symbol is value of Z. Plot of Y*X. Symbol is value of Z.


Plot of A*B. Legend: A = 1 obs, B = 2 obs, etc.
Y | | | Y
2 + | | 2 + A
| | | | A A A
| 3 | | | 3
1 + 1 | 1 3 1 + A 1 1 3
| 1 | 3 | 2 | AA 1A A A A 3 2
| 1 | 3 | 2 | A B 1 A 3 2
0 + 2 | | 2 0 + A A2AA 2
| 2 | 2 | 3 | 2 2 3
| 3 | | 3
-1 + | 2 3 1 | -1 + 2 3 1
---+-------+-------+-------+-------+-------+-------+-- ---+-------+-------+-------+-------+-------+-------+--
0 2 4 6 8 10 12 -2 0 2 4 6 8 10

X 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

Sum of Mean
Source DF Squares Square F Value Prob>F

Model 1 364.57626 364.57626 57.076 0.0001


Error 17 108.58795 6.38753
C Total 18 473.16421

Root MSE 2.52736 R-square 0.7705


Dep Mean 62.33684 Adj R-sq 0.7570
C.V. 4.05435

Parameter Estimates

Parameter Standard T for H0:


Variable DF Estimate Error Parameter=0 Prob > |T|

INTERCEP 1 42.570142 2.67988870 15.885 0.0001


WEIGHT 1 0.197615 0.02615725 7.555 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 |
|
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

Symbol Z Symbol Z Symbol Z Symbol Z Symbol Z

..... 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

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 SYMBOL CITY


C Chicago, IL L Los Angeles, CA
N New York, NY 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 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

SYMBOL CITY SYMBOL CITY


C Chicago, IL L Los Angeles, CA
N New York, NY 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 REVENUE


FREQ SUM
|
Chicago, IL 100 |******************* 22 $14,318
115 |********************* 22 $15,900
314 |***************** 22 $12,491
|
Los Angeles, CA 100 |************************ 22 $18,332
115 |********************* 22 $16,111
314 |********************* 22 $16,080
|
New York, NY 100 |*************************** 22 $20,445
115 |*********************** 22 $17,589
314 |*************************** 22 $20,510
|
Raleigh, NC 100 |**************************** 22 $20,875
115 |*************************** 22 $20,389
314 |*************************** 22 $20,095
|
------------+-----------+----
$9,000 $18,000

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 314


DEPT

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.

Vous aimerez peut-être aussi