Le forum du Master ESA économétrie et statistique appliquée - Université d'Orléans

Vous n'êtes pas identifié.

Annonce

Vous êtes sur le forum du master ESA !

Le site du master ESA - description de la formation, notes de cours, contacts... vient de déménager !!!

Venez visiter notre nouveau site : www.master-esa.fr

#1 12-08-2010 14:55:26

cumpaz23
membre extérieur
Date d'inscription: 12-08-2010
Messages: 14

Problème pour prévision de la Value at Risk out-of-sample sous SAS

Bonjour à tous,

Je dois prédire la VaR out-of-sample des mes rendements de Brent par l'intermédiaire d'un GED-EGARCH(1,1)
pour cela j'utilise la macro SAS suivante:






/*importation des données*/
data brent;
infile 'F:\chemin\brent.csv' dlm=';';
input date rdt;
run;

data brent(keep=date rdt);
proc sort data = in.brent; by date; run; quit;

*------------ Représentation Graphique des Rendements --------------;
title 'Rendements du cours du Brent';
proc gplot data=in.brent;
plot rdt*date / legend;
symbol i=join c=black;
label rdt='rendement';
run;
quit;
*----------------- Construction Macro VaR Out of Sample ---------------------;

/*------- Idée de la Macro : Estimation du modèle GARCH sur les 75% premières observations
                            et prévision de la VaR out-of-sample pour les 25% restantes en utilisant
                            des échantillons glissants */
/*     Les inputs de la macro sont :
       database : Nom de la base de données où se trouve les rendements;
       varname  : Le nom donné à la série des rendements dans la base précédente
       insize   : la taille de l échantillon d estimation (in-sample). Elle est ici
                 égale à T*0.75 avec T la taille totale de l échantillon
       tc       : le taux de couverture de la VaR (1% ou 5%) */

%macro VaROutofSample(database=brent,varname=rdt,insize=1311,tc=5%);

*---- On change le nom de la variable de rendement en y;

data ChangeName;
set brent;
rename rdt=y;
run;

*---- On récupère le nombre total d observations dans la macro-variable nobs;

data ChangeName;
set brent;
call symput('nobs',_n_);
run;

*------------------------ Grande boucle pour calcul des VaR out-of-sample;

*------- Construction de l échantillon d estimation rolling;

%let fin = %sysevalf(&nobs-&insize);
%do i=1 %to &fin;
  %let o = %sysevalf(&insize-1+&i);
   data insample;
   set ChangeName;
   if _n_>=&i and _n_<=&o then output;
   run;


   *------ Estimation du modèle Garch sous loi normale;

proc model data = insample outparms=param;
parms c .0 arch0 .1 arch1 .2 garch1 .75 ;
/* Equation moyenne*/;
  y = c ;
/* Equation variance*/;
h.y = arch0 + arch1*xlag(resid.y**2,mse.y)+garch1*xlag(h.y,mse.y);
/* Estimation du modèle*/;
fit y / method = marquardt fiml out=ResultGarchNormal(drop=_estype_ _type_ _weight_) outactual;
outvars date  y h.y;
run ;
quit ;

data ResultGarchNormalLast;
set ResultGarchNormal;
if _n_=&insize then output;
run;

data param;
set param;
call symput('const',c);
call symput('w',arch0);
call symput('alpha',arch1);
call symput('beta',garch1);
run;

data VaR;
set ResultGarchNormalLast;
h_prev = &w+&alpha*(y-&const)**2+&beta*h_y;
VaR = &const+quantile('normal',&tc)*sqrt(h_prev);
run;

%if &i=1 %then %do;
data RecupVaR;
set VaR;
run;
%end;
%else %do;
data RecupVaR;
set RecupVaR VaR;
run;
%end;

%end;

proc gplot data=RecupVaR;
plot y*date=1 VaR*date=2 / overlay;
symbol1 i=join v=none c=black;
symbol2 i=join v=none c=red;
run; quit;


%mend;

%VaROutofSample(database=in.brent,varname=rdt,insize=1311,tc=0.05);



