' *************************************************************************************
' *     This programme estimates the models in:
' *     Greenwood-Nimmo, M.J. (2009). "The Self-Defeating Pursuit of 
' *     Stability", Ekonomiaz.
' *     Programme written by M. Greenwood-Nimmo, April 2009.
' *     Comments and queries to mjgn@lubs.leeds.ac.uk.
' *************************************************************************************


' --------------------------------------------------------
' Read the data & set the sample period
' --------------------------------------------------------

wfopen k:\ekonomiaz\data\data.xls
smpl 1971q2 2008q4


' ---------------------------------------
' Construct series of interest
' ---------------------------------------

series liab1=100*liab/inc_pre

series loan_total=(loan_b+loan_o+mort)/liab
series loan_total2=100*(loan_b+loan_o)/inc_pre

series bond_total=(bond+paper+muni)/liab
series bond_total2=100*(bond+paper+muni)/inc_pre


' --------------------------------------------
' Construct time-varying weights
' --------------------------------------------

series w_paper = paper/(paper+bond+muni+loan_b+loan_o+mort)
series w_bond = (bond+muni)/(paper+bond+muni+loan_b+loan_o+mort)
series w_loan = (loan_b+loan_o)/(paper+bond+muni+loan_b+loan_o+mort)
series w_mort = mort/(paper+bond+muni+loan_b+loan_o+mort)

series w_paper2 = paper/(paper+bond+muni)
series w_bond2 = (bond+muni)/(paper+bond+muni)

series w_loan2 = (loan_b+loan_o)/(loan_b+loan_o+mort)
series w_mort2 = mort/(loan_b+loan_o+mort)

series r_ave = w_paper*rcpQ+w_bond*raaaQ+w_loan*rprlQ+w_mort*rmtgQ
series rbcp = w_paper2*rcpQ+w_bond2*raaaQ
series rlm = w_loan2*rprlQ+w_mort2*rmtgQ


' ----------------------------------------------------------------------------------------
' Estimate the conditional variance of GDP growth (growth risk)
' ----------------------------------------------------------------------------------------

' series lgdp=log(gdp)
' series grow=400*d(lgdp)
series grow=growth

equation garch_grow.arch(1,1,5000,h) grow c grow(-1) grow(-2) grow(-3) _
grow(-4) grow(-12)
garch_grow.makegarch grow_risk1

series grow_risk=(400*grow_risk1)/(@elem(grow_risk1, "2002:1")+ _
@elem(grow_risk1, "2002:2")+@elem(grow_risk1, "2002:3")+ _
@elem(grow_risk1, "2002:4"))

graph grow_risk_gr.line grow_risk
	grow_risk_gr.draw(shade, bottom) 1973:4 1975:1
	grow_risk_gr.draw(shade, bottom) 1980:1 1980:3
	grow_risk_gr.draw(shade, bottom) 1981:3 1982:4
	grow_risk_gr.draw(shade, bottom) 1990:3 1991:1
	grow_risk_gr.draw(shade, bottom) 2001:1 2001:4
	grow_risk_gr.draw(shade, bottom) 2007:4 2008:4
	grow_risk_gr.options linepat
	grow_risk_gr.setelem(1) lcolor(black) lwidth(2) lpat(1)
	grow_risk_gr.options size(4,2) -inbox
	grow_risk_gr.legend -display
	grow_risk_gr.save(t=wmf) k:\ekonomiaz\figures\grow_risk_gr

graph grow_gr.line grow
	grow_gr.draw(shade, bottom) 1973:4 1975:1
	grow_gr.draw(shade, bottom) 1980:1 1980:3
	grow_gr.draw(shade, bottom) 1981:3 1982:4
	grow_gr.draw(shade, bottom) 1990:3 1991:1
	grow_gr.draw(shade, bottom) 2001:1 2001:4
	grow_gr.draw(shade, bottom) 2007:4 2008:4
	grow_gr.options linepat
	grow_gr.setelem(1) lcolor(black) lwidth(2) lpat(1)
	grow_gr.options size(4,2) -inbox
	grow_gr.legend -display
	grow_gr.save(t=wmf) k:\ekonomiaz\figures\grow_gr


' ---------------------------------------------------------------------------------------------------
' Estimate the conditional variance of equity growth (stock market risk)
' ---------------------------------------------------------------------------------------------------

