Phase 1 : pr´eparation des donn´ees 1`ere ann ´ee...Lancer le logiciel SAS, puis cr´eer une...

6
IUT de Caen - D ´ epartement STID STID 1 ` ere ann ´ ee Responsable : Alain LUCAS S ´ eries temporelles Fiche de TP n o 2 - D´ ecomposition d’une chronique L’objectif de ce TP consiste principalement `a d´ ecomposer, selon un mod` ele additif, une chronique y t en une composante tendantielle, une composante saisonni` ere et une composante r´ esiduelle : y t = m t + s t + ε t , `a l’aide de la proc´ edure X11 de SAS. Dans un deuxi` eme temps seulement, une pr´ evision sera r´ ealis´ ee `a l’aide d’une egression et donc de la proc´ edure REG de SAS. Cette proc´ edure est li´ ee`alam´ ethode Census X-11, laquelle est une m´ ethode de d´ esaisonnalisation d’une chronique d’origine am´ ericaine. Contrairement `a la m´ ethode de d´ esaisonnalisation reposant sur l’hypoth` ese d’une saisonnalit´ e rigide (technique de conservation des aires), la m´ ethode Census X-11 pr´ esente l’avantage d’ˆ etre compatible avec une modification progressive de la composante saisonni` ere au cours du temps. La s´ erie que l’on va ´ etudier dans le cadre de ce TP est le nombre de d´ ec` es par mois en France sur la p´ eriode janvier 1975`ad´ ecembre 2004 (source INSEE). Le fichier qui va servir de base de travail se nomme death.txt, et est disponible sur le site http ://pagesperso-orange.fr/al-lucas dans la rubrique Enseignement/STID1/Chroniques. Fig. 1 : logiciel SAS 1 Phase 1 : pr´ eparation des donn´ ees 1. Cr´ eer un r´ epertoire SC sur votre disque, puis copier le fichier death.txt dans ce r´ epertoire. 2. Lancer le logiciel SAS, puis cr´ eer une fenˆ etre EDITOR nomm´ ee SC-TP2. 3. Dans la fenˆ etre ainsi cr´ ee, ´ ecrire les lignes de commande suivantes : dm ’clear log’ ; dm ’clear output’ ; options linesize=120 nodate nonumber ; 4. Cr´ eer ` a la suite du code la librairie SC via l’instruction libname (adapter si besoin la lettre du disque !) : libname SC ’C :\SC’ ; Compiler le programme. Quel est l’int´ erˆ et de cr´ eer une telle librairie ? 5. Dans le but de lire les donn´ ees, ´ ecrire le code suivant : title1 ”Etude du nombre de morts en France - P´ eriode janvier 1975 ` a d´ ecembre 2004” ; data SC.death ; infile ’C :\SC\death.txt’ ; input Month$ Year Death ; run ; 6. Afin de visualiser la bonne lecture des donn´ ees, on souhaite observer les 30 premi` eres lignes de la table death. Ecrire le code suivant en l’adaptant si besoin : proc print data=SC.death (obs=···) noobs ; title3 ”Visualisation des donn´ ees” ; var Month Year Death; run ; Compiler le programme, puis v´ erifier le succ` es de l’op´ eration. Pourquoi le dernier ’e’ du mois de Septembre n’apparaˆ ıt pas sur la sortie ? 7. Afin de palier ce probl` eme, ins´ erer l’instruction length Month $10 ; apr` es l’instruction INFILE de l’´ etape DATA. Compiler le programme, puis v´ erifier le succ` es de l’op´ eration. 8. Dans le but d’utiliser le format DATE sous SAS, on souhaite cr´ eer une variable date selon le format MMMYYYY, o` u MMM repr´ esente le mois en anglais cod´ e sur les trois premi` eres lettres (Juillet=JUL par exemple) et o` u YYYY repr´ esente l’ann´ ee compl` ete. (a) Afin de transformer les mois en fran¸ cais selon le format MMM, ´ ecrire l’´ etape DATA suivante : data SC.death ; set SC.death ; if Month=’Janvier’ then Month=’JAN’ ; else if Month=’F´ evrier’ then Month=’FEB’ ; else if Month=’Mars’ then Month=’MAR’ ; else if Month=’Avril’ then Month=’APR’ ; else if Month=’Mai’ then Month=’MAY’; else if Month=’Juin’ then Month=’JUN’ ; else if Month=’Juillet’ then Month=’JUL’ ; else if Month=’Aoˆ ut’ then Month=’AUG’ ; else if Month=’Septembre’ then Month=’SEP’ ; else if Month=’Octobre’ then Month=’OCT’ ; else if Month=’Novembre’ then Month=’NOV’; else if Month=’D´ ecembre’ then Month=’DEC’ ; else Month=’NA’ ; run ; Expliquer l’int´ erˆ et de la derni` ere ligne “else Month=’NA’ ;”. Note : on peut ´ egalement faire usage d’une fonction pr´ evue ` a cet effet (modification de l’intitul´ e d’une ou plusieurs modalit´ e(s) d’une variable) nomm´ ee tranwrd. Dans le cas pr´ esent, il suffirait d’´ ecrire Month=tranwrd(Month,’Janvier’,’JAN’). 2