Lorsque je run ce programme, le programme tourne mais je n'obtiens aucun résultats et je reçois le message d'erreur suivant

ERROR: Variable DATE introuvable.
ERROR: Variable DATE introuvable.
NOTE: L'instruction précédente a été supprimée.

NOTE: Aucune observation dans la table WORK.RECUPVAR.

NOTE: Procédure GPLOT a utilisé (Durée totale du traitement) :
      temps réel          0.00 secondes
      temps UC            0.00 secondes



Si quelqu'un pouvait m'aider je lui serai très reconnaissant.
Merci d'avance.

Hors ligne

 

#2 12-08-2010 15:30:36

esa_sr
Administrator
Date d'inscription: 21-02-2007
Messages: 5898
Site web

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

commençons par le commencement :

Code:

/*importation des données*/
data brent;
infile 'F:\chemin\brent.csv' dlm=';';
input date rdt;
run;

quelle forme ont vos dates dans votre fichiers CSV ?
il est étonnant que vous puissiez gérer vos dates dans utiliser d'INFORMAT...

a+

Hors ligne

 

#3 13-08-2010 08:17:48

cumpaz23
membre extérieur
Date d'inscription: 12-08-2010
Messages: 14

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

Bonjour esa_sr,

mes données ont le format txt dans mon fichier csv.

Cdt.

Hors ligne

 

#4 13-08-2010 08:35:55

esa_sr
Administrator
Date d'inscription: 21-02-2007
Messages: 5898
Site web

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

ma question portait sur la forme des dates - à quoi ressemble-t-elle ?

01jan2010 ?
01/01/2010 ?
... ?

a+

Hors ligne

 

#5 13-08-2010 09:43:21

esa_sr
Administrator
Date d'inscription: 21-02-2007
Messages: 5898
Site web

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

et la question suivante sera :
qu'est ce qui sépare dans votre fichier CSV les modalités de date et de rdt

et la question d'après sera :
mais quelle est le séparateur décimal de votre rendement ? . ou , ?

a+

Hors ligne

 

#6 13-08-2010 10:55:47

cumpaz23
membre extérieur
Date d'inscription: 12-08-2010
Messages: 14

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

esa_sr,

-Les dates sont de la forme mm/dd/yy c'est à dire 8/20/2003 par exemple
-Les modalités de date et les rdt sont séparés par des ";".
-Le séparateur décimal des rendements est "."

Merci.

Hors ligne

 

#7 13-08-2010 11:03:27

esa_sr
Administrator
Date d'inscription: 21-02-2007
Messages: 5898
Site web

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

alors votre table n'est pas créée (et donc, calculer une VaR à partir d'une table qui n'existe pas..)

Code:

/*importation des données*/
data brent;
infile 'F:\chemin\brent.csv' dlm=';';
input date :mmddyy10.  rdt;
run;

vous me semblez être un bon candidat pour devenir lecteur de mon bouquin ;-)
www.sas-sr.com

a+

Hors ligne

 

#8 13-08-2010 11:16:50

cumpaz23
membre extérieur
Date d'inscription: 12-08-2010
Messages: 14

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

Merci. J'ai fait le code suivant

/*importation des données*/
data brent;
infile 'F:\chemin\brent.csv' dlm=';';
input date :mmddyy10.  rdt;
run;

et j'obtient


NOTE: Données incorrectes pour rdt à la ligne 1 11-12.
REGLE :   ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
1         8/20/2003;NA 12
date=15937 rdt=. _ERROR_=1 _N_=1
NOTE: 1748 enregistrements lus dans infile 'F:\Mémoire mineur\Modélisation appliquée à la finance\brent.csv'.
      La longueur min. de l'enregistrement était 12.
      La longueur max. de l'enregistrement était 20.
NOTE: La table WORK.BRENT a 1748 observation(s) et 2 variable(s).
NOTE: L'étape DATA a utilisé (Durée totale du traitement) :
      temps réel          0.18 secondes
      temps UC            0.14 secondes

Hors ligne

 

#9 13-08-2010 11:21:17