series eqt=sp500q
' series leqt=log(eqt)
' series gr_eqt=400*d(leqt)
series gr_eqt=sp500q_gr

equation garch_eqt.arch(1,1,5000,h) gr_eqt c gr_eqt(-1) gr_eqt(-2) _
gr_eqt(-3) gr_eqt(-4) gr_eqt(-5)
garch_eqt.makegarch eqt_risk1

' This uses the stock index not the growth rate in the GARCH model
' equation garch_eqt.arch(1,1,5000) eqt c eqt(-1) eqt(-2) eqt(-3) eqt(-4)
' garch_eqt.makegarch eqt_risk1

series eqt_risk=(400*eqt_risk1)/(@elem(eqt_risk1, "2002:1")+ _
@elem(eqt_risk1, "2002:2")+@elem(eqt_risk1, "2002:3")+ _
@elem(eqt_risk1, "2002:4"))

graph eqt_risk_gr.line eqt_risk
	eqt_risk_gr.draw(shade, bottom) 1973:4 1975:1
	eqt_risk_gr.draw(shade, bottom) 1980:1 1980:3
	eqt_risk_gr.draw(shade, bottom) 1981:3 1982:4
	eqt_risk_gr.draw(shade, bottom) 1990:3 1991:1
	eqt_risk_gr.draw(shade, bottom) 2001:1 2001:4
	eqt_risk_gr.draw(shade, bottom) 2007:4 2008:4
	eqt_risk_gr.options linepat
	eqt_risk_gr.setelem(1) lcolor(black) lwidth(2) lpat(1)
	eqt_risk_gr.options size(4,2) -inbox
	eqt_risk_gr.legend -display
	eqt_risk_gr.save(t=wmf) k:\ekonomiaz\figures\eqt_risk_gr

graph eqt_gr.line eqt
	eqt_gr.draw(shade, bottom) 1973:4 1975:1
	eqt_gr.draw(shade, bottom) 1980:1 1980:3
	eqt_gr.draw(shade, bottom) 1981:3 1982:4
	eqt_gr.draw(shade, bottom) 1990:3 1991:1
	eqt_gr.draw(shade, bottom) 2001:1 2001:4
	eqt_gr.draw(shade, bottom) 2007:4 2008:4
	eqt_gr.options linepat
	eqt_gr.setelem(1) lcolor(black) lwidth(2) lpat(1)
	eqt_gr.options size(4,2) -inbox
	eqt_gr.legend -display
	eqt_gr.save(t=wmf) k:\ekonomiaz\figures\eqt_gr


' --------------------------------------------------------------------------
' Estimate the conditional variance of pre-tax income
' --------------------------------------------------------------------------

equation garch_inc_pre.arch(1,1,5000,h) inc_pre c inc_pre(-1) inc_pre(-2) _
inc_pre(-3) inc_pre(-4) inc_pre(-5) inc_pre(-6) inc_pre(-8)
garch_inc_pre.makegarch inc_pre_risk1

series inc_pre_risk=(400*inc_pre_risk1)/(@elem(inc_pre_risk1, "2002:1")+ _
@elem(inc_pre_risk1, "2002:2")+@elem(inc_pre_risk1, "2002:3")+ _
@elem(inc_pre_risk1, "2002:4"))

graph inc_pre_risk_gr.line inc_pre_risk
	inc_pre_risk_gr.draw(shade, bottom) 1973:4 1975:1
	inc_pre_risk_gr.draw(shade, bottom) 1980:1 1980:3
	inc_pre_risk_gr.draw(shade, bottom) 1981:3 1982:4
	inc_pre_risk_gr.draw(shade, bottom) 1990:3 1991:1
	inc_pre_risk_gr.draw(shade, bottom) 2001:1 2001:4
	inc_pre_risk_gr.draw(shade, bottom) 2007:4 2008:4
	inc_pre_risk_gr.options linepat
	inc_pre_risk_gr.setelem(1) lcolor(black) lwidth(2) lpat(1)
	inc_pre_risk_gr.options size(4,2) -inbox
	inc_pre_risk_gr.legend -display
	inc_pre_risk_gr.save(t=wmf) k:\ekonomiaz\figures\inc_pre_risk_gr