Transcript of Phase 1 : pr´eparation des donn´ees 1`ere ann ´ee...Lancer le logiciel SAS, puis cr´eer une...

Page 1: Phase 1 : pr´eparation des donn´ees 1`ere ann ´ee...Lancer le logiciel SAS, puis cr´eer une fenˆetre EDITOR nomm´ee SC-TP2 . 3. Dans la fenˆetre ainsi cr´e´ee, ´ecrire les

IUT de Caen - Departement STID STID 1ere annee

Responsable : Alain LUCAS

Series temporelles

Fiche de TP no2 - Decomposition d’une chronique

L’objectif de ce TP consiste principalement a decomposer, selon un modele additif, une chronique yt en unecomposante tendantielle, une composante saisonniere et une composante residuelle :

yt = mt + st + εt,

a l’aide de la procedure X11 de SAS. Dans un deuxieme temps seulement, une prevision sera realisee a l’aide d’uneregression et donc de la procedure REG de SAS.

Cette procedure est liee a la methode Census X-11, laquelle est une methode de desaisonnalisation d’une chroniqued’origine americaine. Contrairement a la methode de desaisonnalisation reposant sur l’hypothese d’une saisonnaliterigide (technique de conservation des aires), la methode Census X-11 presente l’avantage d’etre compatible avec unemodification progressive de la composante saisonniere au cours du temps.

La serie que l’on va etudier dans le cadre de ce TP est le nombre de deces par mois en France sur la periode janvier1975 a decembre 2004 (source INSEE). Le fichier qui va servir de base de travail se nomme death.txt, et est disponiblesur le site

http ://pagesperso-orange.fr/al-lucas

dans la rubrique Enseignement/STID1/Chroniques.

Fig. 1 : logiciel SAS

1

Phase 1 : preparation des donnees

1. Creer un repertoire SC sur votre disque, puis copier le fichier death.txt dans ce repertoire.

2. Lancer le logiciel SAS, puis creer une fenetre EDITOR nommee SC-TP2.

3. Dans la fenetre ainsi creee, ecrire les lignes de commande suivantes :dm ’clear log’ ;

dm ’clear output’ ;

options linesize=120 nodate nonumber ;

4. Creer a la suite du code la librairie SC via l’instruction libname (adapter si besoin la lettre du disque !) :

libname SC ’C :\SC’ ;

Compiler le programme. Quel est l’interet de creer une telle librairie ?

5. Dans le but de lire les donnees, ecrire le code suivant :

title1 ”Etude du nombre de morts en France - Periode janvier 1975 a decembre 2004” ;

data SC.death ;

infile ’C :\SC\death.txt’ ;

input Month$ Year Death ;

run ;

6. Afin de visualiser la bonne lecture des donnees, on souhaite observer les 30 premieres lignes de la table death.Ecrire le code suivant en l’adaptant si besoin :

proc print data=SC.death (obs=· · ·) noobs ;

title3 ”Visualisation des donnees” ;

var Month Year Death ;

run ;

