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 27-03-2009 10:03:59

nizarcom
membre extérieur
Date d'inscription: 08-01-2009
Messages: 21

manup des tables sas

Bonjour,

svp, est ce que quelqu'un peut me donner des indications, pour que je puisse ajouter une colonne dans une table sas,
la table que j'ai contient  3 colones , une pour date en format date.9, la deuxième colonne est sous format month (c'est à dire mois) et la troisième c'est SP500 en points (indice boursier), mon but est de vouloir calculer le rendement ou la performance par mois pour chaque année, une manière de dire que le rendement de sp500 pour le mois may de l'année 2006 est de tant, comment je peux ajouter cette colonne svp.

je vous remercie infiniment, si ce n'est pour des indications pour ce problème, c'est pour les deux fois que vous avez m'apporter l'aide.

Hors ligne

 

#2 27-03-2009 11:12:10

alaa-eddine
Member
Date d'inscription: 07-03-2007
Messages: 398

Re: manup des tables sas

Elle est comment votre série sp500 ?  Journalière ou mensuelle ?

Hors ligne

 

#3 27-03-2009 11:25:04

nizarcom
membre extérieur
Date d'inscription: 08-01-2009
Messages: 21

Re: manup des tables sas

les données sur sp500, dont je dispose sont journalière

Hors ligne

 

#4 27-03-2009 13:35:54

alaa-eddine
Member
Date d'inscription: 07-03-2007
Messages: 398

Re: manup des tables sas

Donc c'est un rendement moyen par mois et par année que vous voulez avoir... si mes souvenirs en finance sont bons.

Voici un code qui permet de faire ça, j'espère que cela répond à votre question :

Code:

/* je génère une table de données*/

data ma_base ;
format date DDMMYY10. ;
date="2MAR1999"d ;
do i=1 to 1000 ;
date=date+1 ;
sp500=rannor(-1) ;
output ;
end ;
drop i ;
run;

/*Calcul du rendement*/

data ma_base ; set ma_base ;

annee=year(date) ; /*création de la colone année*/
mois=month(date) ; /*création mois, mais ça vous l'avez déja*/

sp500_1=lag1(sp500) ; /*serie retardée*/

rdt=(sp500-sp500_1)/sp500_1 ; /*calcul du rendrement (si mes souvenirs sont bons...)*/ 

drop sp500_1 ;

run;

/*Calcul du rendement moyen par mois annee*/

proc sort data=ma_base ;by annee mois;run;
proc means data=ma_base noprint ;
by annee mois ;
var rdt ;
output out=moy_rdt_y_m(drop=_type_ _freq_) mean=rdt_m ;
run;

/*petit graphique*/

data moy_rdt_y_m ; set moy_rdt_y_m ;
if mois < 10 then do ;
time=compress(annee!!"/"!!"0"!!mois) ;
end ;
else do ;
time=compress(annee!!"/"!!mois) ;
end ;
run;

ods html style=journal ;
goption reset=all ;
goption device=javaimg ;
symbol i=join v=dote ;
axis1 label=("Rendement moyen") ;
proc gplot data=moy_rdt_y_m ;
plot rdt_m*time / vaxis=axis1 ;
run;
quit ;
ods html close ;

Hors ligne

 

#5 27-03-2009 14:53:37

nizarcom
membre extérieur
Date d'inscription: 08-01-2009
Messages: 21

Re: manup des tables sas

je te remercie alea eddine, ça marche

Hors ligne

 

Pied de page des forums

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson

[ Generated in 0.025 seconds, 9 queries executed ]