esa_sr
Administrator
Date d'inscription: 21-02-2007
Messages: 5898
Site web

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

NA : non calculé

maintenant, j'ai du mal à comprendre ce que votre "12" fait là ?

il y a une troisième variable dans votre fichier CSV ?

a+

Hors ligne

 

#10 13-08-2010 11:26:31

cumpaz23
membre extérieur
Date d'inscription: 12-08-2010
Messages: 14

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

Il n'y a que deux variables: la variable "date" qui correspond à ma dimension temporelle et la variable "rdt" pour mes rendements.

Hors ligne

 

#11 13-08-2010 12:02:12

cumpaz23
membre extérieur
Date d'inscription: 12-08-2010
Messages: 14

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

esa_sr,

J'ai retiré la première ligne avec la valeur NA, importé les données, puis run le programme et j'ai toujours le même problème la variable DATE est introuvable.

Hors ligne

 

#12 13-08-2010 12:51:55

esa_sr
Administrator
Date d'inscription: 21-02-2007
Messages: 5898
Site web

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

passons maintenant à la seconde instruction de votre programme :

Code:

data brent(keep=date rdt);
proc sort data = in.brent; by date; run; quit;

à la fin du premier lot d'instruction, vous avez créé une table BRENT

maintenant, avec la première instruction de ce second lot :
data brent (keep=date rdt);

vous demandez à SAS de créer à nouveau brent (et donc SAS va le faire mais il va détruire la table brent créée précédemment)

il manque une instruction SET BRENT;

Petite remarque (ne le prenez pas mal) : tel que je le vois actuellement, vous tentez de faire fonctionner une macro que vous avez récupéré certainement sur notre site de prévision de la VaR en ligne sans n'avoir jamais utilisé SAS.

Ça ne va pas être simple...

Hors ligne

 

#13 13-08-2010 13:14:03

cumpaz23
membre extérieur
Date d'inscription: 12-08-2010
Messages: 14

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

esa_sr,

La macro m'a été transmise pas l'un des mes prof, mais comme je suis novice en sas il est effectivement difficile
pour moi de la comprendre et de la faire tourner.

Cdt

Hors ligne

 

#14 13-08-2010 13:18:13

esa_sr
Administrator
Date d'inscription: 21-02-2007
Messages: 5898
Site web

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

ensuite, autre problème, vous faites référence à une bibliothèque IN

(proc sort data=in.brent..)

qui n'existe pas

remplacez par proc sort data=brent

mais, il faudrait que je vérifie, cette macro me semble sortir de chez nous :
http://193.49.79.89/esa_prof/index.php

a+

Hors ligne

 

#15 13-08-2010 13:20:34

cumpaz23
membre extérieur
Date d'inscription: 12-08-2010
Messages: 14

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

Elle sort très certainement de chez vous car c'est Mr Tokpavi qui me l'a transmise.

En fait j'ai cré la bibliothèque IN avec un libname.

Hors ligne

 

#16 13-08-2010 13:53:58

sspdiddy
Member
Date d'inscription: 29-04-2009
Messages: 146

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

Bonjour,

Au fait c'est pour quand la mise en place de la VAR-multivariée sur le site (prevision value at risk)...smile...il m'a semblé que des étudiants ont obtenu des résultats plutôt satisfaisant lors des derniers projets

Bien à vous,

Dernière modification par sspdiddy (13-08-2010 13:54:35)

Hors ligne

 

#17 13-08-2010 15:41:45

esa_sr
Administrator
Date d'inscription: 21-02-2007
Messages: 5898
Site web

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

sspdiddy a écrit:

Bonjour,

Au fait c'est pour quand la mise en place de la VAR-multivariée sur le site (prevision value at risk)...smile...il m'a semblé que des étudiants ont obtenu des résultats plutôt satisfaisant lors des derniers projets

Bien à vous,

et bien on vous colle dessus à la rentrée ?

a+

Hors ligne

 

#18 13-08-2010 15:42:10

esa_sr
Administrator
Date d'inscription: 21-02-2007
Messages: 5898
Site web

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

