/* *********************************************************************************** */ /* CHAPITRE 16 : LA VALORISATION DES MARCHES ACTIONS */ /* *********************************************************************************** */ libname exo 'Z:\Econometrie_appliquee\donnees'; ods pdf file="Z:\Econometrie appliquee\Resultats\chapitre16.pdf"; title; ***************************************************************************************** * Intitulé des séries * ***************************************************************************************** * t3m_us = taux d'intérêt des USA à trois mois ; * t3m_fr = taux d'intérêt de la France à trois mois ; * t10y_us = taux d'intérêt des USA à dix ans ; * t10y_fr = taux d'intérêt de la France à dix ans ; * pi_fr = valeur de l'indice des prix en points (Price Index) pour la France ; * pe_fr = multiple de capitalisation associé à l'indice (Price Earning) pour la France; * pi_us = valeur de l'indice des prix en points (Price Index)pour les USA ; * pe_us = multiple de capitalisation associé à l'indice (Price Earning) pour les USA ; * **************************************** ; * Problème n°16.1 : Test de stationnarité ; * **************************************** ; * Point 1 : Test de Dickey-Fuller ; * ------------------------------- ; proc sort data=exo.chapit16; by date; run; data chapit16; set exo.chapit16; * Création des variables ey_us et ey_fr; ey_us = 1/ pe_us*100; ey_fr = 1/ pe_fr*100; run; * Analyse graphique des 2 pays; * ----------------------------; goption reset=global; legend1 frame across=1 mode=share position=(top left) offset=(75 pct, -3 pct) cshadow=grey; axis1 label=none order=('31jan1980'd to '31jan2001'd by 365) width=1 value=(h=1); axis2 label=none order=(2.5 to 20 by 2.5) width=1 value=(h=1) color=black; proc gplot data=chapit16; title "Earning Yield et taux d'interet - Etats-Unis"; symbol1 value=none color=blue i=join; symbol2 value=none color=red i=join; symbol3 value=none color=green i=join; plot (ey_us t3m_us t10y_us)*date / overlay legend=legend1 haxis=axis1 vaxis=axis2; format date year.; run; quit; goption reset=global; legend1 frame across=1 mode=share position=(top left) offset=(75 pct, -3 pct) cshadow=grey; axis1 label=none order=('31jan1980'd to '31jan2001'd by 365) width=1 value=(h=1); axis2 label=none order=(2.5 to 20 by 2.5) width=1 value=(h=1) color=black; proc gplot data=chapit16; title "Earning Yield et taux d'interet - France"; symbol1 value=none color=blue i=join; symbol2 value=none color=red i=join; symbol3 value=none color=green i=join; plot (ey_fr t3m_fr t10y_fr)*date / overlay legend=legend1 haxis=axis1 vaxis=axis2; format date year.; run; quit; * Calcul la différence entre 2 valeurs consécutives des séries T3M_US, T10Y_US et EY_US; * -------------------------------------------------------------------------------------; data chapit16; set chapit16; dt3m_us = dif(t3m_us); dt10y_us = dif(t10y_us); dey_us = dif(ey_us); t3m_us1 = lag1(t3m_us); dt3m_us1=lag1(dt3m_us); dt3m_us2=lag2(dt3m_us); dt3m_us3=lag3(dt3m_us); dt3m_us4=lag4(dt3m_us); dt3m_us5=lag5(dt3m_us); dt3m_us6=lag6(dt3m_us); dt3m_us7=lag7(dt3m_us); t=_n_; run; * Test de stationnarité de la variable T3M_US ; * ------------------------------------------- ; proc arima data=chapit16; identify var=t3m_us; run; quit; proc reg data=chapit16; model t3m_us=t; output out=res1_TS r=res p=fit; run; quit; proc arima data=res1_TS; identify var=res; run; quit; proc arima data=chapit16; identify var=t3m_us(1) minic; run; quit; proc arima data=chapit16; identify var=t3m_us stationarity=(adf=(5)); run; quit; * Test de stationnarité de la variable T10Y_US ; * ------------------------------------------- ; proc arima data=chapit16; identify var=t10y_us; run; quit; proc reg data=chapit16; model t10y_us=t; output out=res2_TS r=res p=fit; run; quit; proc arima data=res2_TS; identify var=res; run; quit; proc arima data=chapit16; identify var=t10y_us(1) minic; run; quit; proc arima data=chapit16; identify var=t10y_us stationarity=(adf=(1)); run; quit; * Test de stationnarité de la variable EY_US ; * ------------------------------------------ ; proc arima data=chapit16; identify var=ey_us; run; quit; proc reg data=chapit16; model ey_us=t; output out=res3_TS r=res p=fit; run; quit; proc arima data=res3_TS; identify var=res; run; quit; proc arima data=chapit16; identify var=ey_us(1) minic; run; quit; proc arima data=chapit16; identify var=ey_us stationarity=(adf=(1)); run; quit; * Test de stationnarité de la variable DT3M_US ; * ------------------------------------------- ; proc arima data=chapit16; identify var=dt3m_us stationarity=(adf=(5)); run; quit; * Test de stationnarité de la variable DT10Y_US ; * ------------------------------------------- ; proc arima data=chapit16; identify var=dt10y_us stationarity=(adf=(1)); run; quit; * Test de stationnarité de la variable DT10Y_US ; * ------------------------------------------- ; proc arima data=chapit16; identify var=dey_us stationarity=(adf=(1)); run; quit; * Point 2 : test EDF sur la série d'indice de prix en log ; * ------------------------------------------------------- ; data chapit16; set chapit16; lpi_us = log(pi_us); dlpi_us=dif(lpi_us); run; proc reg data=chapit16; model lpi_us=t; output out=res4_TS r=res p=fit; run; quit; proc arima data=res4_TS; identify var=res; run; quit; proc arima data=chapit16; identify var=lpi_us(1) minic; run; quit; proc arima data=chapit16; identify var=lpi_us stationarity=(adf=(1)); run; quit; proc arima data=chapit16; identify var=dlpi_us stationarity=(adf=(1)); run; quit; * ************************************************************* ; * Problème n°16.2 : Estimation de la relation de cointégration ; * ************************************************************* ; * Point 1 : Estimation par les MCO ; * -------------------------------- ; proc reg data=chapit16; model ey_us=t3m_us t10y_us / dw; output out=result_us r=res_us p=eylt_us; run; quit; * Point 2 : Test de stationnarité ; * ------------------------------- ; proc arima data=result_us; identify var=res_us minic; run; quit; proc arima data=result_us; identify var=res_us stationarity=(adf=(1)); run; quit; * Point 3 : Modèle à correction d'erreur ; * -------------------------------------- ; data result_us; set result_us; res1_us = lag1(res_us); run; * Modèle 1; * --------; proc reg data=result_us; model dey_us = dt3m_us dt10y_us res1_us; run; quit; * Modèle 2; * --------; proc reg data=result_us; model dt3m_us = dey_us dt10y_us res1_us; run; quit; * Modèle 3; * --------; proc reg data=result_us; model dt10y_us = dey_us t3m_us res1_us; run; quit; * ************************************************************* ; * Problème n°16.3 : Indicateur de valorisation ; * ************************************************************* ; * Point 1 : Analyse graphique : indicateur de valorisation ; * -------------------------------------------------------- ; data result_us; set result_us; inf_us=-1; /* borne inf. de l'IC de l'indicateur de valorisation à 65% */ sup_us=1; /* borne sup. de l'IC de l'indicateur de valorisation à 65% */ run; proc reg data=result_us noprint; model ey_us = t3m_us t10y_us; output out=result2_us r=res2_us stdr=stdr2_us p=ey_us_pred2; run; quit; data result2_us; set result2_us; iv_us=res2_us / stdr2_us; /* Indicateur de valorisation des USA */ run; goption reset=global; legend1 frame across=1 mode=share position=(top left) offset=(75 pct, -3 pct) cshadow=grey; axis1 label=none order=('31jan1980'd to '31jan2001'd by 365) width=1 value=(h=1); axis2 label=none order=(-3 to 5 by 1) width=1 value=(h=1) color=black; proc gplot data=result2_us; title "Indicateur de valorisation - Etats-unis"; symbol1 value=none color=blue i=join; symbol2 value=none color=blue i=join; symbol3 value=none color=red i=join; plot (inf_us sup_us iv_us)*date / overlay legend=legend1 haxis=axis1 vaxis=axis2; format date year.; run; quit; * Point 2 : Niveau théorique de l'indice et intervalle de confiance ; * ----------------------------------------------------------------- ; data result2_us; set result2_us; e_us = pi_us / pe_us; /* Calcul des bénéfices */ pilt_us= 100*e_us / eylt_us; /* Price index de long terme théorique */ pinf_us = 100*e_us / (eylt_us+stdr2_us); /* Price index théorique min */ psup_us = 100*e_us / (eylt_us-stdr2_us); /* Price index théorique max */ run; goption reset=global; legend1 frame across=1 mode=share position=(top left) offset=(8 pct, -3 pct) cshadow=grey; axis1 label=none order=('31jan1980'd to '31jan2001'd by 365) width=1 value=(h=1); axis2 label=none order=(0 to 1500 by 250) width=1 value=(h=1) color=black; proc gplot data=result2_us; title "Price index de long terme theorique - Etats-unis"; symbol1 value=none color=blue i=join; symbol2 value=none color=blue i=join; symbol3 value=none color=red i=join; plot (pinf_us psup_us pilt_us)*date / overlay legend=legend1 haxis=axis1 vaxis=axis2; format date year.; run; quit; goption reset=global; legend1 frame across=1 mode=share position=(top left) offset=(8 pct, -3 pct) cshadow=grey; axis1 label=none order=('31jan1980'd to '31jan2001'd by 365) width=1 value=(h=1); axis2 label=none order=(0 to 1400 by 200) width=1 value=(h=1) color=black; proc gplot data=result2_us; title "Price index et niveau theorique - Etats-unis"; symbol1 value=none color=blue i=join; symbol2 value=none color=red i=join; plot (pi_us pilt_us)*date / overlay legend=legend1 haxis=axis1 vaxis=axis2; format date year.; run; quit; * Point 3 : Degré de surévaluation de l'indice boursier ; * ----------------------------------------------------- ; data result2_us; set result2_us; d_us = 100*(pi_us-pilt_us) / pilt_us; /* Degré de surévaluation des USA */ run; goption reset=global; legend1 frame across=1 mode=share position=(top left) offset=(8 pct, -3 pct) cshadow=grey; axis1 label=none order=('31jan1980'd to '31jan2001'd by 365) width=1 value=(h=1); axis2 label=none order=(-40 to 80 by 20) width=1 value=(h=1) color=black ; proc gplot data=result2_us; title "Degre de surevaluation de l'indice boursier - Etats-unis"; symbol1 value=none color=blue i=join; plot d_us*date / overlay legend=legend1 haxis=axis1 vaxis=axis2 vref=0; format date year.; run; quit; ods pdf close;