* My SVAR code for Uzbekistan
* Load dataset to RATS
OPEN DATA "D:\Szeged\Publications\Quarterly SVAR\data-set.xlsx"
CALENDAR(Q) 2007:1
DATA(FORMAT=XLSX,ORG=COLUMNS) 2010:01 2024:04 gdp1se gdp2se cpi m2 r reer wcpi remt
compute lags=1
compute nvar=6
compute nstep=16
compute ndraws=10000
* Converting variables in logarithmic format
set lngdp2 = 100*LOG(GDP2SE)
set lngdp1 = 100*log(GDP1SE)
set lncpi = 100*log(cpi)
set lnm2 = 100*log(m2)
set lnreer = 100*log(reer)
set lnrem = 100*log(remt)
set ir = r
system(model=uzb)
variables lnrem lngdp1 lncpi lnm2 ir lnreer
lags 1 to lags
det constant
end(system)
estimate(sigma,resids=resids)
nonlin(parmset=bek) a21 a31 a32 a36 a41 a45 a46 $
   a53 a54 a56 a61 a62 a63 a64 a65
dec frml[rect] afrml
frml afrml = ||1.0   ,0.0  ,0.0   ,0.0   ,0.0 ,0.0|$
               a21   ,1.0  ,0.0   ,0.0   ,0.0 ,0.0|$
               a31   ,a32  ,1.0   ,0.0   ,0.0 ,a36|$
               a41   ,0.0  ,0.0   ,1.0   ,a45 ,a46|$
               0.0   ,0.0  ,a53   ,a54   ,1.0 ,a56|$
               a61   ,a62  ,a63   ,a64   ,a65 ,1.0||
compute a21=a31=a32=a36=a41=a45=a46=a53=a54=a56=a61=a62=a63=a64=a65=0.0
cvmodel(a=afrml,parmset=bek,method=bfgs,factor=fsvar) %sigma
compute nvar   =%nvar
compute fxx    =%decomp(%xx)
compute fwish  =%decomp(inv(%nobs*%sigma))
compute wishdof=%nobs-%nreg
compute betaols=%modelgetcoeffs(uzb)
declare vect[rect] %%responses(ndraws)
infobox(action=define,progress,lower=1,upper=ndraws) $
   "Monte Carlo Integration"
do draw=1,ndraws
if %clock(draw,2)==1 {
      compute sigmad  =%ranwisharti(fwish,wishdof)
      compute fsigma  =%decomp(sigmad)
      compute betau   =%ranmvkron(fsigma,fxx)
      compute betadraw=betaols+betau
   }
   else
      compute betadraw=betaols-betau
compute %modelsetcoeffs(uzb,betadraw)
impulse(noprint,model=uzb,factor=fsigma,$
     results=impulses,steps=nstep,flatten=%%responses(draw))
   infobox(current=draw)
end do draw
infobox(action=remove)
*
@mcgraphirf(model=uzb)
