*
CALENDAR(I)
open data "C:\Users\cb19740\OneDrive - Qatar University\Documents\usb\My papers-new\Charbel-Etienne-Talie-Roland\Charbel-Etienne-Talie-Roland\Rats code\data-variances2.xls"
data(org=col,format=xls,verbose)
*
compute startl=1  ;*need to change your start date
compute endl=1291    ;*need to change your end date
compute obs = endl-startl+1
*
sta(noprint) VRIPPLE
set mu_corn = %mean
compute var_corn = %variance
*
sta(noprint) VLITE
set mu_wheat = %mean
compute var_wheat = %variance
*
sta(noprint) VETH
set mu_soybean = %mean
compute var_soybean = %variance
*
sta(noprint) VBIT
set mu_soybean_oil = %mean
compute var_soybean_oil = %variance
*
set cross = D_afterMarch*ln_inf
*
instruments constant VRIPPLE{2} VLITE{2} VETH{2} VBIT{2} $
VRIPPLE{3} VLITE{3} VETH{3} VBIT{3} ln_inf VXD VXTLT
*
equation VRIPPLEEQ VRIPPLE * *
# constant VLITE VETH VBIT VRIPPLE{1} VLITE{1} VETH{1} VBIT{1} ln_inf VXD VXTLT
equation VLITEEQ VLITE * *
# constant VRIPPLE VETH VBIT VRIPPLE{1} VLITE{1} VETH{1} VBIT{1} ln_inf VXD VXTLT
equation VETHEQ VETH * *
# constant VRIPPLE VLITE VBIT VRIPPLE{1} VLITE{1} VETH{1} VBIT{1} ln_inf VXD VXTLT
equation VBITEQ VBIT * *
# constant VRIPPLE VLITE VETH VRIPPLE{1} VLITE{1} VETH{1} VBIT{1} ln_inf VXD VXTLT
*
group variances VRIPPLEEQ VLITEEQ VETHEQ VBITEQ
************************************************************************
*2SLS: SUR generates 2SLS when CV=identity
*to obtain valid var cov matrix of coefficients
*we should do the below steps
*
sur(model=variances,instruments,cv=%identity(4),cvout=vcv2SLS)
compute [symmetric] cov2SLS=%XX
compute [vector] beta2SLS=%beta
*
sur(model=variances,instruments,nosigma,cv=inv(vcv2SLS),noprint)
compute cov2SLS=%mqform(inv(%XX),cov2SLS)
*
*Instead of the above we can use the robusterrors option
*
sur(model=variances,instruments,cv=%identity(4),robusterrors,cvout=V)
************************************************************************
*3SLS
*
sur(model=variances,instruments,cvout=olssigma,resids=residuals,robusterrors)
*
************************************************************************
****Breusch-Pagan LM test for diagonal covariance matrix
*
compute BPstat=0.5*%nobs*(%normsqr(%cvtocorr(olssigma))-%nvar)
cdf(title="BP Test for diagonal covariance matrix") chisqr bpstat %nvar*(%nvar-1)/2
*
@bjident(max=0.1,qstats,nozero,separate,method=yule,spike,number=24,report) residuals(1)
@bjident(max=0.1,qstats,nozero,separate,method=yule,spike,number=24,report) residuals(2)
@bjident(max=0.1,qstats,nozero,separate,method=yule,spike,number=24,report) residuals(3)
@bjident(max=0.1,qstats,nozero,separate,method=yule,spike,number=24,report) residuals(4)
*
set r1 = residuals(1)^2
linreg(noprint) r1
# constant r1{1}
cdf(title="Test for ARCH(2)") chisqr %trsquared 2
*
set r2 = residuals(2)^2
linreg(noprint)  r2
# constant r2{1}
cdf(title="Test for ARCH(2)") chisqr %trsquared 2
*
set r3 = residuals(3)^2
linreg(noprint)  r3
# constant r3{1}
cdf(title="Test for ARCH(2)") chisqr %trsquared 2
*
set r4 = residuals(3)^2
linreg(noprint) r4
# constant r4{1}
cdf(title="Test for ARCH(2)") chisqr %trsquared 2
*
compute aic = %nobs*%logdet + 2*(11)
compute sbc = %nobs*%logdet + (11)*log(%nobs)
disp 'multivariate aic=' aic 'multivariate sbc=' sbc
