Compiler le programme, puis verifier le succes de l’operation. Pourquoi le dernier ’e’ du mois de Septembren’apparaıt pas sur la sortie ?

7. Afin de palier ce probleme, inserer l’instruction

length Month $10 ;

apres l’instruction INFILE de l’etape DATA. Compiler le programme, puis verifier le succes de l’operation.

8. Dans le but d’utiliser le format DATE sous SAS, on souhaite creer une variable date selon le format MMMYYYY,ou MMM represente le mois en anglais code sur les trois premieres lettres (Juillet=JUL par exemple) et ou YYYYrepresente l’annee complete.

(a) Afin de transformer les mois en francais selon le format MMM, ecrire l’etape DATA suivante :

data SC.death ;

set SC.death ;

if Month=’Janvier’ then Month=’JAN’ ;

else if Month=’Fevrier’ then Month=’FEB’ ;

else if Month=’Mars’ then Month=’MAR’ ;

else if Month=’Avril’ then Month=’APR’ ;

else if Month=’Mai’ then Month=’MAY’ ;

else if Month=’Juin’ then Month=’JUN’ ;

else if Month=’Juillet’ then Month=’JUL’ ;

else if Month=’Aout’ then Month=’AUG’ ;

else if Month=’Septembre’ then Month=’SEP’ ;

else if Month=’Octobre’ then Month=’OCT’ ;

else if Month=’Novembre’ then Month=’NOV’ ;

else if Month=’Decembre’ then Month=’DEC’ ;

else Month=’NA’ ;

run ;

Expliquer l’interet de la derniere ligne “else Month=’NA’ ;”. Note : on peut egalement faire usage d’unefonction prevue a cet effet (modification de l’intitule d’une ou plusieurs modalite(s) d’une variable) nommeetranwrd. Dans le cas present, il suffirait d’ecrire

Month=tranwrd(Month,’Janvier’,’JAN’).

2