graph inc_pre_gr.line inc_pre
	inc_pre_gr.draw(shade, bottom) 1973:4 1975:1
	inc_pre_gr.draw(shade, bottom) 1980:1 1980:3
	inc_pre_gr.draw(shade, bottom) 1981:3 1982:4
	inc_pre_gr.draw(shade, bottom) 1990:3 1991:1
	inc_pre_gr.draw(shade, bottom) 2001:1 2001:4
	inc_pre_gr.draw(shade, bottom) 2007:4 2008:4
	inc_pre_gr.options linepat
	inc_pre_gr.setelem(1) lcolor(black) lwidth(2) lpat(1)
	inc_pre_gr.options size(4,2) -inbox
	inc_pre_gr.legend -display
	inc_pre_gr.save(t=wmf) k:\ekonomiaz\figures\inc_pre_gr


' -------------------------------------------------------------------------------------
' Estimate the conditional variance of the interest rate series
' -------------------------------------------------------------------------------------

' *****   r_ave - Weighted average interest rate (all borrowing)

series r_ave1=0.25*log(1+(r_ave/100))
equation garch_r_ave.arch(1,1,5000,h) r_ave c r_ave(-1) r_ave(-2) _
r_ave(-3) r_ave(-4)
garch_r_ave.makegarch r_ave_risk1

series r_ave_risk=(400*r_ave_risk1)/(@elem(r_ave_risk1, "2002:1")+ _
@elem(r_ave_risk1, "2002:2")+@elem(r_ave_risk1, "2002:3")+ _
@elem(r_ave_risk1, "2002:4"))

graph r_ave_risk_gr.line r_ave_risk
	r_ave_risk_gr.draw(shade, bottom) 1973:4 1975:1
	r_ave_risk_gr.draw(shade, bottom) 1980:1 1980:3
	r_ave_risk_gr.draw(shade, bottom) 1981:3 1982:4
	r_ave_risk_gr.draw(shade, bottom) 1990:3 1991:1
	r_ave_risk_gr.draw(shade, bottom) 2001:1 2001:4
	r_ave_risk_gr.draw(shade, bottom) 2007:4 2008:4
	r_ave_risk_gr.options linepat
	r_ave_risk_gr.setelem(1) lcolor(black) lwidth(2) lpat(1)
	r_ave_risk_gr.options size(4,2) -inbox
	r_ave_risk_gr.legend -display
	r_ave_risk_gr.save(t=wmf) k:\ekonomiaz\figures\r_ave_risk_gr

graph r_ave_gr.line r_ave
	r_ave_gr.draw(shade, bottom) 1973:4 1975:1
	r_ave_gr.draw(shade, bottom) 1980:1 1980:3
	r_ave_gr.draw(shade, bottom) 1981:3 1982:4
	r_ave_gr.draw(shade, bottom) 1990:3 1991:1
	r_ave_gr.draw(shade, bottom) 2001:1 2001:4
	r_ave_gr.draw(shade, bottom) 2007:4 2008:4
	r_ave_gr.options linepat
	r_ave_gr.setelem(1) lcolor(black) lwidth(2) lpat(1)
	r_ave_gr.options size(4,2) -inbox
	r_ave_gr.legend -display
	r_ave_gr.save(t=wmf) k:\ekonomiaz\figures\r_ave_gr


series rr_ave1=0.25*log(1+((r_ave-inf)/100))
equation garch_rr_ave.arch(1,1,5000,h) rr_ave1 c rr_ave1(-1) rr_ave1(-2) _
rr_ave1(-3) rr_ave1(-4)
garch_rr_ave.makegarch rr_ave_risk1

series rr_ave_risk=(400*rr_ave_risk1)/(@elem(rr_ave_risk1, "2002:1")+ _
@elem(rr_ave_risk1, "2002:2")+@elem(rr_ave_risk1, "2002:3")+ _
@elem(rr_ave_risk1, "2002:4"))

graph rr_ave_risk_gr.line rr_ave_risk
	rr_ave_risk_gr.draw(shade, bottom) 1973:4 1975:1
	rr_ave_risk_gr.draw(shade, bottom) 1980:1 1980:3
	rr_ave_risk_gr.draw(shade, bottom) 1981:3 1982:4
	rr_ave_risk_gr.draw(shade, bottom) 1990:3 1991:1
	rr_ave_risk_gr.draw(shade, bottom) 2001:1 2001:4
	rr_ave_risk_gr.draw(shade, bottom) 2007:4 2008:4
	rr_ave_risk_gr.options linepat
	rr_ave_risk_gr.setelem(1) lcolor(black) lwidth(2) lpat(1)
	rr_ave_risk_gr.options size(4,2) -inbox
	rr_ave_risk_gr.legend -display
	rr_ave_risk_gr.save(t=wmf) k:\ekonomiaz\figures\rr_ave_risk_gr