cumpaz23 a écrit:

Elle sort très certainement de chez vous car c'est Mr Tokpavi qui me l'a transmise.

En fait j'ai cré la bibliothèque IN avec un libname.

il faudra lui donner notre bonjour !

a+

Hors ligne

 

#19 15-08-2010 09:29:32

cumpaz23
membre extérieur
Date d'inscription: 12-08-2010
Messages: 14

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

Pas de problème!

Pour le chargement des données, j'ai fait comme vous m'avez dit mais lorsque je fais tourner la macro la macro-variable "nobs"
n'est pas connue.

Hors ligne

 

#20 15-08-2010 10:29:26

esa_ch
Moderator
Date d'inscription: 21-02-2007
Messages: 1415

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

Refonte du site programmée pour novembre : modification de la mise en page, inclusion du VaR multi etc.. + intégration des données utilisateurs...
CH

Hors ligne

 

#21 15-08-2010 16:02:52

esa_sr
Administrator
Date d'inscription: 21-02-2007
Messages: 5898
Site web

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

cumpaz23 a écrit:

Pas de problème!

Pour le chargement des données, j'ai fait comme vous m'avez dit mais lorsque je fais tourner la macro la macro-variable "nobs"
n'est pas connue.

nobs est crée ici :

data ChangeName;
set brent;
call symput('nobs',_n_);
run;

si elle n'est pas créée, c'est que la table BRENT n'existe toujours pas...

faites un proc print sur brent et regardez ce que vous avez dans cette table (si elle existe...)


a+

Hors ligne

 

#22 16-08-2010 07:11:35

cumpaz23
membre extérieur
Date d'inscription: 12-08-2010
Messages: 14

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

Bonjour esa_sr,

La bibliothèque "in" est créée et les données importées par les commandes:

*---------------------------- Création Bibliothèque -------------------------;

libname in 'F:\chemin;
*----------------------- Importation Base de Données -----------------------;

/*importation des données*/
data brent;
infile 'F:\chemin\brent.csv' dlm=';';
input date:mmddyy10. rdt;
format date:mmddyy10.;
run;

data brent(keep= date rdt);
set brent;
run;
PROC PRINT DATA=in.brent;
RUN; QUIT;


proc sort data = brent; by date; run; quit;


j'ai vérifié, la table "Brent" existe bien.
J'ai ensuite contruit la macro


*----------------- Construction Macro VaR Out of Sample ---------------------;

%macro VaROutofSample(database=brent,varname=rdt,insize=1311,tc=5%);

*---- On change le nom de la variable de rendement en y;

data ChangeName;
set &brent;
rename &rdt=y;
run;

*---- On récupère le nombre total d observations dans la macro-variable nobs;

data ChangeName;
set ChangeName;
call symput('nobs',_n_);
run;

*------------------------ Grande boucle pour calcul des VaR out-of-sample;

*------- Construction de l échantillon d estimation rolling;

%let fin = %sysevalf(&nobs-&insize);
%do i=1 %to &fin;
  %let o = %sysevalf(&insize-1+&i);
   data insample;
   set ChangeName;
   if _n_>=&i and _n_<=&o then output;
   run;


   *------ Estimation du modèle Garch sous loi normale;

proc model data = insample outparms=param;
parms c .0 arch0 .1 arch1 .2 garch1 .75 ;
/* Equation moyenne*/;
  y = c ;
/* Equation variance*/;
h.y = arch0 + arch1*xlag(resid.y**2,mse.y)+garch1*xlag(h.y,mse.y);
/* Estimation du modèle*/;
fit y / method = marquardt fiml out=ResultGarchNormal(drop=_estype_ _type_ _weight_) outactual;
outvars date  y h.y;
run ;
quit ;

data ResultGarchNormalLast;
set ResultGarchNormal;
if _n_=&insize then output;
run;

data param;
set param;
call symput('const',c);
call symput('w',arch0);
call symput('alpha',arch1);
call symput('beta',garch1);
run;

