Hi Tom. I have a model with six stocks and I run a multivariate GARCH for each one. I want to use the REPORT instruction. I already have the report with coefficients and standard errors in parenthesis:
Code: Select all
com fin = 1823
cal(irregular)
all fin
open data I:\EAFIT\Tesis\GPRK\Accion_GPRK_diaria_Final.xls
data(format=xls, org=obs)
**print(win = 'datos')
***** TRANSFORMACIÓN DE DATOS *****
set us10y = us_10y; set ca10y = ca_10y; set caus = cad_usd; set eurus = eur_usd
dofor i = us10y ca10y embi_col smb hml rf erm
set %s('r'+%l(i)) = i{0} / 252
end dofor
dofor i = gprk ecp gte pxt fec cne sp500 tsx brent vix us10y caus eurus copper crsp
set %s('l'+%l(i)) = log(i{0})
end dofor
dofor i = lgprk lecp lgte lpxt lfec lcne lsp500 ltsx rembi_col lus10y lbrent lvix lcaus leurus lcopper lcrsp
set %s('d'+%l(i)) = %if(%valid(i{0} - i{1}),(i{0} - i{1}),0)
end dofor
set dlptfw = wgprk*dlgprk+wecp*dlecp+wgte*dlgte+wpxt*(dlpxt - dlcaus)+wfec*(dlfec - dlcaus)+wcne*(dlcne - dlcaus)
set dlptfs 1 685 = (dlgprk + dlecp + dlgte + (dlpxt - dlcaus) + (dlcne - dlcaus)) / 5
set dlptfs 686 fin = (dlgprk + dlecp + dlgte + (dlpxt - dlcaus) + (dlcne - dlcaus) + 1*(dlfec - dlcaus)) / 6
dofor i = dlpxt dlfec dlcne
set %s(%l(i)) = i{0} - dlcaus
end dofor
dofor i = dlgprk dlecp dlgte dlpxt dlfec dlcne dlsp500 dlbrent dlcopper dlptfw dlptfs dlcrsp
set %s('r'+%l(i)) = 100 * (i{0} - rf)
end dofor
dofor i = rsmb rhml rerm dlbrent drembi_col dleurus dlcopper dlus10y
set %s(%l(i)) = 100 * i{0}
end dofor
***** GARCH Factores - BRENT *****
dec symm[series] hsfac(4,4)
clear(zeros) hsfac
system(model = eqfac)
variables rdlcrsp rsmb rhml rdlBrent
lags 1 to 2
det constant
end(system)
estimate(noprint, resids = rfac, noftest)
linreg(noprint, robust, define = eqsdbr) rdlBrent / spBr
# constant dlcopper dleurus dlus10y
prj dpBr
set mkecp = 0; set sbecp = 0; set hlecp = 0; set brecp = 0;
set mkgrk = 0; set sbgrk = 0; set hlgrk = 0; set brgrk = 0;
set mkgte = 0; set sbgte = 0; set hlgte = 0; set brgte = 0;
set mkpxt = 0; set sbpxt = 0; set hlpxt = 0; set brpxt = 0;
set mkcne = 0; set sbcne = 0; set hlcne = 0; set brcne = 0;
set mkfec = 0; set sbfec = 0; set hlfec = 0; set brfec = 0;
linreg(noprint, robust, define = eqptfw) rdlptfw / uptfw
# constant rdlcrsp mkptfw rsmb sbptfw rhml hlptfw rdlBrent brptfw
linreg(noprint, robust, define = eqptfwr) rdlptfw / uptfwr
# constant rdlcrsp rsmb rhml rdlBrent
linreg(noprint, robust, define = eqecp) rdlecp / uecp
# constant rdlcrsp mkecp rsmb sbecp rhml hlecp rdlBrent brecp
linreg(noprint, robust, define = eqecpr) rdlecp / uecpr
# constant rdlcrsp rsmb rhml rdlBrent
linreg(noprint, robust, define = eqgrk) rdlgprk / ugrk
# constant rdlcrsp mkgrk rsmb sbgrk rhml hlgrk rdlBrent brgrk
linreg(noprint, robust, define = eqgrkr) rdlgprk / ugrkr
# constant rdlcrsp rsmb rhml rdlBrent
linreg(noprint, robust, define = eqgte) rdlgte / ugte
# constant rdlcrsp mkgte rsmb sbgte rhml hlgte rdlBrent brgte
linreg(noprint, robust, define = eqgter) rdlgte / ugter
# constant rdlcrsp rsmb rhml rdlBrent
linreg(noprint, robust, define = eqpxt) rdlpxt / upxt
# constant rdlcrsp mkpxt rsmb sbpxt rhml hlpxt rdlBrent brpxt
linreg(noprint, robust, define = eqpxtr) rdlgte / upxtr
# constant rdlcrsp rsmb rhml rdlBrent
linreg(noprint, robust, define = eqcne) rdlcne / ucne
# constant rdlcrsp mkcne rsmb sbcne rhml hlcne rdlBrent brcne
linreg(noprint, robust, define = eqcner) rdlcne / ucner
# constant rdlcrsp rsmb rhml rdlBrent
linreg(noprint, robust, define = eqfec) rdlfec 686 fin ufec
# constant rdlcrsp mkfec rsmb sbfec rhml hlfec rdlBrent brfec
linreg(noprint, robust, define = eqfecr) rdlfec 686 fin ufecr
# constant rdlcrsp rsmb rhml rdlBrent
group modptfw eqfac eqptfw
group modptfwr eqfac eqptfwr
group modecp eqfac eqecp
group modecpr eqfac eqecpr
group modgrk eqfac eqgrk
group modgrkr eqfac eqgrkr
group modgte eqfac eqgte
group modgter eqfac eqgter
group modpxt eqfac eqpxt
group modpxtr eqfac eqpxtr
group modcne eqfac eqcne
group modcner eqfac eqcner
group modfec eqfac eqfec
group modfecr eqfac eqfecr
***** ESTIMACIÓN DE LA VARIANZA *****
***** FACTORES *****
garch(noprint, model=eqfac, mv=DCC, DCC=CDCC, p=1, q=1, hmatrices=hmfac, pmethod=bhhh, piters=100, robusterros, $
method=bhhh, iters=500, mvhseries=hsfac, distrib=t, asymm, stdresid=zfac, rvectors=r2fac) / $
rdlcrsp rsmb rhml rdlBrent
dec vect[series] bptfw(4) becp(4) bgrk(4) bgte(4) bpxt(4) bcne(4) bfec(4)
set d3 = t>=1493.and.t<=1541
report(action=define,hlabels=||"Variable","Ecopetrol","Geopark","Gran Tierra","Parex","Canacol","Frontera"||)
***** ECP *****
garch(model=modecp, mv=DCC, DCC=CDCC, p=1, q=1, hmatrices=hmecp, pmethod=bhhh, piters=100, robusterros, $
print, method=bhhh, iters=500, mvhseries=hsecp, distrib=t, asymm, stdresid=zecp, rvectors=recp, $
hadjust=%(hsecp(1,1)=hsfac(1,1),hsecp(1,2)=hsfac(1,2),hsecp(1,3)=hsfac(1,3),hsecp(1,4)=hsfac(1,4), $
hsecp(2,2)=hsfac(2,2),hsecp(2,3)=hsfac(2,3),hsecp(2,4)=hsfac(2,4), $
hsecp(3,3)=hsfac(3,3),hsecp(3,4)=hsfac(3,4),hsecp(4,4)=hsfac(4,4), cecp=%beta, $
%pt(becp,t,tr(inv(%xsubmat(hmecp(t),1,4,1,4))*tr(%xsubmat(hmecp(t),5,5,1,4)))), $
mkecp=becp(1)*rdlcrsp,sbecp=becp(2)*rsmb,hlecp=becp(3)*rhml,brecp=becp(4)*rdlBrent),xreg) / $
rdlcrsp rsmb rhml rdlBrent rdlecp
# d3
report(regress)
***** GPRK *****
garch(model=modgrk, mv=DCC, DCC=CDCC, p=1, q=1, hmatrices=hmgrk, pmethod=bhhh, piters=100, robusterros, $
print, method=bhhh, iters=500, mvhseries=hsgrk, distrib=t, asymm, stdresid=zgrk, rvectors=rgrk, $
hadjust=%(hsgrk(1,1)=hsfac(1,1),hsgrk(1,2)=hsfac(1,2),hsgrk(1,3)=hsfac(1,3),hsgrk(1,4)=hsfac(1,4), $
hsgrk(2,2)=hsfac(2,2),hsgrk(2,3)=hsfac(2,3),hsgrk(2,4)=hsfac(2,4), $
hsgrk(3,3)=hsfac(3,3),hsgrk(3,4)=hsfac(3,4),hsgrk(4,4)=hsfac(4,4), cgrk=%beta, $
%pt(bgrk,t,tr(inv(%xsubmat(hmgrk(t),1,4,1,4))*tr(%xsubmat(hmgrk(t),5,5,1,4)))), $
mkgrk=bgrk(1)*rdlcrsp,sbgrk=bgrk(2)*rsmb,hlgrk=bgrk(3)*rhml,brgrk=bgrk(4)*rdlBrent),xreg) / $
rdlcrsp rsmb rhml rdlBrent rdlgprk
# d3
report(regress)
***** GTE *****
garch(model=modgte, mv=DCC, DCC=CDCC, p=1, q=1, hmatrices=hmgte, pmethod=bhhh, piters=100, robusterros, $
print, method=bhhh, iters=500, mvhseries=hsgte, distrib=t, asymm, stdresid=zgte, rvectors=rgte, $
hadjust=%(hsgte(1,1)=hsfac(1,1),hsgte(1,2)=hsfac(1,2),hsgte(1,3)=hsfac(1,3),hsgte(1,4)=hsfac(1,4), $
hsgte(2,2)=hsfac(2,2),hsgte(2,3)=hsfac(2,3),hsgte(2,4)=hsfac(2,4), $
hsgte(3,3)=hsfac(3,3),hsgte(3,4)=hsfac(3,4),hsgte(4,4)=hsfac(4,4), cgte=%beta, $
%pt(bgte,t,tr(inv(%xsubmat(hmgte(t),1,4,1,4))*tr(%xsubmat(hmgte(t),5,5,1,4)))), $
mkgte=bgte(1)*rdlcrsp,sbgte=bgte(2)*rsmb,hlgte=bgte(3)*rhml,brgte=bgte(4)*rdlBrent), xreg) / $
rdlcrsp rsmb rhml rdlBrent rdlgte
# d3
report(regress)
***** PXT *****
garch(model=modpxt, mv=DCC, DCC=CDCC, p=1, q=1, hmatrices=hmpxt, pmethod=bhhh, piters=200, robusterros, $
print, method=bhhh, iters=500, mvhseries=hspxt, distrib=t, asymm, stdresid=zpxt, rvectors=rpxt, $
hadjust=%(hspxt(1,1)=hsfac(1,1),hspxt(1,2)=hsfac(1,2),hspxt(1,3)=hsfac(1,3),hspxt(1,4)=hsfac(1,4), $
hspxt(2,2)=hsfac(2,2),hspxt(2,3)=hsfac(2,3),hspxt(2,4)=hsfac(2,4), $
hspxt(3,3)=hsfac(3,3),hspxt(3,4)=hsfac(3,4),hspxt(4,4)=hsfac(4,4), cpxt=%beta, $
%pt(bpxt,t,tr(inv(%xsubmat(hmpxt(t),1,4,1,4))*tr(%xsubmat(hmpxt(t),5,5,1,4)))), $
mkpxt=bpxt(1)*rdlcrsp,sbpxt=bpxt(2)*rsmb,hlpxt=bpxt(3)*rhml,brpxt=bpxt(4)*rdlBrent), xreg) / $
rdlcrsp rsmb rhml rdlBrent rdlpxt
# d3
report(regress)
***** CNE *****
garch(model=modcne, mv=DCC, DCC=CDCC, p=1, q=1, hmatrices=hmcne, pmethod=bfgs, piters=200, robusterros, $
print, method=bhhh, iters=500, mvhseries=hscne, distrib=t, asymm, stdresid=zcne, rvectors=rcne, $
hadjust=%(hscne(1,1)=hsfac(1,1),hscne(1,2)=hsfac(1,2),hscne(1,3)=hsfac(1,3),hscne(1,4)=hsfac(1,4), $
hscne(2,2)=hsfac(2,2),hscne(2,3)=hsfac(2,3),hscne(2,4)=hsfac(2,4), $
hscne(3,3)=hsfac(3,3),hscne(3,4)=hsfac(3,4),hscne(4,4)=hsfac(4,4), ccne=%beta, $
%pt(bcne,t,tr(inv(%xsubmat(hmcne(t),1,4,1,4))*tr(%xsubmat(hmcne(t),5,5,1,4)))), $
mkcne=bcne(1)*rdlcrsp,sbcne=bcne(2)*rsmb,hlcne=bcne(3)*rhml,brcne=bcne(4)*rdlBrent), xreg) / $
rdlcrsp rsmb rhml rdlBrent rdlcne
# d3
report(regress)
***** FEC *****
garch(model=modfec, mv=DCC, DCC=CDCC, p=1, q=1, hmatrices=hmfec, pmethod=bhhh, piters=100, robusterros, $
print, method=bhhh, iters=500, mvhseries=hsfec, distrib=t, asymm, stdresid=zfec, rvectors=rfec, $
hadjust=%(hsfec(1,1)=hsfac(1,1),hsfec(1,2)=hsfac(1,2),hsfec(1,3)=hsfac(1,3),hsfec(1,4)=hsfac(1,4), $
hsfec(2,2)=hsfac(2,2),hsfec(2,3)=hsfac(2,3),hsfec(2,4)=hsfac(2,4), $
hsfec(3,3)=hsfac(3,3),hsfec(3,4)=hsfac(3,4),hsfec(4,4)=hsfac(4,4), cfec=%beta, $
%pt(bfec,t,tr(inv(%xsubmat(hmfec(t),1,4,1,4))*tr(%xsubmat(hmfec(t),5,5,1,4)))), $
mkfec=bfec(1)*rdlcrsp,sbfec=bfec(2)*rsmb,hlfec=bfec(3)*rhml,brfec=bfec(4)*rdlBrent), xreg) 686 fin $
rdlcrsp rsmb rhml rdlBrent rdlfec
# d3
report(regress)
report(action=format,picture="*.###")
report(action=show)
But how can I include the significance for each parameter in the REPORT instruction? The example you put in this section (signiftag), I don´t know how to adapt it to my exercise.