'===========Quartalsdaten einlesen wfopen {%path}{%BIP}.xlsx range={%BIP}!A6 pagerename {%BIP} Quartal delete(noerr) gr_{%BIP} group gr_{%BIP} {%BIP}_* for !q=1 to 3 gr_{%BIP}.drop {%BIP}_1999_{!q} next '===============Indikatoren einlesen========== pagecreate(page=Monat) m 1991 {%enddate} !nindi=0 for %v {%indi} !nindi=!nindi+1 next vector(!nindi) vhard=0 for !ici=1 to !chard vhard(!ici)=1 'nur hard data next !icount_indi=1 for %v {%indi} pageselect Monat smpl @all import {%path}{%v}.xlsx range={%v}!A6 @freq m 1991m1 !biplag=0 if !mrel>1 then !biplag=1 endif if !mrel=1 and vhard(!icount_indi)=1 then !biplag=1 endif '---------------------------------------------------- group gr_{%v} 'Indikator for !yr=1999 to {%enddate} for !m=1 to 12 gr_{%v}.add {%v}_{!yr}_{!m} next '!m next '!yr for !m=1 to 11 gr_{%v}.drop {%v}_1999_{!m} next !icm=gr_{%v}.@count-3+!mrel genr dum=@seas(1)+@seas(2)+@seas(4)+@seas(5)+@seas(7)+@seas(8)+@seas(10)+@seas(11) '================================================= 'Quartalsberechnung pageselect Quartal !ic=gr_{%BIP}.@count group gr_forc1_{%v} group gr_forc2_{%v} group gr_forc_ar import {%path}{%BIP}.xlsx range={%BIP}_first!A6 @freq q 1991m1 'First releases for !rel=1+!biplag to !ic 'Welche release (für BIP: 1=2000q1 forecast und release) if !rel*3>!icm then exitloop endif if %release="real" then 'real-time smpl @all genr temp=gr_{%BIP}(!rel-!biplag) genr temp_pc=@pc(temp) endif if %release="final" then 'final smpl @all delete(noerr) help temp temp_pc genr help=gr_{%BIP}(!rel) %C=help.@last smpl @first {%C}-!biplag genr temp=gr_{%BIP}(!ic) 'Final GDP genr temp_pc=@pc(temp) endif ' real-time oder final if %release="first" then delete(noerr) help temp temp_pc smpl @all genr help=gr_{%BIP}(!rel) %C=help.@last smpl @first {%C}-!biplag genr temp=bip_first_niv genr temp_pc=bip_first endif ' real-time oder final pageselect Monat delete(noerr) temp temp_pc copy(c=t) Quartal\temp Monat\temp 't=quadratic match sum copy Quartal\temp_pc Monat\temp_pc 'Benchmark-Modell --------------------------------------- pageselect Quartal equation eq_ar.ls temp_pc c temp_pc(-1) %lastb=temp_pc.@last smpl {%lastb}+1 {%lastb}+!biplag+!hor eq_ar.forecast(f=na) temp_ar_rel{!rel} smpl {%lastb}+!biplag {%lastb}+!biplag temp_ar_rel{!rel}=NA smpl {%lastb}+1+!biplag {%lastb}+!biplag+!hor gr_forc_ar.add temp_ar_rel{!rel} '-------Monatsanalyse------ pageselect Monat genr ygs=NA smpl if dum=0 genr mtemp_pc=@mean(temp_pc) 'Mean of GDP growth genr ygs=temp_pc-mtemp_pc 'Mittelwertbereinigt (durch Quartalsmittelwert) scalar mygs=mtemp_pc(3) smpl @all genr hygs=@pc(temp)-@mean(@pc(temp)) 'mit monatlichen Mittelwert bereinigt delete(noerr) tempx xgs hxgs 'Demeaning of indicator if %releasem="real" then genr tempx=gr_{%v}(4-!mrel + !rel*3-3) endif if %releasem="final" then delete(noerr) DD smpl @all genr DD=gr_{%v}(4-!mrel + !rel*3-3) %D=DD.@last smpl @first %D genr tempx=gr_{%v}(gr_{%v}.@count) smpl @all endif if %v="IP" or %v="ord" or %v="dax" then genr xgs=@pc(tempx)-@mean(@pc(tempx)) else 'für surveys wird Mittelwert der levels verwendet genr xgs=(tempx)-@mean(tempx) endif if %v="alq" then genr xgs=d(tempx)-@mean(d(tempx)) endif genr hxgs=xgs 'Hilfsgröße entspricht bei den indikatoren der tatsächlichen Größe '======================================== State Space model schätzen for !ix=1 to !mlags %new1="c(11" + @str(!ix) + ")*h" + %varx1 + "(-" + @str(!ix) + ") + c(12" + @str(!ix) + ")*" + %varx2 + "(-" + @str(!ix) + ")" %new2="c(21" + @str(!ix) + ")*h" + %varx1 + "(-" + @str(!ix) + ") + c(22" + @str(!ix) + ")*" + %varx2 + "(-" + @str(!ix) + ")" %snew1="c(11" + @str(!ix) + ")*sv11" + @str(!ix) + "(-1)" + "+c(12" + @str(!ix) + ")*sv21"+ @str(!ix)+ "(-1)" %snew2="c(21" + @str(!ix) + ")*sv11" + @str(!ix) + "(-1)" + "+c(22" + @str(!ix) + ")*sv21"+ @str(!ix)+ "(-1)" if !ix=1 then %vars1=%new1 %vars2=%new2 %svars1=%snew1 %svars2=%snew2 else 'für VAR mit Lag>1 %vars1=%vars1 + "+" + %new1 %vars2=%vars2 + "+" + %new2 %svars1=%svars1 + "+" + %snew1 %svars2=%svars2 + "+" + %snew2 endif next '!ix=Anzahl der Lags 'Take starting values: equation eqh1.ls h{%varx1}={%vars1} !var1=eqh1.@se genr ee1=resid equation eqh2.ls h{%varx2}={%vars2} !var2=eqh2.@se genr ee2=resid scalar covs = @cov(ee1, ee2) '========================================= 'Estimate mixed freqency VAR: delete(noerr) forecast* '1. Given a specific covariance matrix delete(noerr) ssp_mf_{%v} Sspace ssp_mf_{%v} ssp_mf_{%v}.append {%varx1}=1/3*sv111+2/3*sv112+3/3*sv113+2/3*sv114+1/3*sv115 ' *Monats- BIP* ssp_mf_{%v}.append {%varx2}=sv211 'Das ist der Indikator ssp_mf_{%v}.append @state sv111={%svars1} + [ename = e1, var = !var1^2] ssp_mf_{%v}.append @state sv211={%svars2} + [ename = e2, var = !var2^2] ssp_mf_{%v}.append @state sv112=sv111(-1) ssp_mf_{%v}.append @state sv113=sv112(-1) ssp_mf_{%v}.append @state sv114=sv113(-1) ssp_mf_{%v}.append @state sv115=sv114(-1) ssp_mf_{%v}.append @evar cov(e1, e2) = covs for !ix=1 to !mlags if !ix>1 then %str1="sv21" + @str(!ix) +"=sv21" + @str(!ix-1) + "(-1)" ssp_mf_{%v}.append @state {%str1} endif next ssp_mf_{%v}.ml(m=1000,c=0.01) ssp_mf_{%v}.makestates(t=smooth) *sm genr forecast1_{%v}=SV111sm genr forecast1q_{%v}=1/3*sv111sm+2/3*sv112sm+3/3*sv113sm+2/3*sv114sm+1/3*sv115sm+mygs 'Quartalsprognose inkl. + Mean '========================================= '2. Estimated covariance matrix c(1)=covs/!var2 c(2)=!var1^2-covs^2/!var2^2 c(3)=!var2^2 delete(noerr) ssp_mf2_{%v} Sspace ssp_mf2_{%v} ssp_mf2_{%v}.append {%varx1}=1/3*sv111+2/3*sv112+3/3*sv113+2/3*sv114+1/3*sv115 'BIP ssp_mf2_{%v}.append {%varx2}=sv211 'Indikator ssp_mf2_{%v}.append @state sv111={%svars1} + [ename = e1, var =c(1)^2+c(2)^2] ssp_mf2_{%v}.append @state sv211={%svars2} + [ename = e2, var =c(3)^2] ssp_mf2_{%v}.append @state sv112=sv111(-1) ssp_mf2_{%v}.append @state sv113=sv112(-1) ssp_mf2_{%v}.append @state sv114=sv113(-1) ssp_mf2_{%v}.append @state sv115=sv114(-1) ssp_mf2_{%v}.append @evar cov(e1, e2) = c(3)*c(1) for !ix=1 to !mlags if !ix>1 then %str1="sv21" + @str(!ix) +"=sv21" + @str(!ix-1) + "(-1)" ssp_mf2_{%v}.append @state {%str1} endif next ssp_mf2_{%v}.ml(m=1000,c=0.01) ssp_mf2_{%v}.makestates(t=smooth) *sm2 genr forecast2_{%v}=SV111sm2 'Monatsprognose genr forecast2q_{%v}=(1/3*sv111sm2+2/3*sv112sm2+3/3*sv113sm2+2/3*sv114sm2+1/3*sv115sm2)+mygs 'Quartalsprognose inkl. + Mean '========================================= copy(c=nl) Monat\forecast2q_{%v} Quartal\forc2_{%v}_f{!mrel}_rel{!rel} 'geschätzte Cov copy(c=nl) Monat\forecast1q_{%v} Quartal\forc1_{%v}_f{!mrel}_rel{!rel} 'normale Cov pageselect quartal %A=temp_pc.@last for !iz=1 to 2 'die Schätzmethode (numb) smpl @first {%A}+!biplag forc{!iz}_{%v}_f{!mrel}_rel{!rel}=NA smpl {%A}+!hor+1+!biplag @last forc{!iz}_{%v}_f{!mrel}_rel{!rel} =NA smpl @all gr_forc{!iz}_{%v}.add forc{!iz}_{%v}_f{!mrel}_rel{!rel} next '!iz next 'BIP release !icount_indi=!icount_indi+1 next'Indikator