graph rr_ave_gr.line rr_ave1
	rr_ave_gr.draw(shade, bottom) 1973:4 1975:1
	rr_ave_gr.draw(shade, bottom) 1980:1 1980:3
	rr_ave_gr.draw(shade, bottom) 1981:3 1982:4
	rr_ave_gr.draw(shade, bottom) 1990:3 1991:1
	rr_ave_gr.draw(shade, bottom) 2001:1 2001:4
	rr_ave_gr.draw(shade, bottom) 2007:4 2008:4
	rr_ave_gr.options linepat
	rr_ave_gr.setelem(1) lcolor(black) lwidth(2) lpat(1)
	rr_ave_gr.options size(4,2) -inbox
	rr_ave_gr.legend -display
	rr_ave_gr.save(t=wmf) k:\ekonomiaz\figures\rr_ave_gr


' *****   rbcp - Weighted average interest rate (bonds and paper)

series rbcp1=0.25*log(1+(rbcp/100))
equation garch_rbcp.arch(1,1,5000,h) rbcp c rbcp(-1) rbcp(-2) _
rbcp(-3) rbcp(-4)
garch_rbcp.makegarch rbcp_risk1

series rbcp_risk=(400*rbcp_risk1)/(@elem(rbcp_risk1, "2002:1")+ _
@elem(rbcp_risk1, "2002:2")+@elem(rbcp_risk1, "2002:3")+ _
@elem(rbcp_risk1, "2002:4"))

graph rbcp_risk_gr.line rbcp_risk
	rbcp_risk_gr.draw(shade, bottom) 1973:4 1975:1
	rbcp_risk_gr.draw(shade, bottom) 1980:1 1980:3
	rbcp_risk_gr.draw(shade, bottom) 1981:3 1982:4
	rbcp_risk_gr.draw(shade, bottom) 1990:3 1991:1
	rbcp_risk_gr.draw(shade, bottom) 2001:1 2001:4
	rbcp_risk_gr.draw(shade, bottom) 2007:4 2008:4
	rbcp_risk_gr.options linepat
	rbcp_risk_gr.setelem(1) lcolor(black) lwidth(2) lpat(1)
	rbcp_risk_gr.options size(4,2) -inbox
	rbcp_risk_gr.legend -display
	rbcp_risk_gr.save(t=wmf) k:\ekonomiaz\figures\rbcp_risk_gr

graph rbcp_gr.line rbcp
	rbcp_gr.draw(shade, bottom) 1973:4 1975:1
	rbcp_gr.draw(shade, bottom) 1980:1 1980:3
	rbcp_gr.draw(shade, bottom) 1981:3 1982:4
	rbcp_gr.draw(shade, bottom) 1990:3 1991:1
	rbcp_gr.draw(shade, bottom) 2001:1 2001:4
	rbcp_gr.draw(shade, bottom) 2007:4 2008:4
	rbcp_gr.options linepat
	rbcp_gr.setelem(1) lcolor(black) lwidth(2) lpat(1)
	rbcp_gr.options size(4,2) -inbox
	rbcp_gr.legend -display
	rbcp_gr.save(t=wmf) k:\ekonomiaz\figures\rbcp_gr


series rrbcp1=0.25*log(1+((rbcp-inf)/100))
equation garch_rrbcp.arch(1,1,5000,h) rrbcp1 c rrbcp1(-1) rrbcp1(-2) _
rrbcp1(-3) rrbcp1(-4)
garch_rrbcp.makegarch rrbcp_risk1

series rrbcp_risk=(400*rrbcp_risk1)/(@elem(rrbcp_risk1, "2002:1")+ _
@elem(rrbcp_risk1, "2002:2")+@elem(rrbcp_risk1, "2002:3")+ _
@elem(rrbcp_risk1, "2002:4"))