Page 2: Phase 1 : pr´eparation des donn´ees 1`ere ann ´ee...Lancer le logiciel SAS, puis cr´eer une fenˆetre EDITOR nomm´ee SC-TP2 . 3. Dans la fenˆetre ainsi cr´e´ee, ´ecrire les

(b) On souhaite controler le succes de l’operation de deux manieres : en visualisant les 30 premieres lignes dela table death, puis en faisant usage de la procedure FREQ. Ecrire les lignes de code suivantes :

proc print data=SC.death (obs=30) noobs ;

title3 ”Controle du recodage” ;

var Month Year Death ;

run ;

proc freq data=SC.death ;

title3 ”Controle du recodage” ;

table Month ;

run ;

Compiler le programme. Verifier le bon codage des mois sur les 30 premieres observations. Via la procedureFREQ, detectez-vous des donnees manquantes suite au recodage ? Combien d’annees comporte la serie ?

(c) Afin de creer le format MMMYYYY, il convient de modifier le type de la variable Year (de numerique achaıne de caracteres), puis a concatener (i.e. fusionner) cette variable avec la variable Month. Dans ce but,ecrire l’etape DATA suivante :

data SC.death ;

set SC.death ;

temp=put(Year,4.) ;

Date=trim(Month) || temp ;

drop temp ;

run ;

Compiler le programme, puis verifier le succes de l’operation a l’aide d’une procedure PRINT.Note : l’instruction put permet de transformer la variable numerique Year en chaıne de caracteres ; lesymbole || permet de concatener les variables Month et temp ; l’instruction trim permet de supprimerl’espace de droite de la variable Month, place par defaut entre les deux variables concatenees.

9. On souhaite maintenant conserver dans un fichier au format ’texte’ (i.e. extension txt) les transformations quiont ete realisees. Dans ce but, ecrire les deux etapes suivantes :

data SC.death ;

set SC.death ;

keep Date Death ;

run ;

proc export data=SC.death dbms=dlm outfile=’C :\SC\new-death.txt’ replace ;

run ;

Expliquer le role de l’instruction keep. En faisant usage de l’aide en ligne de SAS, expliquer le role de l’instructionreplace. Que se passerait-il si cette instruction etait absente et que l’on soit oblige de recompiler le programme ?Compiler le programme, puis verifier la creation de ce nouveau fichier.

Phase 2 : representations graphiques

Pour realiser les representations graphiques, il est indispensable dans un premier temps de preciser a SAS quela variable Date represente une variable temporelle. Notons que cela n’est pas le cas pour le moment puisque cettevariable est definie par defaut comme une variable de type chaıne de caracteres.

1. Dans ce but, ecrire les lignes de code suivantes :

data SC.newdeath ;set SC.death ;Temp=input(Date,monyy7.) ;keep Temp Death ;run ;data SC.newdeath ;set SC.newdeath ;Date=Temp ;

3

keep Date Death ;

run ;

proc print data=SC.newdeath (obs=30) noobs ;

var Date Death ;

run ;

Compiler ce programme, puis visualiser la sortie. Commenter les valeurs de la variables Date.

2. Inserer dans la procedure PRINT la ligne de commande

format Date monyy7. ;

Compiler de nouveau, puis visualiser la sortie. Observez-vous un changement ? si oui, lequel ? Preciser alors lerole de l’instruction FORMAT.

3. On souhaite observer les donnees concernant l’annee 2003. Dans ce but, ecrire les lignes de commande suivantes :

proc print data=SC.newdeath noobs ;

format Date monyy7. ;

var Date Death ;

where (Date >= ’01JAN2003’d and Date <= ’01DEC2003’d) ;

run ;

Compiler le programme, puis verifier le succes de l’operation. Visualiser le nombre de deces au mois d’aout 2003.Quel evenement a engendre un nombre aussi important de deces ?

4. Il s’agit maintenant de visualiser cette serie chrnologique sur l’ensemble de la periode etudiee. Dans ce but, ecrireles lignes de commande suivantes :

goptions reset=all border cback=white htitle=2 ftitle=swissb ;

goptions devmap=winansi keymap=winansi ;

proc gplot data=SC.newdeath ;

symbol1 v=none c=black i=join ;

plot Death*Date=1 ;

title1 ’Nombre de deces mensuels en France’ ;

title2 ’Janvier 1975 - Decembre 2004’ ;

run ;quit ;

Compiler ce programme, puis verifier que vous obtenez le graphique suivant :

Fig. 2 : representation par defaut

Quelles critiques peut-on formuler sur cette representation graphique par defaut ?

4

Page 3: Phase 1 : pr´eparation des donn´ees 1`ere ann ´ee...Lancer le logiciel SAS, puis cr´eer une fenˆetre EDITOR nomm´ee SC-TP2 . 3. Dans la fenˆetre ainsi cr´e´ee, ´ecrire les

5. Afin d’ameliorer cette representation graphique, on se propose d’une part d’adapter l’echelle des ordonnees, cequi revient a operer un zoom sur l’ensemble de la chronique, et d’autre part de preciser le format de la variableDate. Dans ce but, completer l’instruction PLOT comme suit :

plot Death*Date=1 / vaxis=38000 to 60000 by 2000 ;

puis inserer l’instruction FORMAT suivante :

format Date monyy7. ;

Compiler de nouveau le programme, puis verifier que vous obtenez la representation graphique suivante :

Fig. 3 : representation adaptee a la chronique

6. On decide de s’interesser plus particulierement a la periode Janvier 1990 - Decembre 2004. Ajouter au sein de laprocedure GPLOT la ligne de commande suivante :

where (Date >= ’01JAN1990’d) ;

Compiler de nouveau, puis comparer votre graphique au graphique suivant :

Fig. 4 : zoom sur la periode janvier 1990 - decembre 2004

5

7. Modifier l’instruction WHERE dans le cas ou l’on souhaite etudier la serie sur la periode janvier 2002 - decembre2003 (Aide : on pourra faire usage du symbole & qui signifie ’and’). Compiler le programme, puis verifier lesucces de l’operation. Preciser la date a laquelle on observe le plus (resp. le moins) de deces sur cette periode.

8. On desire maintenant etudier plus precisement les cinq dernieres annees. Modifier la procedure GPLOT enconsequence. Quel evenement marquant peut-on observer ?

Phase 3 : modelisation

