Académique Documents
Professionnel Documents
Culture Documents
Hlne HAMISULTANE
Bibliographie :
Initiation au logiciel SAS(9) pour Windows, Coqu N. (juin 2006).
www.agroparistech.fr/IMG/pdf/polySas.pdf
SAS base, Introduction SAS SQL, SAS IML.
www.cnam.fr/mathematique/IMG/pdf/SAS_introduction_1.pdf
SAS 9.1.3 Documentation,
http://support.sas.com/documentation/onlinedoc/91pdf/index_913.html
Le logiciel SAS est destin au traitement statistique des donnes. Il est constitu de plusieurs
modules qui regroupent des programmes pr-installs appels "procdures" (certains modules
ne sont pas disponibles lors de linstallation de SAS). Parmi ces modules, nous pouvons citer
brivement :
SAS Stat : procdures destines aux rgressions diverses et aux statistiques descriptives ;
SAS ETS: procdures permettant le traitement des sries temporelles ;
SAS IML : module permettant lusage du langage matriciel.
Anne
1988
1988
1988
1988
1989
1989
1989
1989
Trimestre
1
2
3
4
1
2
3
4
Ventes
164
198
85
179
168
201
98
197
Pub
34
36
32
29
45
67
76
75
Nous souhaitons effectuer une rgression de Ventes sur Pub par la mthode des Moindres
Carrs Ordinaires (MCO). Pour ce faire, nous devons dabord saisir les donnes du tableau
dans le logiciel SAS.
Fentre Sortie
La fentre Sortie affiche les rsultats dun programme lorsque ce dernier sest excut sans
erreur.
Fentre Editeur
La fentre Editeur permet la saisie des instructions dun programme.
Remarque :
Tout programme SAS est constitu dune tape DATA et dune tape PROC.
Au cours de ltape DATA, les donnes, les variables et les tables SAS sont cres et
modifies (SAS ne peut travailler quavec des tables converties au format SAS). Tandis que
ltape PROC permet lapplication doprations pr-programmes sur les donnes
enregistres au cours de ltape DATA en faisant appel des procdures (la rgression de
Ventes sur Pub sera effectue laide de la procdure PROC REG ou PROC AUTOREG).
Il est possible de crer une table SAS soit en saisissant au clavier les donnes soit en
important les donnes dune table externe (table de format texte, Excel ou Access).
Remarques :
On peut saisir des dates au clavier en prcisant le format de la variable date laide de
DDMMYYw. (pour des dates crites sur w 6 caractres), YYMMDDw. , MONYYw.
(pour des dates crites sur w 5 caractres o MON correspond au 3 premires lettres du
mois en anglais) et ANYDTDTEw. (pour tous formats).
Exemple :
LIBNAME lsas "C:\travaux SAS\" ;
DATA lsas.essai ;
INPUT days DDMMYY10. Ventes Pub ;
CARDS ;
01/01/1988 164 34
01/04/1988 198 36
01/08/1988 85 179
3
01/12/1988 168 45
;
RUN ;
PROC PRINT DATA=lsas.essai;
FORMAT days date9. ;
/* Les instructions FORMAT days date9. permettent dafficher lisiblement les dates sous
la forme 01JAN1988, 01AVR1988, , 01DEC1988. Date9. permet dcrire les dates sur 9
caractres */
RUN ;
On peut inscrire des commentaires laide des caractres /* */ ou en plaant en dbut de
ligne *.
Linstruction LIBNAME permet de crer une bibliothque o sera range la table SAS qui
sera cre. On a appel cette bibliothque lsas. Elle est construite dans le dossier "travaux
SAS" qui se trouve sur le disque dur C.
ATTENTION : Le nom de la bibliothque ne doit pas dpasser 8 caractres, ne doit pas
comporter de lettre accentue ni de chiffres !
ATTENTION : Les instructions sous SAS sont suivies dun point virgule !!
SAS ne distingue pas les minuscules et les majuscules. On peut crire donc DATA ou data.
Linstruction DATA permet de crer une table SAS.
Pour crer une table SAS temporaire, on crira : DATA nomTable.
Pour crer une table SAS permanente, on crira : DATA nomLIBRARY.nomTable
La syntaxe de linstruction DATA est :
DATA nomTable
. ;
RUN ;
La table SAS cre aura pour extension .sas7bdat
Linstruction INPUT dclare les variables qui composeront la table SAS. Ici les variables
sont Ventes et Pub. Ce sont des variables numriques qui ne contiennent que des valeurs.
Lorsque lon souhaite dclarer des variables caractres, il faut ajouter $ aprs la
dclaration de la variable caractre.
Exemple :
DATA lsas.essai ;
INPUT Societe $ Ventes Pub ;
CARDS ;
Dupont 164 34
AAA 198 36
LSA 85 179
Store 168 45
;
PROC PRINT;
RUN ;
ATTENTION : Le nom des variables ne doivent pas comporter de lettre accentue !
Les nombres dcimaux scrivent avec un point !
Linstruction CARDS permet de rentrer manuellement les donnes dans la table SAS. Sa
syntaxe est :
CARDS ;
donnes
;
Remarques :
Avant dimporter les donnes du fichier Excel, il faut sassurer que les valeurs manquantes
sont remplaces par un blanc, que les dcimaux sont bien crits avec une virgule (SAS ne
comprend pas les dcimaux crits avec un point sous Excel) et que lintitul des variables
figure en 1re ligne.
Le fichier Excel peut comporter une colonne date au format 01/01/1993 ou mar-98 par
exemple.
Linstruction OUT permet dindiquer SAS le nom de la table SAS ainsi que
lemplacement o lon souhaite la placer.
Linstruction DBMS renseigne SAS sur le format du fichier importer.
Linstruction REPLACE crase une version antrieure de la table SAS portant le mme
nom.
6
Pour faire appel lassistant dimportation, on va dans Fichier puis on choisit Importer
donnes.
Remarque : Lassistant dimportation permet dimporter galement des formats .txt, .cvs,
1. Dans la liste droulante, on slectionne le format du fichier qui contient les donnes
importer puis on clique sur Suivant (ou Next).
2. Une fentre apparat ("Connect to MS Excel"). Dans lencadr "Workbook", on indique en
cliquant sur Browse lemplacement du fichier Excel puis on clique sur Ouvrir et sur OK.
3. Une autre fentre apparat o on demande quelle table on souhaite importer. Si le nom de
la feuille Excel qui apparat nous convient, on clique sur Suivant.
4. Une nouvelle fentre nous demande de renseigner le nom de la bibliothque (Library) vers
laquelle on veut transfrer les donnes (on choisit dans la liste droulante : SASUSER pour la
cration dune table permanente ou WORK pour une table provisoire).
Dans lencadr "Member", on attribue un nom la table SAS qui va tre cre (ici on lappelle
essai).
5. Une dernire fentre apparat et on clique Termin (ou Finish).
Remarques :
Pour quune modification puisse tre prise en compte dans la table SAS, il faut dabord
fermer la vue de la table (fentre ViewTable qui apparat en allant dans la fentre
Explorateur) avant de procder toute modification.
On peut crer une nouvelle variable en effectuant des oprations sur plusieurs variables.
Exemple :
Benefice = Ventes Pub ;
Les oprations mathmatiques peuvent seffectuer laide des fonctions suivantes :
ABS(num) : donne la valeur absolue dun nombre
MAX(num1, , numn) : donne le maximum dune liste de nombres
MIN(num1, , numn) : donne le minimum dune liste de nombres
SQRT(num) : fournit la racine carre dun nombre
INT(num) : donne lentier dun nombre
EXP(num) : donne lexponentiel dun nombre
SUM(num1, , numn) : calcule la somme dune liste de nombres
MEAN(num1, , numn) : calcule la moyenne dune liste de nombres
VAR(num1, , numn) : dtermine la variance dune liste de nombres
STD(num1, , numn) : donne lcart-type dune liste de nombres
On peut noter que les instructions de calcul se font toujours lintrieur de la syntaxe
DATA.
On peut crire la suite plusieurs instructions DATA. Par exemple :
LIBNAME lsas "C:\travaux SAS\";
PROC IMPORT DATAFILE="C:\travaux SAS\essai.xls" OUT=lsas.essai;
RUN ;
PROC PRINT DATA=lsas.essai;
RUN;
DATA lsas.essai;
SET lsas.essai;
lPub=log(Pub);
RUN;
DATA lsas.chgessai; /* cration dune autre table dans la bibliothque lsas */
SET lsas.essai;
RUN;
DATA lsas.essai;
SET lsas.essai;
DROP Ventes;
RUN;
Cration dun fichier texte partir dune table SAS et de PROC EXPORT
10
Cration dun fichier Excel partir dune table SAS et de PROC EXPORT
LIBNAME lsas "C:\travaux SAS\" ;
PROC EXPORT DATA=lsas.essai OUTFILE='C:\travaux SAS\essai.xls' REPLACE;
RUN;
Pour raliser une rgression de Ventes sur Pub et sur une constante par les MCO, on peut
utiliser PROC REG ou PROC AUTOREG.
PROC REG estime par les MCO les coefficients dun modle linaire qui comporte des
erreurs qui sont non autocorrles (si les erreurs sont htroscdastiques, il est possible
dutiliser la mthode destimation des MCG laide de linstruction WEIGHT avec PROC
REG).
PROC AUTOREG estime galement par les MCO les coefficients dun modle linaire avec
des erreurs non autocorrles ou autocorrles (avec la mthode du maximum de
vraisemblance et une structure autorgressive pour lerreur).
PROC AUTOREG permet aussi la mise en uvre de certains tests comme le test de JarqueBera et celui de Chow.
Il existe sous SAS dautres procdures destimation pour des cas plus spcifiques :
CATMOD, GENMOD, GLM, LOGISTIC, MIXED, NLIN, PROBIT, etc...
Pour effectuer une estimation laide de PROC REG ou de PROC AUTOREG, on crit les
lignes suivantes dans la fentre Editeur :
PROC REG DATA=lsas.essai ;
MODEL Ventes=Pub ;
RUN ;
ou
PROC AUTOREG DATA=lsas.essai ;
MODEL Ventes=Pub ;
RUN ;
Remarques :
Il nest pas ncessaire dinclure une constante parmi les variables explicatives car celle-ci
est ajoute automatiquement. Pour mener une rgression sans constante, on crit :
PROC REG DATA=lsas.essai ;
11
12
B/ Etape PROC : rgression linaire avec une variable indicatrice (muette ou dummy)
13
Remarques :
Si la variable days est une chane de caractres, les lignes de commandes scrivent :
DATA lsas.essai;
SET lsas.essai;
DUAG88=(days="01081988");
RUN;
Si lon souhaite faire appel au rang dobservation de la variable days pour construire la
variable muette, on crira :
DATA lsas.essai;
SET lsas.essai;
DUAG88=(_n_=3); /* la date 01081988 correspond la 3me observation */
RUN;
Tests de normalit
PROC AUTOREG DATA=lsas.essai ;
MODEL Ventes=Pub / NORMAL ;
/* NORMAL pour obtenir le test de Jarque Bera */
RUN ;
ou
PROC REG DATA=lsas.essai ;
MODEL Ventes=Pub;
OUTPUT OUT=result r=res p=Ventesprev ;
RUN;
/* Mise en oeuvre des tests de normalit de Kolmogorov-Smirnov, Cramer-Von Mises et
Andersen-Darling */
PROC UNIVARIATE DATA=result NORMAL;
VAR res;
HISTOGRAM res / NORMAL;
RUN;
PROC REG ;
MODEL Ventes=Pub / DWPROB ;
RUN ;
ou
/* PROC AUTOREG fournit directement les rsultats du test de DW dans la fentre Sortie */
PROC AUTOREG DATA=lsas.essai ;
MODEL Ventes=Pub ;
RUN ;
15
98 76 10
197 75 19
;
PROC MODEL;
PARMS B0 B1 B2;
Ventes=B0+B1*Pub+B2*Charges;
FIT Ventes / WHITE;
RUN;
ou
PROC REG DATA=lsas.essai ;
MODEL Ventes=Pub Charges / SPEC;
RUN ;
ETAPE 5 : PREVISION
16