graph rrbcp_risk_gr.line rrbcp_risk
	rrbcp_risk_gr.draw(shade, bottom) 1973:4 1975:1
	rrbcp_risk_gr.draw(shade, bottom) 1980:1 1980:3
	rrbcp_risk_gr.draw(shade, bottom) 1981:3 1982:4
	rrbcp_risk_gr.draw(shade, bottom) 1990:3 1991:1
	rrbcp_risk_gr.draw(shade, bottom) 2001:1 2001:4
	rrbcp_risk_gr.draw(shade, bottom) 2007:4 2008:4
	rrbcp_risk_gr.options linepat
	rrbcp_risk_gr.setelem(1) lcolor(black) lwidth(2) lpat(1)
	rrbcp_risk_gr.options size(4,2) -inbox
	rrbcp_risk_gr.legend -display
	rrbcp_risk_gr.save(t=wmf) k:\ekonomiaz\figures\rrbcp_risk_gr

graph rrbcp_gr.line rrbcp1
	rrbcp_gr.draw(shade, bottom) 1973:4 1975:1
	rrbcp_gr.draw(shade, bottom) 1980:1 1980:3
	rrbcp_gr.draw(shade, bottom) 1981:3 1982:4
	rrbcp_gr.draw(shade, bottom) 1990:3 1991:1
	rrbcp_gr.draw(shade, bottom) 2001:1 2001:4
	rrbcp_gr.draw(shade, bottom) 2007:4 2008:4
	rrbcp_gr.options linepat
	rrbcp_gr.setelem(1) lcolor(black) lwidth(2) lpat(1)
	rrbcp_gr.options size(4,2) -inbox
	rrbcp_gr.legend -display
	rrbcp_gr.save(t=wmf) k:\ekonomiaz\figures\rrbcp_gr


' *****   rlm - Weighted average interest rate (loans and mortgages)

series rlm1=0.25*log(1+(rlm/100))
equation garch_rlm.arch(1,1,5000,h) rlm c rlm(-1) rlm(-2) rlm(-3) _
rlm(-4) rlm(-5) rlm(-6)
garch_rlm.makegarch rlm_risk1

series rlm_risk=(400*rlm_risk1)/(@elem(rlm_risk1, "2002:1")+ _
@elem(rlm_risk1, "2002:2")+@elem(rlm_risk1, "2002:3")+ _
@elem(rlm_risk1, "2002:4"))

graph rlm_risk_gr.line rlm_risk
	rlm_risk_gr.draw(shade, bottom) 1973:4 1975:1
	rlm_risk_gr.draw(shade, bottom) 1980:1 1980:3
	rlm_risk_gr.draw(shade, bottom) 1981:3 1982:4
	rlm_risk_gr.draw(shade, bottom) 1990:3 1991:1
	rlm_risk_gr.draw(shade, bottom) 2001:1 2001:4
	rlm_risk_gr.draw(shade, bottom) 2007:4 2008:4
	rlm_risk_gr.options linepat
	rlm_risk_gr.setelem(1) lcolor(black) lwidth(2) lpat(1)
	rlm_risk_gr.options size(4,2) -inbox
	rlm_risk_gr.legend -display
	rlm_risk_gr.save(t=wmf) k:\ekonomiaz\figures\rlm_risk_gr

graph rlm_gr.line rlm
	rlm_gr.draw(shade, bottom) 1973:4 1975:1
	rlm_gr.draw(shade, bottom) 1980:1 1980:3
	rlm_gr.draw(shade, bottom) 1981:3 1982:4
	rlm_gr.draw(shade, bottom) 1990:3 1991:1
	rlm_gr.draw(shade, bottom) 2001:1 2001:4
	rlm_gr.draw(shade, bottom) 2007:4 2008:4
	rlm_gr.options linepat
	rlm_gr.setelem(1) lcolor(black) lwidth(2) lpat(1)
	rlm_gr.options size(4,2) -inbox
	rlm_gr.legend -display
	rlm_gr.save(t=wmf) k:\ekonomiaz\figures\rlm_gr


series rrlm1=0.25*log(1+((rlm-inf)/100))
equation garch_rrlm.arch(1,1,5000,h) rrlm1 c rrlm1(-1) rrlm1(-2) rrlm1(-3) _
rrlm1(-4)
garch_rrlm.makegarch rrlm_risk1

series rrlm_risk=(400*rrlm_risk1)/(@elem(rrlm_risk1, "2002:1")+ _
@elem(rrlm_risk1, "2002:2")+@elem(rrlm_risk1, "2002:3")+ _
@elem(rrlm_risk1, "2002:4"))