Comme precise dans l’introduction, on souhaite modeliser cette serie en vue de realiser des previsions. Dans cecadre, on s’oriente vers un modele additif, i.e. de la forme yt = mt + st + εt, lequel va etre calcule a partir de lamethode Census-X11.

1. Dans ce but, ecrire a la suite du programme les lignes de code suivantes :

proc x11 data=SC.newdeath noprint ;

monthly date=Date additive ;

var Death ;

output out=out b1=serie d10=season d11=cvs d12=trend d13=error ;

run ;

Compiler ce programme, puis verifier le succes de l’operation via la fenetre LOG.

2. Cette procedure SAS a produit en particulier des coefficients saisonniers, une serie corrigee des variations sai-sonnieres, une tendance, et une serie residuelle. Preciser dans quelle table ces series vont-elles etre visibles. Dansquelle librairie par defaut cette table est-elle creee ? Est-ce une table permanente ou temporaire ? Dans le casd’une table temporaire, que faudrait-il faire ici pour la rendre permanente ?

3. On souhaite voir le contenu de la table out sur les quatre premiere annees de la serie. Ecrire les lignes de codesuivantes :

proc print data=out noobs ;

where (Date <=’01DEC1978’d) ;

format Date monyy7. ;

run ;

Compiler, puis comparer la sortie a la table suivante :

Fig. 5 : visualisation de la table out

6

Page 4: Phase 1 : pr´eparation des donn´ees 1`ere ann ´ee...Lancer le logiciel SAS, puis cr´eer une fenˆetre EDITOR nomm´ee SC-TP2 . 3. Dans la fenˆetre ainsi cr´e´ee, ´ecrire les

4. On souhaite representer les series cvs, trend, season et error sur quatre graphiques differents. Dans ce but, ecrireles procedures GPLOT suivantes, puis compiler :

goptions reset=all border cback=white htitle=2 ftitle=swissb ;

goptions devmap=winansi keymap=winansi ;

proc gplot data=out ;

title1 ”Etude du nombre de morts en France - Periode janvier 1975 a decembre 2004” ;

title3 ’Evolution de la composante saisonniere’ ;

symbol1 v=none c=black i=join ;

plot season*Date=1 ;

format Date monyy7. ;

run ;

proc gplot data=out ;

title1 ”Etude du nombre de morts en France - Periode janvier 1975 a decembre 2004” ;

title3 ’Trend de la serie’ ;

symbol1 v=none c=black i=join ;

plot trend*Date=1 ;

format Date monyy7. ;

run ;

proc gplot data=out ;

title1 ”Etude du nombre de morts en France - Periode janvier 1975 a decembre 2004” ;

title3 ’Serie corrigee des variations saisonnieres’ ;

symbol1 v=none c=black i=join ;

plot CVS*Date=1 ;

format Date monyy7. ;

run ;

proc gplot data=out ;

title1 ”Etude du nombre de morts en France - Periode janvier 1975 a decembre 2004” ;

title3 ’Serie des residus’ ;

symbol1 v=none c=black i=join ;

plot error*Date=1 ;

format Date monyy7. ;

run ;

Comparer vos graphiques avec les quatre representations suivantes :

Fig. 6 : composante saisonniere Fig. 7 : tendance de la serie

7

Fig. 8 : serie cvs Fig. 9 : serie residuelle

5. On desire maintenant representer sur un meme graphique la serie brute et la serie ajustee obtenue selon lamethode Census-X11, et ce afin de verifier visuellement l’adequation des deux series. En s’interessant plusparticulierement aux dix dernieres annees, ecrire l’etape DATA les lignes de code suivantes :

data out ;

set out ;

ajust=trend+season ;

run ;

goptions reset=all border cback=white htitle=2 ftitle=swissb ;

goptions devmap=winansi keymap=winansi ;

proc gplot data=out ;

symbol1 v=none c=black i=join ;

symbol2 v=none c=red i=join ;

title1 ”Etude du nombre de morts en France - Periode janvier 1975 a decembre 2004” ;

title3 ’Serie brute et serie ajustee’ ;

plot serie*Date=1 ajust*Date=2/overlay vaxis=38000 to 60000 by 3000 ;

where (Date >=’1JAN1994’d) ;

format Date monyy7. ;

run ;quit ;

Preciser le role de l’etape DATA. Quel est le role de l’option OVERLAY dans la procedure GPLOT ? Compilerce programme, puis visualiser le graphique. Obtient-on une adequation parfaite entre la serie brute et la serieajustee ? Tenter d’expliquer certaines de ces inadequations.

6. Afin de confirmer l’adequation d’un modele, une technique consiste a visualiser la serie des residus normalisesqui devrait etre obtenue comme la realisation de variables aleatoires gausiennes centrees-reduites et non correlees(i.e. ici independantes) entre elles. Dans ce cas, cette serie devrait se comporter de facon heratique autour de 0,avec des valeurs comprises dans 95% des cas entre -2 et +2. Dans ce but, ecrire les lignes de code suivantes :

proc means data=out noprint ;

var error ;

output out=tmp std=std ;

run ;

data null ;

set tmp ;

call symput(’STD’,std) ;

run ;

%put STD=&STD ;

data out ;

set out ;

normalizederror=error/&STD ;

run ;

Compiler ce programme, puis visualiser la valeur de la macro variable STD dans la fenetre LOG.

8

Page 5: Phase 1 : pr´eparation des donn´ees 1`ere ann ´ee...Lancer le logiciel SAS, puis cr´eer une fenˆetre EDITOR nomm´ee SC-TP2 . 3. Dans la fenˆetre ainsi cr´e´ee, ´ecrire les