data VaR;
set ResultGarchNormalLast;
h_prev = &w+&alpha*(y-&const)**2+&beta*h_y;
VaR = &const+quantile('normal',&tc)*sqrt(h_prev);
run;

%if &i=1 %then %do;
data RecupVaR;
set VaR;
run;
%end;
%else %do;
data RecupVaR;
set RecupVaR VaR;
run;
%end;

%end;

proc gplot data=RecupVaR;
plot y*date=1 VaR*date=2 / overlay;
symbol1 i=join v=none c=black;
symbol2 i=join v=none c=red;
run; quit;


%mend;

%VaROutofSample(database=in.brent,varname=rdt,insize=1311,tc=0.05);


et j'obtient la chose suivante:


                         -              -
                            22             200
                            200
ERROR 22-322: Erreur de syntaxe ; syntaxe requise : un nom, une chaîne entre guillemets, ;, END, INDSNAME, KEY, KEYS, NOBS, OPEN,
              POINT, _DATA_, _LAST_, _NULL_.

ERROR 200-322: Le symbole n'est pas reconnu et sera ignoré.

1  ! data ChangeName; set &brent; rename &rdt=y; run;
                                           -
                                           22
WARNING: Référence symbolique apparente BRENT non traitée.
WARNING: Référence symbolique apparente RDT non traitée.

ERROR 22-322: Erreur de syntaxe ; syntaxe requise : un nom, ;.

NOTE: Le Système SAS a interrompu le traitement de cette étape en raison d'erreurs.
WARNING: La table WORK.CHANGENAME est peut-être incomplète.  Lorsque cette étape a été stoppée, il y avait 0 observation(s) et 2
         variable(s).
NOTE: L'étape DATA a utilisé (Durée totale du traitement) :
      temps réel          0.01 secondes
      temps UC            0.01 secondes




NOTE: Valeurs numériques converties en valeurs caractères aux emplacements indiqués par : (Ligne):(Colonne).
      1:104
NOTE:  0 observation(s) lue(s) dans la table WORK.CHANGENAME.
NOTE: La table WORK.CHANGENAME a 0 observation(s) et 2 variable(s).
NOTE: L'étape DATA a utilisé (Durée totale du traitement) :
      temps réel          0.01 secondes
      temps UC            0.01 secondes


WARNING: Référence symbolique apparente NOBS non traitée.
WARNING: Référence symbolique apparente NOBS non traitée.
ERROR: Opérande caractère trouvé dans la fonction %EVAL ou condition %IF là où un opérande numérique est requis. La condition
       était : &nobs-1311
ERROR: L'exécution de la macro VAROUTOFSAMPLE va s'arrêter.


Pourtant le table "brent" existe bien.
Merci d'avance.

Hors ligne

 

#23 16-08-2010 08:03:49

sspdiddy
Member
Date d'inscription: 29-04-2009
Messages: 146

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

Bonjour,
il y a une erreur dans le paramétrage de votre macro, par exemple
%macro VaROutofSample(database=brent,varname=rdt,insize=1311,tc=5%);

*---- On change le nom de la variable de rendement en y;

data ChangeName;
set &brent;************ici c'est plutot &database
rename &rdt=y;*************ici plutot &varname,il ya un souci avec la synatxe du rename aussi réf.(bouquin de mr ringuédé)
run;

remplacer ceci dans le programme

a+

Dernière modification par sspdiddy (16-08-2010 08:05:23)

Hors ligne

 

#24 16-08-2010 08:10:33

cumpaz23
membre extérieur
Date d'inscription: 12-08-2010
Messages: 14

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

Ok merci je vais essayer.

a+

Hors ligne

 

#25 16-08-2010 08:33:25

cumpaz23
membre extérieur
Date d'inscription: 12-08-2010
Messages: 14

Re: Problème pour prévision de la Value at Risk out-of-sample sous SAS

sspdiddy,

Merci pour tes conseils, la macro a marchée pour un garch sous loi normale. Reste maintenant à voir si elle marche pour un
EGARCH sous GED....!

Hors ligne

 

Pied de page des forums

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson

[ Generated in 0.028 seconds, 6 queries executed ]