graph rrlm_risk_gr.line rrlm_risk
	rrlm_risk_gr.draw(shade, bottom) 1973:4 1975:1
	rrlm_risk_gr.draw(shade, bottom) 1980:1 1980:3
	rrlm_risk_gr.draw(shade, bottom) 1981:3 1982:4
	rrlm_risk_gr.draw(shade, bottom) 1990:3 1991:1
	rrlm_risk_gr.draw(shade, bottom) 2001:1 2001:4
	rrlm_risk_gr.draw(shade, bottom) 2007:4 2008:4
	rrlm_risk_gr.options linepat
	rrlm_risk_gr.setelem(1) lcolor(black) lwidth(2) lpat(1)
	rrlm_risk_gr.options size(4,2) -inbox
	rrlm_risk_gr.legend -display
	rrlm_risk_gr.save(t=wmf) k:\ekonomiaz\figures\rrlm_risk_gr

graph rrlm_gr.line rrlm1
	rrlm_gr.draw(shade, bottom) 1973:4 1975:1
	rrlm_gr.draw(shade, bottom) 1980:1 1980:3
	rrlm_gr.draw(shade, bottom) 1981:3 1982:4
	rrlm_gr.draw(shade, bottom) 1990:3 1991:1
	rrlm_gr.draw(shade, bottom) 2001:1 2001:4
	rrlm_gr.draw(shade, bottom) 2007:4 2008:4
	rrlm_gr.options linepat
	rrlm_gr.setelem(1) lcolor(black) lwidth(2) lpat(1)
	rrlm_gr.options size(4,2) -inbox
	rrlm_gr.legend -display
	rrlm_gr.save(t=wmf) k:\ekonomiaz\figures\rrlm_gr


' --------------------------------------------------------------------------------------------
' OLS levels regressions (ignores LR relationships and dynamics)
' --------------------------------------------------------------------------------------------

' *****   Total cedit market liabilities relative to income

equation total.ls liab1 c grow_risk inc_pre_risk r_ave_risk _
r_ave grow eqt liab1(-1) liab1(-2) liab1(-3)

freeze(total_f) total.testdrop grow_risk inc_pre_risk r_ave_risk
freeze(total_sc) total.auto(2)
freeze(total_het) total.white

' *****   Bonds and commercial paper relative to income

equation bondeq.ls bond_total2 c grow_risk inc_pre_risk _
rbcp_risk rbcp grow eqt bond_total2(-1)

freeze(bondeq_f) bondeq.testdrop grow_risk inc_pre_risk _
rbcp_risk
freeze(bondeq_sc) bondeq.auto(2)
freeze(bondeq_het) bondeq.white

' *****   Loans and mortgages relative to income

equation loan.ls loan_total2 c grow_risk inc_pre_risk rlm_risk _
rlm grow eqt loan_total2(-1) loan_total2(-5) loan_total2(-6)

freeze(loan_f) loan.testdrop grow_risk inc_pre_risk rlm_risk
freeze(loan_sc) loan.auto(2)
freeze(loan_het) loan.white


' ---------------------------------------------------------------------
'  ARDL regressions (includes LR and dynamics)
' ---------------------------------------------------------------------

' *****   Create series of interest

series dliab1=d(liab1)
series dbond_total2=d(bond_total2)
series dloan_total2=d(loan_total2)
series dr_ave=d(r_ave)
series drbcp=d(rbcp)
series drlm=d(rlm)
series dgrow=d(grow)
series deqt=d(eqt)
series dr_ave_risk=d(r_ave_risk)
series drbcp_risk=d(rbcp_risk)
series drlm_risk=d(rlm_risk)
series dgrow_risk=d(grow_risk)
series deqt_risk=d(eqt_risk)
series dinc_pre_risk=d(inc_pre_risk)


' *****   Total credit market liabilities relative to income

' Unrestricted ARDL
equation ardl_liab_un.ls dliab1 c liab1(-1) r_ave(-1) grow(-1) eqt(-1) _
r_ave_risk(-1) grow_risk(-1) inc_pre_risk(-1) dliab1(-1 to -4) dr_ave(0 to -4) _
dgrow(0 to -4) deqt(0 to -4) dr_ave_risk(0 to -4) dgrow_risk(0 to -4) _
dinc_pre_risk(0 to -4)

' Restricted ARDL
equation ardl_liab_rest.ls dliab1 c liab1(-1) r_ave(-1) grow(-1) eqt(-1) _
r_ave_risk(-1) grow_risk(-1) inc_pre_risk(-1) dr_ave(-2 to -4) dgrow(0 to -1) _
dgrow(-4) deqt(-1 to -4) dgrow_risk(-1) dgrow_risk(-3) dinc_pre_risk