7. Afin de visualiser maintenant la serie des residus normalises, ecrire le code suivant :

goptions reset=all border cback=white htitle=2 ftitle=swissb ;

goptions devmap=winansi keymap=winansi ;

axis1 label=(”Date”) ;

axis2 label=(angle=90 ”Residus normalises”) order=(-3 to 3 by 0.5) ;

proc gplot data=out ;

symbol1 v=none c=black i=join ;

title1 ”Etude du nombre de morts en France - Periode janvier 1975 a decembre 2004” ;

title3 ’Serie des residus normalises’ ;

plot normalizederror*Date=1 /overlay haxis=axis1 vaxis=axis2 lvref=2 cvref=red vref=-2 0 2 ;

format Date monyy7. ;

run ;quit ;

Compiler ce programme, puis comparer le graphique avec le suivant :

Fig. 10 : serie des residus normalises

Pourquoi peut-on dire que la modelisation est ici acceptable ? Justifier votre reponse.

Phase 4 : previsions

Dans ce paragraphe, on se propose de realiser des previsions pour les annees 2005 et 2006 sur la base du modelefournit par la methode Census-X11. Afin d’obtenir des resultats fiables, on se propose de restreindre l’etude a laperiode janvier 1995 - decembre 2004.

1. On decide dans un premier temps de visualiser la serie CVS sur cette periode afin de savoir si l’on peut estimerla tendance via un modele affine. Dans ce but, ecrire les lignes de code suivantes :

goptions reset=all border cback=white htitle=2 ftitle=swissb ;goptions devmap=winansi keymap=winansi ;

axis1 label=(”Date”) ;axis2 label=(angle=90 ”serie CVS”) ;

9

proc gplot data=out ;

symbol1 v=none c=black i=join ;

title1 ”Etude du nombre de morts en France - Periode janvier 1995 a decembre 2004” ;

title3 ’Serie CVS’ ;

plot cvs*Date=1 /haxis=axis1 vaxis=axis2 ;

where (Date >=’01JAN1995’d) ;

format Date monyy7. ;

run ;quit ;

Compiler ce programme, puis le comparer a la representation suivante :

Fig. 9 : serie CVS sur la periode janvier 1995 - decembre 2004

Etes-vous d’accord avec une modelisation affine du trend ? Justifier votre reponse.

2. Afin de travailler sur la periode janvier 1995 - decembre 2004, ecrire l’etape DATA suivante :

data out1 ;

set out ;

where (Date>=’01JAN1995’d) ;

run ;

Compiler ce programme.

3. En se basant sur cette periode, on envisage de proceder a un ajustement affine de la serie CVS. Ecrire alors laprocedure REG suivante :

