**AUTEUR : Isabelle CADORET-DAVID** OPEN DATA modmacro.wks CAL 1947 1 4 ALL 1988:1 DATA(FORMAT=wks,ORG=obs) SET ydiff = gnp-gnp{1} SET rsum = taux+taux{1} SET mdiff = m-m{1} SMPl 1950:1 1985:4 ***définition des équations*** EQUATION cons1 cons # CONSTANT gnp cons{1} EQUATION invest1 invest # CONSTANT invest{1} ydiff{1} gnp taux{4} EQUATION taux1 taux # CONSTANT gnp ydiff mdiff rsum{1} DISP '*****************************************************************************' DISP '***Estimation du modele macro avec la méthode des MCO***' DISP '*****************************************************************************' LINREG(EQUATION=cons1) LINREG(EQUATION=invest1) LINREG(EQUATION=taux1) DISP '*****************************************************************************' DISP '***Estimation du modele macro avec la méthode des TMC***' DISP '*****************************************************************************' INSTRUMENT CONSTANT cons{1} invest{1} ydiff{1} gnp{1} $ govt mdiff rsum{1} taux{4} SUR(INST) 3 # cons1 # invest1 # taux1 * DISP '*****************************************************************************' DISP '***Estimation du modele macro avec la méthode des DMC***' DISP '*****************************************************************************' INSTRUMENT CONSTANT cons{1} invest{1} ydiff{1} gnp{1} $ govt mdiff rsum{1} taux{4} LINREG(INST,FRML=conseq) cons / residcons # CONSTANT gnp cons{1} LINREG(INST,FRML=investeq) invest / residinvest # CONSTANT invest{1} ydiff{1} gnp taux{4} LINREG(INST,FRML=tauxeq) taux / residtaux # CONSTANT gnp ydiff mdiff rsum{1} DISP '*****************************************************************************' DISP '***test d"exogénité de la variable cons{1}***' DISP '*****************************************************************************' INSTRUMENT CONSTANT cons{1} invest{1} ydiff{1} gnp{1} $ govt mdiff rsum{1} taux{4} LINREG(INST) cons # CONSTANT gnp cons{1} COMPUTE [symmetric] cov2sls=%seesq*%xx COMPUTE [vector] beta2sls=%beta INSTRUMENT CONSTANT invest{1} ydiff{1} gnp{1} $ govt mdiff rsum{1} taux{4} LINREG(INST) cons # CONSTANT gnp cons{1} COMPUTE [symmetric] cove=%seesq*%xx COMPUTE [vector] betae=%beta COMPUTE vbeta =beta2Sls-betae COMPUTE vvar = (cove-cov2sls) COMPUTE ivvar = inv(vvar) COMPUTE wald = %qform(ivvar,vbeta) CDF CHISQ wald 1 ***************************************************************************** ***Création du modèle composé des équations de comportement et des équations d'identité*** ***************************************************************************** FRML(IDENTITY) gnpid gnp = cons+invest+govt FRML(IDENTITY) rsumid rsum = taux+taux{1} FRML(IDENTITY) ydiffid ydiff = gnp-gnp{1} GROUP modele conseq>>f_cons investeq>>f_invest $ tauxeq>>f_taux gnpid>>f_gnp rsumid ydiffid DISP '*****************************************************************************' DISP '***Prévision hors échantillon du modele macro ***' DISP '*****************************************************************************' SMPL LINREG(DEFINE=moneyeq) m # CONSTANT m{1 2} LINREG(DEFINE=govteq) govt # CONSTANT govt{1 2} FRMPL(IDENTITY) mdiffid mdiff = m-m{1} GROUP exogs moneyeq govteq mdiffid SMPL 1986:1 1990:4 FORECAST(MODEL=exogs+modele,PRINT) DISP '*****************************************************************************' DISP '***Calcul des multiplicateurs ***' DISP '*****************************************************************************' SMPL SMPL 1984:1 1985:4 FORECAST(MODEL=modele,RESULTS=base) **simulation du modèle** COMPUTE govt(1984:1)=govt(1984:1)+2.0 **augmentation des dépenses publiques de 2 unités** FORECAST(MODEL=modele,RESULTS=mults) **simulation suite au choc de dépense** COMPUTE govt(1984:1)=govt(1984:1)-2.0 **remise des dépenses publiques à leur niveau initial** do i=1,%rows(mults) set mults(i) = (mults(i)-base(i))/2.0 labels mults(i) # 'M_'+%label([series]%modeldepvars(modele)(i)) end do i print / mults SMPL SMPL 1951:1 1985:4 DISP '*****************************************************************************' DISP '***Simulations statiques***' DISP '*****************************************************************************' STEPS(MODEL=modele) GRAPH(KEY=UPLEFT,PATTERNS) 2 # cons # f_cons GRAPH(KEY=UPLEFT,PATTERNS) 2 # invest # f_invest GRAPH(KEY=UPLEFT,PATTERNS) 2 # taux # f_taux DISP '*****************************************************************************' DISP '***Simulations dynamique***' DISP '*****************************************************************************' FORECAST(MODEL=modele) GRAPH(KEY=UPLEFT,PATTERNS) 2 # cons # f_cons GRAPH(KEY=UPLEFT,PATTERNS) 2 # invest # f_invest GRAPH(KEY=UPLEFT,PATTERNS) 2 # taux # f_taux DISP '*****************************************************************************' DISP '***Simulations historique***' DISP '*****************************************************************************' SMPL THEIL(SETUP,MODEL=modele) 6 4 1985:1 *utilise les données historiques pour mesurer la qualité prédictive du modele** DO time=1982:1,1985:1 THEIL time END DO time THEIL(DUMP,WINDOW='Forecast Performance') DISP '*****************************************************************************' DISP '***Simulations de monte carlo des prévisions du modèle***' DISP '*****************************************************************************' VCV(MATRIX=V) # residcons residinvest residtaux GROUP(VCV=V) modelev conseq>>s_cons investeq>>s_invest $ tauxeq>>s_taux gnpid>>s_gnp rsumid ydiffid COMPUTE ndraws=500 SMPL 1985:2 1988:1 DO draws=1,ndraws SIMULATE(MODEL=modelev) END DO draws STATS(FRACTILES) s_cons STATS(FRACTILES) s_invest STATS(FRACTILES) s_taux SMPL DISP '*****************************************************************************' DISP '***Simulations bootstrap des prévisions du modèle***' DISP '*****************************************************************************' GROUP modeleb conseq>>b_cons investeq>>b_invest $ tauxeq>>b_taux gnpid>>b_gnp rsumid ydiffid SMPL 1985:2 1988:4 DO draws=1,ndraws BOOT entries / 1951:1 1985:1 SET p1 = residcons(entries(t)) SET p2 = residinvest(entries(t)) SET p3 = residtaux(entries(t)) FORECAST(MODEL=modeleb,paths) #p1 p2 p3 END DO draws STATS(FRACTILES) b_cons STATS(FRACTILES) b_invest STATS(FRACTILES) b_taux