' PSS F-test for LR relationship
freeze(ardl_liab_pss) ardl_liab_rest.testdrop liab1(-1) r_ave(-1) grow(-1) _
eqt(-1) r_ave_risk(-1) grow_risk(-1) inc_pre_risk(-1)

' LR coefficients
freeze(ardl_liab_lr) ardl_liab_rest.wald -c(3)/c(2)=0 -c(4)/c(2)=0 _
-c(5)/c(2)=0 -c(6)/c(2)=0 -c(7)/c(2)=0 -c(8)/c(2)=0

' Breusch-Godfrey serial correlation LM test
freeze(ardl_liab_sc) ardl_liab_rest.auto(2)

' White heteroskedasticity test
freeze(ardl_liab_het) ardl_liab_rest.white


' *****   Bonds and commercial paper relative to income

' Unrestricted ARDL
equation ardl_bond_un.ls dbond_total2 c bond_total2(-1) rbcp(-1) grow(-1) _
eqt(-1) rbcp_risk(-1) grow_risk(-1) inc_pre_risk(-1) dbond_total2(-1 to -4) _
drbcp(0 to -4) dgrow(0 to -4) deqt(0 to -4) drbcp_risk(0 to -4) _
dgrow_risk(0 to -4) dinc_pre_risk(0 to -4)

' Restricted ARDL
equation ardl_bond_rest.ls dbond_total2 c bond_total2(-1) rbcp(-1) grow(-1) _
eqt(-1) rbcp_risk(-1) grow_risk(-1) inc_pre_risk(-1) dbond_total2(-3) _
drbcp(-1) drbcp(-3) dgrow dgrow(-4) deqt(-1) deqt(-3 to -4) _
dinc_pre_risk(0 to -1) dinc_pre_risk(-4)

' PSS F-test for LR relationship
freeze(ardl_bond_pss) ardl_bond_rest.testdrop bond_total2(-1) rbcp(-1) _
grow(-1) eqt(-1) rbcp_risk(-1) grow_risk(-1) inc_pre_risk(-1)

' LR coefficients
freeze(ardl_bond_lr) ardl_bond_rest.wald -c(3)/c(2)=0 -c(4)/c(2)=0 _
-c(5)/c(2)=0 -c(6)/c(2)=0 -c(7)/c(2)=0 -c(8)/c(2)=0

' Breusch-Godfrey serial correlation LM test
freeze(ardl_bond_sc) ardl_bond_rest.auto(2)

' White heteroskedasticity test
freeze(ardl_bond_het) ardl_bond_rest.white


' *****   Loans and mortgages relative to income

' Unrestricted ARDL
equation ardl_loan_un.ls dloan_total2 c loan_total2(-1) rlm(-1) grow(-1) _
eqt(-1) rlm_risk(-1) grow_risk(-1) inc_pre_risk(-1) dloan_total2(-1 to -4) _
drlm(0 to -4) dgrow(0 to -4) deqt(0 to -4) drlm_risk(0 to -4) _
dgrow_risk(0 to -4) dinc_pre_risk(0 to -4)

' Restricted ARDL
equation ardl_loan_rest.ls dloan_total2 c loan_total2(-1) rlm(-1) grow(-1) _
eqt(-1) rlm_risk(-1) grow_risk(-1) inc_pre_risk(-1) drlm(-3 to -4) _
dgrow(0 to -1) dgrow(-4) deqt(-1) deqt(-4) drlm_risk(-2) dgrow_risk(-1) _
dinc_pre_risk

' PSS F-test for LR relationship
freeze(ardl_loan_pss) ardl_loan_rest.testdrop loan_total2(-1) rlm(-1) _
grow(-1) eqt(-1) rlm_risk(-1) grow_risk(-1) inc_pre_risk(-1)

' LR coefficients
freeze(ardl_loan_lr) ardl_loan_rest.wald -c(3)/c(2)=0 -c(4)/c(2)=0 _
-c(5)/c(2)=0 -c(6)/c(2)=0 -c(7)/c(2)=0 -c(8)/c(2)=0

' Breusch-Godfrey serial correlation LM test
freeze(ardl_loan_sc) ardl_loan_rest.auto(2)

' White heteroskedasticity test
freeze(ardl_loan_het) ardl_loan_rest.white