proc reg data=out1 outest=sortie1 noprint ;

model cvs=Date ;

output out=sortie2 predicted=p ;

run ;

Compiler ce programme, puis visualiser le contenu des tables sortie1 et sortie2 a l’aide d’une procedure PRINT.

10

Page 6: Phase 1 : pr´eparation des donn´ees 1`ere ann ´ee...Lancer le logiciel SAS, puis cr´eer une fenˆetre EDITOR nomm´ee SC-TP2 . 3. Dans la fenˆetre ainsi cr´e´ee, ´ecrire les

4. On souhaite stocker les parametres du modele affine dans deux variables a et b, ou a represente la pente de ladroite, et b l’ordonnee a l’origine. Ecrire l’etape DATA suivante :

data null ;

set sortie1 ;

call symput (’a’,date) ;

call symput (’b’,intercept) ;

run ;

Compiler ce programme, puis visualiser le succes de l’operation en faisant usage de l’instruction ’%put’ permettantdans la fenetre LOG d’afficher le contenu d’une macro variable. Interpreter alors selon le contexte les coefficientsa et b.

5. Avant de realiser la prevision du nombre de morts pour les annees 2005 et 2006 en France, il importe de faire untravail preparatoire consistant notamment a predire le trend, puis a prendre en compte les variations saisonnieres.Dans ce but, ecrire les lignes de commande suivantes :

data droite ;

do i=1 to 24 ;

output ;

end ;

run ;

data droite ;

set droite ;

newdate=intnx(’month’,’01JAN2005’d, N -1) ;

p=(&a)*newdate+(&b) ;

Date=intnx(’month’,’01JAN2005’d, N -1) ;

format Date monyy7. ;

keep Date p ;

run ;

Compiler ce programme, puis visualiser la table droite. Sachant que la fonction INTNX permet de calculer desdates a partir d’un instant precis, indiquer le role des deux fonctions INTNX presentes dans l’etape DATA.

6. Afin de tenir compte de la saisonnalite, ecrire les etapes DATA suivantes :

data tmp ;

set sortie2 ;

where (Date >=’1JAN2004’d) ;

keep season ;

run ;

data tmp ;

set tmp tmp ;

run ;

Compiler ce programme, puis visualiser la table tmp. Commenter succinctement son contenu.

7. Il reste maintenant d’une part a tenir compte du facteur saisonnier dans la prevision, et d’autre part a realiserune representation graphique de cette prevision. Dans ce but, ecrire les lignes de commande suivantes :

data graph1 ;set sortie2 ;Type=1 ;adjusted=serie ;keep Date Type adjusted ;run ;data graph2 ;merge tmp droite ;adjusted=p+season ;Type=2 ;keep Date Type adjusted ;run ;

11

data graph ;

set graph1 graph2 ;

run ;

Compiler, puis visualiser le contenu de la table graph (notamment les trois dernieres annees). Qu’a-t-on realisea l’aide de ces etapes DATA ?

8. On souhaite desormais visualiser la serie brute plus les previsions pour 2005 et 2006. Dans ce but, ecrire laprocedure GPLOT suivante :(0.1cm] goptions reset=all border cback=white htitle=2 ftitle=swissb ;

goptions devmap=winansi keymap=winansi ;

axis1 label=(”Date”) ;

axis2 label=(angle=90 ”Nombre de morts en France”) order=(38000 to 60000 by 3000) ;

proc gplot data=graph ;

symbol1 i=join l=1 c=black v=none ;

symbol2 i=join l=1 c=red v=none ;

title1 ”Etude du nombre de morts en France - Periode janvier 1995 a decembre 2004” ;

title3 ”Serie brute et previsions” ;

plot adjusted*Date=Type / vaxis=axis2 haxis=axis1 ;

format Date monyy7. ;

run ;quit ;

Compiler ce programme, puis verifier que vous obtenez un diagramme similaire au diagramme suivant :

Fig. 11 : serie brute et previsions

Donner alors une estimation du nombre de deces en France pour les mois d’aout des annees 2005 et 2006 sousreserve d’uune stabilite du modele.

12