This section is dedicated to share some videos of presentation as well as some scripts I have designed either for publishing, teaching or to help in research-related tasks. Feel free to test the latter and contact me in case you encounter some technical issues (feedback welcome).
Videos
Economics and finance in times of the COVID pandemic (in French)
Financialization and the Macroeconomy. Theory and Empirical evidence. Presentation at Association Française d’Economie Politique, Lille 2019.
Codes
Note: When indicated “INSERT DIRECTORY PATH HERE”, the user must select (copy-paste) a folder in which the data (if any) is stored and results (database or graphs) will be stored.
EViews script of the article “On the macroeconomic effects of financialization”, with Céline Gimet and Thomas Lagoarde-Segot. Stock-flow matrices with values available here (.xls)
‘ Note: Before making the model run (by pushing the button “run” located in the upper left-hand of this box), the user must select a default folder, in which all graphs presented in the paper (along with other useful ones) and the Matrix of Stocks will be saved. The location of this folder must be inserted in the second box appearing once the program is run.
‘ In contrast to the Table shown in the subsection “Model starting values” (where variables appear in the same order as in the subsection “System of equations”), variables appear in the EViews datafile generated by the present code alphabetically.
‘ Set program mode
mode quiet
‘ Set default directory (where all graphs will be saved)
%directory = “INSERT DIRECTORY PATH HERE”
@uiedit(%directory, “Directory where graphs and tables will be saved:”, 1024)
cd %directory
‘ Graphs size and type (.png is useful for LaTeX).
%graph_size = “t=png, u=cm, h=15, -c, -box”
create u 1 25 ‘ 50
smpl @all
!shock_period = 14 ‘ At t = 11 the growth rate of GDP lies within realistic values (less than 7.6 % but higher than -0.3 %)
‘ Shocks.
%shock_1 = “0.15”
@uiedit(%shock_1, “Shock 1. One-shot increase in banks lending of:”)
!Shock1 = @val(%shock_1)
%shock_2= “0.1”
@uiedit(%shock_2, “Shock 2. Permanent increase in banks lending of:”)
!Shock2 = @val(%shock_2)
‘ Equation 1: GDP (income)
%gdp_eq = “Y = cons_h + cons_g + inv_h + inv_f + inv_g”
series Y = 100
Y.displayname Gross domestic product
series WB = 80
WB.displayname Wage bill
series Pi = 17.6
Pi.displayname Gross operating surplus
series inctax = 2.4
inctax.displayname Income tax receipts of the government
series cons_h = 66
cons_h.displayname Personal consumption
series inv_g = 6
inv_g.displayname Public investment
series cons_g = 10
cons_g.displayname Public consumption expenditures
‘ Equation 2: Consumption Function
%cons_h_eq = “cons_h = c0_a + c1_l_a * cons_h(-1) + c2_l_a * cons_h(-2) + c1_a * WB(-1) + c2_a * W_h(-1)”
series W_H = 150
W_H.displayname Household wealth
series c1_l_a = 0.4
c1_l_a.displayname Autorregressive component of personal consumption, lag 1
series c2_l_a = 0.25
c2_l_a.displayname Autorregressive component of personal consumption, lag 2
series c1_a = 0.65
c1_a.displayname Marginal propensity to consume out of income
series c2_a = 0.1
c2_a.displayname Marginal propensity to consume out of wealth
series c0_a = 5
c0_a.displayname Autonomous consumption
‘ Equation 3: Consumption of the government
%cons_g_eq = “cons_g = c0_g + c1_lg * cons_g(-1) + c2_lg * cons_g(-2) – c1_g * Y(-1)”
series c1_lg = 0.2
c1_lg.displayname Autorregressive component of government consumption expenditure, lag 1
series c2_lg = 0.1
c2_lg.displayname Autorregressive component of government consumption expenditure, lag 2
series c1_g = 0.005
c1_g.displayname Consumption automatic stabilizer parameter
series c0_g = 25
c0_g.displayname Autonomous public consumption expenditure
‘ Equation 4: Total consumption
%cons_eq = “consumption = cons_h + cons_g”
series {%cons_eq}
consumption.displayname Total consumption
‘ Equation 5: Household investment
%inv_h_eq = “d(K_H) * pk = 0.04*y(-1)”
%inv_h_eq2 = “inv_h = d(K_H) * pk”
series inv_h = 8
inv_h.displayname Household investment
‘ Equation 6: Private investment function
%inv_eq = “d(K) * pk = phi0_f + phi_ar1 * d(K(-1)) * pk(-1) + phi_ar2 * d(K(-2)) * pk(-2) + phi2_f * (pe(-1) * E(-1) / (pk(-1) * K(-1))) + phi3_f * Pi(-1) – phi4_f * r(-1) + phi5_f * Y(-1)”
%inv_eq2 = “inv = d(K) * pk”
%inv_f_eq = “d(K_F) * pk = inv – inv_g – inv_h”
%inv_f_eq2 = “inv_f = d(K_F) * pk”
series inv = 24
inv.displayname Total investment (private and public)
series phi0_f = 20
phi0_f.displayname Autonomous private investment
series phi_ar1 = 0.45
phi_ar1.displayname Investment autorregressive component, lag 1
series phi_ar2 = 0.25
phi_ar2.displayname Investment autorregressive component, lag 2
series phi2_f = 0.3*100
phi2_f.displayname Investment sensitivity to Tobin q
series phi3_f = 0.05
phi3_f.displayname Private investment sensitivity to profits
series phi4_f = 5*100
phi4_f.displayname Investment sensitivity to the interest rate on credit
series phi5_f = 0.025
phi5_f.displayname Investment sensitivity to GDP (accelerator)
series K = 550
K.displayname Stock of non-financial assets of the economy
series pk = 1
pk.displayname Price of non-financial assets
series delta = 0.05
delta.displayname Depreciation rate of non-financial assets
‘ Equation 7 and 8: Public investment function and firms investment (the latter is shown above)
%inv_g_eq = “d(K_G) * pk = phi0_g – phi1_g * (inv_h + inv_f)”
%inv_g_eq2 = “inv_g = d(K_G) * pk”
series phi0_g = 5
phi0_g.displayname Autonomous public investment
series phi1_g = 0.007
phi1_g.displayname Public investment parameter of private investment automatic stabilizer
series inv_f = 10
inv_f.displayname Supply of investment goods
series K_F = 250
K_F.displayname Volume of non-financial assets held by non-financial firms
series K_G = 150
K_G.displayname Volume of non-financial assets held by the government
series K_H = 150
K_H.displayname Volume of non-financial assets held by households
‘ Equation 9: Price of non-fin assets
%pk_eq = “d(pk) = tau_0 + tau1_l * d(pk(-1)) + tau2_l * d(pk(-2)) + tau1_inc * d(WB(-1)) + tau2_inc * d(WB(-2)) + tau1_k * d(K(-1)) + tau2_k * d(K(-2)) – tau_r * r – tau1_r * r(-1)”
series tau_0 = 0.1
tau_0.displayname Constant term in price of capital change
series tau1_l = 0.4
tau1_l.displayname Autorregressive component of pk, lag 1
series tau2_l = 0.25
tau2_l.displayname Autorregressive component of pk, lag 2
series tau1_inc = 0.0005
tau1_inc.displayname Price of non-fin assets sensitivity to changes in income, lag 1
series tau2_inc = 0.0001
tau2_inc.displayname Price of non-fin assets sensitivity to changes in income, lag 2
series tau1_k = 0.0007
tau1_k.displayname Price of non-fin assets sensitivity to its volume, lag 1
series tau2_k = 0.0002
tau2_k.displayname Price of non-fin assets sensitivity to its volume, lag 2
series tau_r = 0.005*100
tau_r.displayname Price of non-fin assets sensitivity to the interest rate
series tau1_r = 0.001*100
tau1_r.displayname Price of non-fin assets sensitivity to the interest rate, lag 1
‘ Equation 10: Wage bill
%wb_eq = “WB = w0 + w1_l * WB(-1) + w2_l * WB(-2) + w1 * (cons_h(-1) + inv(-1) – inv_f(-1) – Pi(-1) – int_f(-1) – div(-1) – inctax_f(-1))”
series w0 = 220
w0.displayname Autonomous change in wages
series w1_l = 0.4
w1_l.displayname Autorregressive component of wages, lag 1
series w2_l = 0.25
w2_l.displayname Autorregressive component of wages, lag 2
series w1 = 0.1
w1.displayname Parameter of wage indexation to firms sales
‘ Equations 11-13: Firms profits and interests
%pi_eq = “Pi = Y – WB – inctax_h – inctax_f”
%int_h_eq = “int_h = r * pl(-1) * L_H(-1)”
series int_h = 4
int_h.displayname Interests paid by households
%int_f_eq = “int_f = r * pl(-1) * L_F(-1)”
series int_f = 3
int_f.displayname Interests paid by firms
%int_g_eq = “int_g = r * pl(-1) * L_G(-1)”
series int_g = 2
int_g.displayname Interests paid by the government
%int_eq = “int = int_h + int_f + int_g”
series int = 9
int.displayname Interests received by banks
series div = 10
div.displayname Dividends paid to capitalists by firms
‘ Equation 14: Dividends
%div_eq = “div = re * pe(-1) * E(-1)”
series pe = 1
pe.displayname Price of equity
series E = 200
E.displayname Volume of equity (number of titles issued)
series re = div / (pe * E)
re.displayname Financial profitability rate
‘ Equation 15 and 16: Income taxes paid by households and firms
%inctax_h_eq = “inctax_h = th * (WB(-1) – cons_h(-1))”
series inctax_h = 1.4
inctax_h.displayname Income taxes paid by households
series th = 0.1
th.displayname Tax rate on households income
%inctax_f_eq = “inctax_f = tf * Pi(-1)”
series inctax_f = 1
inctax_f.displayname Corporate tax paid by firms
series tf = 0.06
tf.displayname Corporate tax rate (paid by firms)
‘ Equation 17: Changes in the volume of deposits held by households
%deph_eq = “d(D_h) * pd = psi0_h + psi1_lh * pd(-1) * d(D_h(-1)) + psi2_lh * pd(-2) * d(D_h(-2)) + psi1_h * (cons_h + inv_h) – psi2_h * id”
%deph_flow_eq = “deph_flow = d(D_H) * pd”
series psi1_lh = 0.4
psi1_lh.displayname Deposits held by households autorregressive component, lag 1
series psi2_lh = 0.2
psi2_lh.displayname Deposits held by households autorregressive component, lag 2
series psi1_h = 0.02
psi1_h.displayname Deposits sensitivity to expenditure by households
series psi2_h = 1*100
psi2_h.displayname Deposits sensitivity to the deposits interest rate by households
series psi0_h = 32
psi0_h.displayname Autonomous change in deposits held by households
‘ Equation 18: Changes in the volume of deposits held by firms
%depf_eq = “d(D_f) * pd = psi0_f + psi1_l * pd(-1) * d(D_f(-1)) + psi2_l * pd(-2) * d(D_f(-2)) + psi1_f * WB – psi2_f * id”
%depf_flow_eq = “depf_flow = d(D_F) * pd”
series psi1_l = 0.4
psi1_l.displayname Autorregressive component of deposits held by firms, lag 1
series psi2_l = 0.2
psi2_l.displayname Autorregressive component of deposits held by firms, lag 2
series psi1_f = 0.01
psi1_f.displayname Deposits sensitivity to labor cost increases by firms
series psi2_f = 0.5*100
psi2_f.displayname Deposits sensitivity to the deposits interest rate by firms
series psi0_f = 30
psi0_f.displayname Autonomous change in deposits held by firms
‘ Equation 19: Volume of deposits (total)
%dep_eq = “Dep = D_F + D_H”
%dep_flow_eq = “dep_flow = d(Dep) * pd”
series pd = 1
pd.displayname Price of deposits
series Dep = 150
Dep.displayname Stock of deposits issued by the central bank
series D_h = 100
D_h.displayname Stock of deposits held by households
series D_f = 50
D_f.displayname Stock of deposits held by firms
‘ Equation 20: Changes in the volume of debt supply by banks
%loan_eq = “d(L) * pl = gamma0_b + gamma1_b * pl(-1) * d(L(-1)) + gamma2_b * pl(-2) * d(L(-2)) + gamma0_bre * re + gamma1_bre * re(-1) + gamma2_bre * re(-2) + gamma0_bri * (r – id) + gamma1_bri * (r(-1) – id(-1)) + gamma2_bri * (r(-2) – id(-2))”
series gamma1_b = 0.4
gamma1_b.displayname Autorregressive component of bank lending, lag 1
series gamma2_b = 0.3
gamma2_b.displayname Autorregressive component of bank lending, lag 2
series gamma0_bre = 100
gamma0_bre.displayname Bank lending sensitivity to financial profitability, lag 0
series gamma1_bre = 80
gamma1_bre.displayname Bank lending sensitivity to financial profitability, lag 1
series gamma2_bre = 50
gamma2_bre.displayname Bank lending sensitivity to financial profitability, lag 2
series gamma0_bri = 10*100
gamma0_bri.displayname Bank lending sensitivity to the int. rate spread, lag 0
series gamma1_bri = 8*100
gamma1_bri.displayname Bank lending sensitivity to the int. rate spread, lag 1
series gamma2_bri = 5*100
gamma2_bri.displayname Bank lending sensitivity to the int. rate spread, lag 2
series gamma0_b = 20
gamma0_b.displayname Autonomous change in bank lending
‘ Equation 21: Changes in the volume of debt demand by households
%loanh_eq = “d(L_h) * pl = gamma0_h + gamma1_l * pl(-1) * d(L_H(-1)) + gamma2_l * pl(-2) * d(L_H(-2)) – gamma1_h * r + gamma2_h * d(WB) + gamma3_h * pk”
series gamma1_l = 0.4
gamma1_l.displayname Autorregressive component of households demand for credit, lag 1
series gamma2_l = 0.2
gamma2_l.displayname Autorregressive component of households demand for credit, lag 2
series gamma1_h = 2*100
gamma1_h.displayname Household demand for credit sensitivity to the interest rate
series gamma2_h = 0.085
gamma2_h.displayname Household demand for credit sensitivity to the wage bill
series gamma3_h = 5
gamma3_h.displayname Household demand for credit sensitivity to the price of housing
series gamma0_h = 20
gamma0_h.displayname Autonomous change in household demand for credit
‘ Equation 22: Public deficit
%loang_eq = “d(L_g) * pl = inv_g + cons_g + int_g – inctax_h – inctax_f”
%loang_flow_eq = “loang_flow = d(L_G) * pl”
series pl = 1
pl.displayname Price of credit
series L_g = 50
L_g.displayname Stock of treasury bonds issued by the government
‘ Equation 23: Firms debt
%loanf_eq = “L_F = L – L_H – L_G”
%loanf_flow_eq = “loanf_flow = d(L_F) * pl”
series L = 225
L.displayname Stock of debt held by financial firms
series L_h = 100
L_h.displayname Stock of debt issued by households
series L_f = 75
L_f.displayname Stock of debt issued by non-financial firms
‘ Equation 24: Changes in the volume of equity demanded by firms
%equity_eq = “d(E) = eta0 + eta1_l * d(E(-1)) + eta2_l * d(E(-2)) + eta_re * re + eta1_re * re(-1) + eta2_re * re(-2) – eta2 * d(L)”
%equity_flow_eq = “equity_flow = d(E) * pe”
series eta1_l = 0.5
eta1_l.displayname Autorregressive component of the flow of equity, lag 1
series eta2_l = 0.3
eta2_l.displayname Autorregressive component of the flow of equity, lag 2
series eta_re = 0.075*100
eta_re.displayname Firms demand for equity sensitivity to financial profitability
series eta1_re = 0.05*100
eta1_re.displayname Firms demand for equity sensitivity to financial profitability, lag 1
series eta2_re = 0.03*100
eta2_re.displayname Firms demand for equity sensitivity to financial profitability, lag 2
series eta2 = 0.007
eta2.displayname Firms equity dependence due to changes in their debt demand
series eta0 = 0.15
eta0.displayname Autonomous change in firms demand for equity
‘ Equation 25: Price of deposits (change)
%pd_eq = “d(pd) = beta0 + beta1_l * d(pd(-1)) + beta2_l * d(pd(-2)) – beta1_d * d(Dep(-1)) – beta2_d * d(Dep(-2)) – beta1 * id”
series beta1_l = 0.4
beta1_l.displayname Autorregressive component of deposits price, lag 1
series beta2_l = 0.2
beta2_l.displayname Autorregressive component of deposits price, lag 2
series beta1_d = 0.001
beta1_d.displayname Price of deposits sensitivity to changes in its volume, lag 1
series beta2_d = 0.00075
beta2_d.displayname Price of deposits sensitivity to changes in its volume, lag 2
series beta1 = 0.02
beta1.displayname Price of deposits sensitivity to the deposits interest rate
series beta0 = 0.17
beta0.displayname Autonomous change in the price of deposits
‘ Equation 26: Price of credit (change)
%pl_eq = “d(pl) = epsilon0 + epsilon1_l * d(pl(-1)) + epsilon1_l * d(pl(-2)) + epsilon1_lv * d(L(-1)) + epsilon2_lv * d(L(-2)) – epsilon1 * r ”
series epsilon1_l = 0.3
epsilon1_l.displayname Autorregressive component of credit price, lag 1
series epsilon2_l = 0.1
epsilon2_l.displayname Autorregressive component of credit price, lag 2
series epsilon1_lv = 0.0008
epsilon1_lv.displayname Price of credit sensitivity to changes in its volume, lag 1
series epsilon2_lv = 0.00055
epsilon2_lv.displayname Price of credit sensitivity to changes in its volume, lag 2
series epsilon1 = 0.9
epsilon1.displayname Price of credit sensitivity to the lending interest rate
series epsilon0 = 0.01
epsilon0.displayname Autonomous change in the price of credit
‘ Equation 27: Price of equity (change)
%pe_eq = “d(pe) = lambda0 + lambda1_l * d(pe(-1)) + lambda2_l * d(pe(-2)) + lambda1_e * d(E(-1)) + lambda2_e * d(E(-2)) + lambda1 * d(y) – lambda2 * d(E/K)”
series lambda1_l = 0.3
lambda1_l.displayname Autorregressive component of equity price, lag 1
series lambda2_l = 0.1
lambda2_l.displayname Autorregressive component of equity price, lag 2
series lambda1_e = 0.005
lambda1_e.displayname Price of equity sensitivity to changes in its volume, lag 1
series lambda2_e = 0.001
lambda2_e.displayname Price of equity sensitivity to changes in its volume, lag 2
series lambda1 = 0.0003
lambda1.displayname Price of equity sensitivity to changes in output
series lambda2 = 15
lambda2.displayname Price of equity sensitivity to changes in Q
series lambda0 = 0.1
lambda0.displayname Autonomous change in the price of equity
‘ Equation 28: Interest rate on deposits
%id_eq = “id = theta0 + theta1_li * id(-1) + theta2_li * id(-2) – theta1_ls * d(S(-1)) – theta2_ls * d(S(-2))”
series id = 0.02
id.displayname Interest rate on deposits
series S = inv
S.displayname National saving
series theta1_li = 0.5
theta1_li.displayname Autorregressive component of deposits interest rate, lag 1
series theta2_li = 0.3
theta2_li.displayname Autorregressive component of deposits interest rate, lag 2
series theta1_ls = 0.0004
theta1_ls.displayname Deposits interest rate sensitivity to changes in savings, lag 1
series theta2_ls = 0.0001
theta2_ls.displayname Deposits interest rate sensitivity to changes in savings, lag 2
series theta0 = 0.02
theta0.displayname Autonomous change in the deposits interest rate
‘ Equation 29: Interest rate on credit
%r_eq = “r = xi0 + xi1_l * r(-1) + xi2_l * r(-2) + xi1_linv * d(inv(-1)) + xi2_linv * d(inv(-2)) + xi1_lid * id(-1) + xi2_lid * id(-2)”
series r = 0.04
r.displayname Interest rate on loans
series xi1_l = 0.5
xi1_l.displayname Autorregressive component of lending interest rate, lag 1
series xi2_l = 0.3
xi2_l.displayname Autorregressive component of lending interest rate, lag 2
series xi1_linv = 0.0005
xi1_linv.displayname Lending interest rate sensitivity to changes in investment, lag 1
series xi2_linv = 0.0001
xi2_linv.displayname Lending interest rate sensitivity to changes in investment, lag 2
series xi1_lid = 0.05
xi1_lid.displayname Lending interest rate sensitivity to the deposits rate, lag 1
series xi2_lid = 0.03
xi2_lid.displayname Lending interest rate sensitivity to the deposits rate, lag 2
series xi0 = 0.01
xi0.displayname Autonomous change in the lending rate
‘ Equation 30: Financial profitability
%re_eq = “re = omega0 + omega1_l * re(-1) + omega2_l * re(-2) + omega1_lpi * d(Pi(-1)) + omega2_lpi * d(Pi(-2)) + omega1_lpe * d(pe(-1)) + omega2_lpe * d(pe(-2))”
series omega1_l = 0.4
omega1_l.displayname Autorregressive component of financial profitability, lag 1
series omega2_l = 0.2
omega2_l.displayname Autorregressive component of financial profitability, lag 2
series omega1_lpi = 0.0005
omega1_lpi.displayname Financial profitability sensitivity to changes in profits, lag 1
series omega2_lpi = 0.0002
omega2_lpi.displayname Financial profitability sensitivity to changes in profits, lag 2
series omega1_lpe = 0.2
omega1_lpe.displayname Financial profitability sensitivity to changes in equity prices, lag 1
series omega2_lpe = 0.17
omega2_lpe.displayname Financial profitability sensitivity to changes in equity prices, lag 2
series omega0 = 0.01
omega0.displayname Autonomous change in financial profitability
‘ Equations 31-35: Wealth
%w_h_eq = “W_H = pk * K_H + pd * D_H – pl * L_H”
%w_f_eq = “W_F = pk * K_F + pd * D_F – pl * L_F – pe * E”
%w_g_eq = “W_G = pk * K_G – pl * L_G”
%w_b_eq = “W_B = pk * K – W_H – W_F – W_G – W_CB”
%w_cb_eq = “W_CB = RF – pd * Dep”
series W_F = 150
W_F.displayname Firms wealth
series W_G = 100
W_G.displayname Public wealth
series W_B = 100
W_B.displayname Financial firms wealth
series W_CB = 50
W_CB.displayname Central bank wealth
‘ Equations 36-41: Saving
%s_h_eq = “S_H = WB – int_h – inctax_h – cons_h – pd * d(D_H) + pl * d(L_H) – inv_h”
series S_H = 8.6
S_H.displayname Household saving
%s_f_eq = “S_F = Y – inv_f – WB – int_f – div – inctax_f – Pi”
series S_F = -12.4
S_F.displayname Non-financial firms saving
%s_g_eq = “S_G = d(W_G)”
series S_G = -9.6
S_G.displayname Government saving
%s_b_eq = “S_B = d(W_B)”
series S_B = 55.6
S_B.displayname Financial firms saving
%s_cb_eq = “S_CB = S – S_H – S_F – S_G – S_B”
series S_CB = -18.2
S_CB.displayname Central bank saving
%s_eq = “S = Inv”
series S = 24
S.displayname Saving
‘ Equation 42: Refinancing
%rf_eq = “RF = pl * L + pe * E – W_B”
series RF = 200
RF.displayname Refinancing
‘ Other stocks and flows
%loan_flow_eq = “loan_flow = d(L) * pl”
%loanh_flow_eq = “loanh_flow = d(L_H) * pl”
%rf_flow_eq = “rf_flow = d(RF)”
series deph_flow = 20.6
deph_flow.displayname Flow of deposits held by households
series depf_flow = 17.6
depf_flow.displayname Flow of deposits held by firms
series dep_flow = deph_flow + depf_flow
dep_flow.displayname Flow of deposits, total
series loanh_flow = 20
loanh_flow.displayname Flow of credit obligations issued by households
series loanf_flow = 20
loanf_flow.displayname Flow of credit obligations issued by firms
series loang_flow = 15.6
loang_flow.displayname Flow of credit obligations issued by the government
series loan_flow = loanh_flow + loanf_flow + loang_flow
loan_flow.displayname Flow of credit obligations issued, total
series equity_flow = 20
equity_flow.displayname Flow of equities issued by firms, managed by banks
series rf_flow = 20
rf_flow.displayname Flow of refinancing
‘ Revaluation effects
%rev_kh_eq = “rev_kh = K_H(-1) * d(pk)”
series rev_K_H = 3
rev_K_H.displayname Revaluation effect of households non-financial assets
%rev_kf_eq = “rev_kf = K_F(-1) * d(pk)”
series rev_K_F = 3
rev_K_F.displayname Revaluation effect of firms non-financial assets
%rev_kg_eq = “rev_kg = K_G(-1) * d(pk)”
series rev_K_G = 3
rev_K_G.displayname Revaluation effect of government non-financial assets
%rev_k_eq = “rev_k = K(-1) * d(pk)”
series rev_K = 11
rev_K.displayname Revaluation effect of non-financial assets, total
%rev_dh_eq = “rev_dh = D_H(-1) * d(pd)”
series rev_D_H = 2
rev_D_H.displayname Revaluation effect of households deposits
%rev_df_eq = “rev_df = D_F(-1) * d(pd)”
series rev_D_F = 1
rev_D_F.displayname Revaluation effect of firms deposits
%rev_d_eq = “rev_d = Dep(-1) * d(pd)”
series rev_D = 3
rev_D.displayname Revaluation effect of deposits, total
%rev_lh_eq = “rev_lh = L_H(-1) * d(pl)”
series rev_L_H = 2
rev_L_H.displayname Revaluation effect of households debt
%rev_lf_eq = “rev_lf = L_F(-1) * d(pl)”
series rev_L_F = 1.5
rev_L_F.displayname Revaluation effect of firms debt
%rev_lg_eq = “rev_lg = L_G(-1) * d(pl)”
series rev_L_G = 1
rev_L_G.displayname Revaluation effect of government debt
%rev_l_eq = “rev_l = L(-1) * d(pl)”
series rev_L = 4.5
rev_L.displayname Revaluation effect of debt, total
%rev_e_eq = “rev_e = E(-1) * d(pe)”
series rev_E = 1.5
rev_E.displayname Revaluation effect of equity
‘ Model Specification (see article)
model _1glr_sfc
_1glr_sfc.append {%gdp_eq}
_1glr_sfc.append {%cons_h_eq}
_1glr_sfc.append {%cons_g_eq}
_1glr_sfc.append {%cons_eq}
_1glr_sfc.append {%inv_h_eq}
_1glr_sfc.append {%inv_h_eq2}
_1glr_sfc.append {%inv_eq}
_1glr_sfc.append {%inv_eq2}
_1glr_sfc.append {%inv_f_eq}
_1glr_sfc.append {%inv_f_eq2}
_1glr_sfc.append {%inv_g_eq}
_1glr_sfc.append {%inv_g_eq2}
_1glr_sfc.append {%pk_eq}
_1glr_sfc.append {%wb_eq}
_1glr_sfc.append {%pi_eq}
_1glr_sfc.append {%int_h_eq}
_1glr_sfc.append {%int_f_eq}
_1glr_sfc.append {%int_g_eq}
_1glr_sfc.append {%int_eq}
_1glr_sfc.append {%div_eq}
_1glr_sfc.append {%inctax_h_eq}
_1glr_sfc.append {%inctax_f_eq}
_1glr_sfc.append {%deph_eq}
_1glr_sfc.append {%deph_flow_eq}
_1glr_sfc.append {%depf_eq}
_1glr_sfc.append {%depf_flow_eq}
_1glr_sfc.append {%dep_eq}
_1glr_sfc.append {%dep_flow_eq}
_1glr_sfc.append {%loan_eq}
_1glr_sfc.append {%loan_flow_eq}
_1glr_sfc.append {%loanh_eq}
_1glr_sfc.append {%loanh_flow_eq}
_1glr_sfc.append {%loang_eq}
_1glr_sfc.append {%loang_flow_eq}
_1glr_sfc.append {%loanf_eq}
_1glr_sfc.append {%loanf_flow_eq}
_1glr_sfc.append {%equity_eq}
_1glr_sfc.append {%equity_flow_eq}
_1glr_sfc.append {%pd_eq}
_1glr_sfc.append {%pl_eq}
_1glr_sfc.append {%pe_eq}
_1glr_sfc.append {%id_eq}
_1glr_sfc.append {%r_eq}
_1glr_sfc.append {%re_eq}
_1glr_sfc.append {%w_h_eq}
_1glr_sfc.append {%w_f_eq}
_1glr_sfc.append {%w_g_eq}
_1glr_sfc.append {%w_b_eq}
_1glr_sfc.append {%w_cb_eq}
_1glr_sfc.append {%s_h_eq}
_1glr_sfc.append {%s_f_eq}
_1glr_sfc.append {%s_g_eq}
_1glr_sfc.append {%s_b_eq}
_1glr_sfc.append {%s_cb_eq}
_1glr_sfc.append {%s_eq}
_1glr_sfc.append {%rf_eq}
_1glr_sfc.append {%rf_flow_eq}
_1glr_sfc.append {%rev_kh_eq}
_1glr_sfc.append {%rev_kf_eq}
_1glr_sfc.append {%rev_kg_eq}
_1glr_sfc.append {%rev_k_eq}
_1glr_sfc.append {%rev_dh_eq}
_1glr_sfc.append {%rev_df_eq}
_1glr_sfc.append {%rev_d_eq}
_1glr_sfc.append {%rev_lh_eq}
_1glr_sfc.append {%rev_lf_eq}
_1glr_sfc.append {%rev_lg_eq}
_1glr_sfc.append {%rev_l_eq}
_1glr_sfc.append {%rev_e_eq}
‘ Simulation
_1glr_sfc.scenario “Baseline”
_1glr_sfc.solve(o=g) ‘ System Solving Method : g = Gauss-Seidel, n = Newton, b = Broyden
series _eq_unwritten = (pd_0 * Dep_0 + W_CB_0) * 100 / (pl_0 * L_0 + pe_0*E_0 – W_B_0)
_eq_unwritten.displayname Unwritten identity: Deposits + Central Bank net worth = Credit + Equity less Private Banks net worth
series _eq_is = s_0 * 100 / inv_0
_eq_is.displayname Flow identity: Saving = Investment
series _eq_rev = rev_k_0 * 100 / (rev_kh_0 + rev_dh_0 – rev_lh_0 + rev_kf_0 + rev_df_0 – rev_lf_0 – rev_e_0 + L_0(-1) * d(pl_0) + rev_e_0 – Dep_0(-1) * d(pd_0) + rev_kg_0 – rev_lg_0)
_eq_rev.displayname Revaluation identity: Revaluation of non-financial assets = Revaluation of total net worth
series _eq_wk = pk_0 * K_0 * 100 / (W_H_0 + W_F_0 + W_G_0 + W_B_0 + W_CB_0)
_eq_wk.displayname Stock identity: Stock of capital = Net worth
series _eq_kstock = pk_0 * K_0 * 100 / (pk_0(-1) * K_0(-1) + pk_0 * d(K_0) + K_0(-1) * d(pk_0))
_eq_kstock.displayname Temporal consistency (consolidation) of non-financial assets
series _eq_depstock = pd_0 * Dep_0 * 100 / (pd_0(-1) * Dep_0(-1) + pd_0 * d(Dep_0) + Dep_0(-1) * d(pd_0))
_eq_depstock.displayname Temporal consistency (consolidation) of deposits
series _eq_credstock = pl_0 * L_0 * 100 / (pl_0(-1) * L_0(-1) + pl_0 * d(L_0) + L_0(-1) * d(pl_0))
_eq_credstock.displayname Temporal consistency (consolidation) of credit
series _eq_eqstock = pe_0 * E_0 * 100 / (pe_0(-1) * E_0(-1) + pe_0 * d(E_0) + E_0(-1) * d(pe_0))
_eq_eqstock.displayname Temporal consistency (consolidation) of equity
smpl 6 @last
series _cons_y = consumption_0 * 100 / y_0
_cons_y.displayname Total consumption, % of GDP
series _inv_y = inv_0 * 100 / y_0
_inv_y.displayname Total investment, % of GDP
graph _1gdpdem_graph.line _cons_y _inv_y
_1gdpdem_graph.save({%graph_size}) _1gdpdem_graph
series _invh_inv = inv_h_0 * 100 / inv_0
series _wb_y = WB_0 * 100 / Y_0
_wb_y.displayname Wages, % of GDP
series _pi_y = Pi_0 * 100 / Y_0
_pi_y.displayname Profits, % of GDP
graph _1gdpinc_graph.line _WB_y _Pi_y
_1gdpinc_graph.save({%graph_size}) _1gdpinc_graph
series _profitrate = Pi_0*100/(pk_0*K_0(-1))
_profitrate.displayname Profit rate of firms, %
series _re = re_0*100
_re.displayname Rate of financial profitability, %
graph _1profitr_graph.line _profitrate _re
_1profitr_graph.save({%graph_size}) _1profitr_graph
series _r = r_0*100
_r.displayname Interest rate on credit, %
series _id = id_0*100
_id.displayname Interest rate on deposits, %
graph _1intrates_graph.line _r _id
_1intrates_graph.save({%graph_size}) _1intrates_graph
series _int = int_0*100/y_0
_int.displayname Interests, % of GDP
series _div = div_0*100/y_0
_div.displayname Dividends, % of GDP
graph _1intdiv_graph.line _int _div
_1intdiv_graph.save({%graph_size}) _1intdiv_graph
series _pk = pk_0
_pk.displayname Price of non-financial assets
series _pd = pd_0
_pd.displayname Price of deposits
series _pl = pl_0
_pl.displayname Price of credit
series _pe = pe_0
_pe.displayname Price of equity
graph _1prices_graph.line _pk _pd _pl _pe
_1prices_graph.save({%graph_size}) _1prices_graph
graph _1eq1_graph.line _eq_kstock _eq_depstock _eq_credstock _eq_eqstock
_1eq1_graph.save({%graph_size}) _1eq1_graph
graph _1eq2_graph.line _eq_unwritten _eq_wk _eq_is _eq_rev
_1eq2_graph.save({%graph_size}) _1eq2_graph
‘ Generate Shocks
smpl @all
series gamma0_b_1 = gamma0_b
smpl {!shock_period} {!shock_period}
series gamma0_b_1 = gamma0_b_1 + {!Shock1}*d(L_0)*pl_0 ‘ Y_0
smpl @all
‘ Bank lending one-period shock
_1glr_sfc.scenario(n,a=_1) “Autonomous increase in bank lending (1-period)”
_1glr_sfc.override gamma0_b
_1glr_sfc.solve
series gamma0_b_2 = gamma0_b
smpl {!shock_period} @last
series gamma0_b_2 = gamma0_b_2 + {!Shock2}*d(L_0)*pl_0 ‘ Y_0
smpl @all
‘ Bank lending one-period shock
_1glr_sfc.scenario(n,a=_2) “Autonomous increase in bank lending (multi-period)”
_1glr_sfc.override gamma0_b
_1glr_sfc.solve
delete S1_* S2_*
‘ Comparative graphs (after shock)
smpl @all
series _y_s1 = (y_1/y_0)*100
_y_s1.displayname GDP change after increase in autonomous bank lending
series _consh_s1 = (cons_h_1/cons_h_0)*100
_consh_s1.displayname Personal consumption change after increase in autonomous bank lending
series _invf_s1 = (inv_f_1/inv_f_0)*100
_invf_s1.displayname Firms investment change after increase in autonomous bank lending
series _invh_s1 = (inv_h_1/inv_h_0)*100
_invh_s1.displayname Households investment change after increase in autonomous bank lending
series _y_s2 = (y_2/y_0)*100
_y_s2.displayname GDP change after increase in autonomous bank lending
series _consh_s2 = (cons_h_2/cons_h_0)*100
_consh_s2.displayname Personal consumption change after increase in autonomous bank lending
series _invf_s2 = (inv_f_2/inv_f_0)*100
_invf_s2.displayname Firms investment change after increase in autonomous bank lending
series _invh_s2 = (inv_h_2/inv_h_0)*100
_invh_s2.displayname Households investment change after increase in autonomous bank lending
series _debtflowy_bs = pl_0*d(L_0)*100/Y_0
_debtflowy_bs.displayname Flow of debt held by banks (% of GDP) under the baseline
series _debtflowy_1 = pl_1*d(L_1)*100/Y_1
_debtflowy_1.displayname Flow of debt held by banks (% of GDP) under a one-shot increase in indebtedness
series _debtflowy_2 = pl_2*d(L_2)*100/Y_2
_debtflowy_2.displayname Flow of debt held by banks (% of GDP) under a permanent increase in indebtedness
series _pe1 = pe_1 * 100 / pe_0
_pe1.displayname Price of equity under shock 1 / baseline
series _pe2 = pe_2 * 100 / pe_0
_pe2.displayname Price of equity under shock 2 / baseline
series _re1 = re_1 * 100 / re_0
_re1.displayname Rate of financial profitability under shock 1 / baseline
series _re2 = re_2 * 100 / re_0
_re2.displayname Rate of financial profitability under shock 2 / baseline
series _int1 = int_1 * 100 / int_0
_int1.displayname Interests received by banks under shock 1 / baseline
series _int2 = int_2 * 100 / int_0
_int2.displayname Interests received by banks under shock 2 / baseline
series _div1 = div_1 * 100 / div_0
_div1.displayname Dividends under shock 1 / baseline
series _div2 = div_2 * 100 / div_0
_div2.displayname Dividends under shock 2 / baseline
series _profitrate1 = (Pi_1 * 100 / (pk_1 * K_1(-1))) – (Pi_0 * 100 / (pk_0 * K_0(-1)))
_profitrate1.displayname Profit rate of firms under shock 1 – baseline (%)
series _profitrate2 = (Pi_2 * 100 / (pk_2 * K_2(-1))) – (Pi_0 * 100 / (pk_0 * K_0(-1)))
_profitrate2.displayname Profit rate of firms under shock 2 – baseline (%)
series _wb1 = (wb_1/wb_0)*100
_wb1.displayname Wage bill under shock 1 / baseline
series _wb2 = (wb_2/wb_0)*100
_wb2.displayname Wage bill under shock 2 / baseline
smpl {!shock_period}-2 {!shock_period}+6
graph _1s1_gdp_graph.line _y_s1 _consh_s1 _invf_s1 _invh_s1
_1s1_gdp_graph.save({%graph_size}) _1s1_gdp_graph
graph _1s2_gdp_graph.line _y_s2 _consh_s2 _invf_s2 _invh_s2
_1s2_gdp_graph.save({%graph_size}) _1s2_gdp_graph
graph _1debtsc_graph.line _debtflowy_bs _debtflowy_1 _debtflowy_2
_1debtsc_graph.save({%graph_size}) _1debtsc_graph
graph _1pesc_graph.line _pe1 _pe2
_1pesc_graph.save({%graph_size}) _1pesc_graph
graph _1resc_graph.line _re1 _re2
_1resc_graph.save({%graph_size}) _1resc_graph
graph _1intsc_graph.line _int1 _int2
_1intsc_graph.save({%graph_size}) _1intsc_graph
graph _1divsc_graph.line _div1 _div2
_1divsc_graph.save({%graph_size}) _1divsc_graph
graph _1pratesc_graph.line _profitrate1 _profitrate2
_1pratesc_graph.save({%graph_size}) _1pratesc_graph
graph _1wbsc_graph.line _wb1 _wb2
_1wbsc_graph.save({%graph_size}) _1wbsc_graph
wfsave GLR2017
EViews 8 simulation script for Mundell-Flemming model under a fixed exchange rate regime (static).
‘ Simulation program for Mundell-Flemming model (or IS-LM-BP) under a fixed exchange rate regime
mode quiet
%directory = “INSERT DIRECTORY PATH HERE”
@uiedit(%directory, “Directory where graphs and tables will be saved:”, 1024)
!obs =1000
wfclose(noerr) IS_LM_BP_Fr
wfcreate IS_LM_BP_Fr u {!obs}
scalar a_0 = 80
scalar a_1 = 0.8
scalar i_0 = 25
scalar i_1 = -5
scalar g_0 = 40
scalar x_0 = 25
scalar m_0 = 20
scalar m_1 = 0.15
scalar t_rate = 0.15
scalar c_1 = (a_0+i_0+g_0+x_0-m_0)
scalar c_2 = (1-a_1*(1-t_rate)+m_1)
scalar l_1 = 0.5
scalar l_2 = -5
scalar k_prm = 6
‘ Change the value of the interest rate to obtain the new value of output
‘ Equilibrium interest rate, aggregate output and money supply
scalar int_rate_calc = (((x_0-m_0)/m_1)-(c_1/c_2))/((i_1/c_2)-(k_prm/m_1))
scalar y_calc = ((x_0-m_0)/m_1)+(k_prm*int_rate_calc/m_1)
scalar m_no_bar = l_1*y_calc + l_2*int_rate_calc
‘ Simulation
matrix({!obs},4) IS_LM_BP
IS_LM_BP.displayname IS-LM-BP curves
for !i = 1 to {!obs}
scalar int_rate_s_{!i} = {!i}/100
scalar Y_IS_{!i} = (c_1/c_2)+(i_1*int_rate_s_{!i}/c_2)
scalar Y_LM_{!i} = (m_no_bar/l_1)-(l_2*int_rate_s_{!i}/l_1)
scalar Y_BP_{!i} = ((x_0-m_0)/m_1)+(k_prm*int_rate_s_{!i}/m_1)
IS_LM_BP({!i},1) = int_rate_s_{!i}
IS_LM_BP({!i},2) = Y_IS_{!i}
IS_LM_BP({!i},3) = Y_LM_{!i}
IS_LM_BP({!i},4) = Y_BP_{!i}
delete int_rate_s_{!i} Y_IS_{!i} Y_LM_{!i} Y_BP_{!i}
next
‘ Equilibrium level of output from the IS curve
scalar y_is = (c_1/c_2)+(i_1*int_rate_calc/c_2)
‘ Equilibrium level of output from the LM curve
scalar y_lm = (m_no_bar/l_1)-(l_2*int_rate_calc/l_1)
‘ Equilibrium level of output from the BP curve
scalar y_bp = ((x_0-m_0)/m_1)+(k_prm*int_rate_calc/m_1)
show IS_LM_BP.xyline
delete y_calc
wfsave IS_LM_BP_Fr
EViews 8 simulation script for Mundell-Flemming model under a floating exchange rate regime (static).
‘ Simulation program for Mundell-Flemming model (or IS-LM-BP) under a floating exchange rate regime
mode quiet
%directory = “INSERT DIRECTORY PATH HERE”
@uiedit(%directory, “Directory where graphs and tables will be saved:”, 1024)
cd %directory
!obs = 1000
wfclose(noerr) IS_LM_BP_Fr
wfcreate IS_LM_BP_Fr u {!obs}
scalar a_0 = 80
scalar a_1 = 0.8
scalar i_0 = 25
scalar i_1 = -5
scalar g_0 = 40
scalar x_0 = 25
scalar x_1 = 0.4
scalar m_0 = 20
scalar m_1 = 0.15
scalar m_2 = 0.15
scalar t_rate = 0.15
scalar c_1 = (a_0+i_0+g_0+x_0-m_0)
scalar c_2 = (1-a_1*(1-t_rate)+m_2)
scalar m_bar = 115.76
scalar l_1 = 0.5
scalar l_2 = -5
scalar k_prm = 6
scalar c_3 = (l_2*(m_2-c_2)-l_1*(i_1-k_prm))
‘ Change the value of the interest rate to obtain the new value of output
‘ Equilibrium interest rate, aggregate output and exchange rate
scalar int_rate_calc = (m_bar*(m_2-c_2)-l_1*((x_0-m_0)-c_1))/c_3
scalar y_calc = (m_bar/l_1)-(l_2*int_rate_calc/l_1)
scalar xr_calc = (c_2*y_calc-c_1-i_1*int_rate_calc)/(x_1-m_1)
‘ Simulation
matrix({!obs},4) IS_LM_BP
IS_LM_BP.displayname IS-LM-BP curves
for !i = 1 to {!obs}
scalar int_rate_s_{!i} = {!i}/100
scalar Y_IS_{!i} = (c_1+xr_calc*(x_1-m_1)+i_1*int_rate_s_{!i})/c_2
scalar Y_LM_{!i} = (m_bar/l_1)-(l_2*int_rate_s_{!i}/l_1)
scalar Y_BP_{!i} = ((x_0-m_0)+xr_calc*(x_1-m_1)+k_prm*int_rate_s_{!i})/m_2
IS_LM_BP({!i},1) = int_rate_s_{!i}
IS_LM_BP({!i},2) = Y_IS_{!i}
IS_LM_BP({!i},3) = Y_LM_{!i}
IS_LM_BP({!i},4) = Y_BP_{!i}
delete int_rate_s_{!i} Y_IS_{!i} Y_LM_{!i} Y_BP_{!i}
next
‘ Equilibrium level of output from the IS curve
scalar y_is = (c_1+xr_calc*(x_1-m_1)+i_1*int_rate_calc)/c_2
‘ Equilibrium level of output from the LM curve
scalar y_lm = (m_bar/l_1)-(l_2*int_rate_calc/l_1)
‘ Equilibrium level of output from the BP curve
scalar y_bp = ((x_0-m_0)+xr_calc*(x_1-m_1)+k_prm*int_rate_calc)/m_2
show IS_LM_BP.xyline
wfsave IS_LM_BP_Fr
delete y_calc
EViews 7 script for bringing annual data to quarters. Instructions here: User’s Guide Denton, .pdf
‘ DENTON (1971) method to bring annual data to quarters.
mode quiet
@uiprompt(“Attention: The file QUARTER.txt must contain the header ‘quarter’ for the program to work. The file ANNUAL.txt must not contain a header.”)
%directory = “HERE YOU MUST INSERT THE DIRECTORY PATH”
@uiedit(%directory, “Directory (must match the folder containing the files QUARTER.txt and ANNUAL.txt):”, 1024)
cd %directory
‘ Specify number of years
%nyears = “##”
@uiedit(%nyears, “Set number of years you wish to bring to quarters (See Denton, 1971 for details):”)
!n_years = @val(%nyears)
‘ Specify periodicity (normally 4, in order to bring to quarters).
!quarters = 4
‘ Total number of quarters
!periods = {!n_years}*{!quarters}
create u !periods
‘ Read quarter ad hoc series read QUARTER.txt quarter
‘ For details on method, see Denton, Frank (1971)
matrix matrix_D = @identity(!periods) for !i = 1 to {!periods}-1
matrix_D({!i}+1,{!i}) = -1 next
matrix matrix_D_tr = @transpose(matrix_D)
matrix D_tr_D = matrix_D_tr*matrix_D
‘ Matrix A matrix A_inv = @inverse(D_tr_D)
matrix(!periods,!n_years) matrix_B
for !i = 1 to !n_years
for !j = 1 to !quarters
matrix_B(({!j}-{!quarters})+{!i}*{!quarters},{!i}) = 1
next
next
matrix matrix_B_tr = @transpose(matrix_B)
matrix B_tr_A_tr = matrix_B_tr*A_inv
matrix B_tr_A_tr_B = B_tr_A_tr*matrix_B
matrix B_tr_A_tr_B_inv = @inverse(B_tr_A_tr_B)
matrix A_inv_B = A_inv*matrix_B
matrix matrix_C = A_inv_B*B_tr_A_tr_B_inv
matrix quarter_matrix = quarter
matrix B_tr_Z = matrix_B_tr*quarter_matrix
matrix(!n_years,1) annual
annual.read(t=dat) ANNUAL.txt
matrix matrix_r = annual-B_tr_Z
matrix matrix_C_r = matrix_C*matrix_r
matrix series_q = quarter_matrix+matrix_C_r
delete matrix_D matrix_D_tr D_tr_D A_inv matrix_B matrix_B_tr B_tr_A_tr B_tr_A_tr_B B_tr_A_tr_B_inv A_inv_B matrix_C quarter_matrix B_tr_Z matrix_C_r matrix_r annual quarter
series quarter_series
for !i = 1 to !periods
quarter_series.fill(o=!i)
series_q(!i,1)
next
delete series_q
EViews 7 script for models in “Financialized Growth Regime: Lessons from Stock-Flow Consistent Models” (with Jacques Mazier), published in Revue de la Régulation in 2014.
‘ Program used in Stock Flow Consistent Model of the paper “Financialized growth regime: lessons from Stock Flow Consistent models”.’ To be published @ Revue de la Regulation, 2014.
‘ Authors: Luis REYES (luisantonio.reyesortiz@univ-paris13.fr) and Jacques MAZIER (mazier@univ-paris13.fr), Centre d’Economie Paris Nord.
‘ Note: Before making the model run (by pushing the button “run” located in the upper left-hand of this box), the user must select a default folder, in which all graphs presented in the paper (along with other useful ones) and the Matrix of Stocks will be saved. The location of this folder must be inserted in the second box appearing once the program is run.
‘ For the program to work properly, the EViews version must be 7 or higher.
‘ PROGRAM SESSION :
‘ Set program
mode %mode = “quiet”
@uiedit(%mode, “Enter program mode (quiet or verbose):”)
mode %mode
‘ Set default directory (where all graphs will be saved)
%directory = “INSERT DIRECTORY PATH HERE” @uiedit(%directory, “Directory where graphs and tables will be saved:”, 1024)
cd %directory
‘ Graphs size and type (.png is useful for LaTeX).
%graph_size = “t=png, u=cm, h=7.5, -c, -box”
create u 1 80
‘ Model choice: see the paper for details on closures.
scalar model_sel = 1
@uiradio(model_sel, “Model Selection (1) Indebtedness Norm, (2) Own Funds Norm:”, “1 2”)
!model = model_sel
smpl @all
‘ Relevant Equations
‘ Model 1, Indebtedness Norm.
%m1_debt_eq = “L = (g0+g1*(UP(-1)/K(-1))+g2*re(-1))*K”
%m1_of_eq = “d(E) = (I-UP+pe*d(Ee)-d(L))/pe” ‘ as a residual.
‘ Model 2, Own Funds Norm.
%m2_debt_eq = “d(L) = I+pe*d(Ee)-UP-pe*d(E)” ‘ as a residual.
%m2_of_eq = “E*pe = (z0+z1*rl+z2*(L(-1)/K(-1))-z3*re)*(K+pe*Ee)”
‘ Financial Profitability options: with or without Firms’ Net Wealth (Ve) in denominator.
%fin_prof = “re = d(pe)/pe(-1)+(DIV/(pe(-1)*E(-1)))” ‘ (E(-1)*d(pe)+DIV)/((pe(-1)*E(-1))+Ve(-1)) as an alternative
‘ Financial accumulation options: as a stock or as a flow (financial accumulation).
%fin_acc = “Ee*pe = (f0+f1*re+f2*(UP/K(-1))+f3*(L/K)-f4*r)*(K+pe*Ee)” ‘ d(Ee) = Ee(-1)*(f0+f1*re+f2*(UP/K(-1))+f3*(L/K)-f4*rl) as an alternative
‘ Behavioral equations setting.
%cons_fn = “Cp = a0+a1*YHSh+a2*VH(-1)” ‘ Consumption Function
%bonds_fn = “B = (v0+v1*rb-v2*id-v3*re)*VH/pb” ‘ Bonds Function
%cap_acc_fn = “gg = k0+(k1*(UP(-1)/K(-2)))+(k2*(D(Y)/Y(-1)))-(k3*(L(-1)/K(-1)))-(k4*rl)-k5*re” ‘ Capital Accumulation Function
%peEh_fn = “pe*Eh = (w0-w1*rb-w2*id+w3*re)*Vh” ‘ Households Equity Held Function
‘ Shocks.
%shock_1 = “0.025”
@uiedit(%shock_1, “Shock 1. Increase in Consumption of:”)
!Shock1 = @val(%shock_1)
%shock_2 = “0.02” @uiedit(%shock_2, “Shock 2. Increase in the Wage Share of:”)
!Shock2 = @val(%shock_2)
%shock_3 = “0.01” @uiedit(%shock_3, “Shock 3. Increase in the Capital Accumulation rate of:”)
!Shock3 = @val(%shock_3)
%shock_4 = “0.01” @uiedit(%shock_4, “Shock 4. Increase in Firms’ Financial Accumulation rate:”)
!Shock4 = @val(%shock_4)
%shock_5 = “0.01” @uiedit(%shock_5, “Shock 5. Increase in the share of Households’ Financial Wealth of:”)
!Shock5 = @val(%shock_5)
‘ Parameters of:
‘ Consumption Function
series a1 = 0.83
a1.displayname Coefficient of YHSh (+) in Consumption Function (Marginal Propensity to Consume)
series a2 = 0.04
a2.displayname Coefficient of Vh(-1) (+) in Consumption Function
‘ Capital Accumulation
series k1 = 0.35
k1.displayname Coefficient of UP(-1)/K(-2) (+) in Accumulation Function series
k2 = 0.025
k2.displayname Coefficient of (d(Y)/Y(-1)) (+) in Accumulation Function (Accelerator Effect)
series k3 = 0.1
k3.displayname Coefficient of L(-1)/K(-1) (-) in Accumulation Function
series k4 = 0.5
k4.displayname Coefficient of rl (-) in Accumulation Function
series k5 = 0.1
k5.displayname Coefficient of re (-) in Accumulation Function
‘ Bonds (Share of Vh)
series v1 = 0.2
v1.displayname Coefficient of rb (+) in Bonds Function
series v2 = 0.2
v2.displayname Coefficient of id (-) in Bonds Function
series v3 = 0.1
v3.displayname Coefficient of re (-) in Bonds Function
‘ Households’ demand for equity (Share of Vh)
series w1 = 0.01
w1.displayname Coefficient of rb (-) in Household Equity Demand
series w2 = 0.02
w2.displayname Coefficient of id (-) in Household Equity Demand
series w3 = 0.02
w3.displayname Coefficient of re (+) in Household Equity Demand
‘ Financial Accumulation
series f1 = 0.2
f1.displayname Coefficient of re (+) in Financial Accumulation Function
series f2 = 0.6
f2.displayname Coefficient of UP/K(-1) (+) in Financial Accumulation Function
series f3 = 0
f3.displayname Coefficient of L/K (+) in Financial Accumulation Function
series f4 = 0
f4.displayname Coefficient of rl (-) in Financial Accumulation Function
‘ Indebtedness Norm
series g1 = 0.3
g1.displayname Coefficient of UP/K(-1) (+) in Indebtedness Norm
series g2 = 0.04
g2.displayname Coefficient of re (+) in Indebtedness Norm
series g3 = 0
g3.displayname Coefficient of rl (-) in Indebtedness Norm
‘Own Funds Norm
series z1 = 0.5
z1.displayname Coefficient of rl (+) in Own Funds Norm
series z2 = 0.45
z2.displayname Coefficient of L(-1)/K(-1) (+) in Own Funds Norm
series z3 = 0.0333333333333
z3.displayname Coefficient of re (-) in Own Funds Norm
‘ Others
series r0 = 0.67652
r0.displayname Wage Share
series theta = 0.1
theta.displayname Tax Rate on Households
series lambda = 0.050005
lambda.displayname Share of Bank Money to Bank Deposits
series lambda0 = 0.159143
lambda0.displayname Share of Households Money to Consumption
series thetab = 0.286277
thetab.displayname Tax Rate on Banks
series sf = 0.34097798866
sf.displayname Saving Rate of Firms
series gpch = 0.025
gpch.displayname Growth Rate of Government Spending
‘ Interest Rates
series ib = 0.015
ib.displayname Banks Interest Rate
series m1b = 0.005
m1b.displayname Interest Rate Mark-up 1
series m2b = 0.005
m2b.displayname Interest Rate Mark-up 2
series rl = ib+m1b
rl.displayname Lending Rate
series id = ib-m2b
id.displayname Interest Rate on Deposits
series r = rl
r.displayname Leader Interest Rate
series rb = r
rb.displayname Short-Term Interest Rate on Bonds
series pb = 1/rb
pb.displayname Long-Term interest Rate on Bonds
‘ Endogenous variables / initial values
series Y = 100
Y.displayname Output / Income
series CP = 60
CP.displayname Personal Consumption
series I = 25
I.displayname Private Investment
series G = 100 – I – CP
G.displayname Government Spending
series BD = 45
BD.displayname Bank Deposits
series B = 0
B.displayname Bonds
series K = 400
K.displayname Capital Stock
series L = 100
L.displayname Lending
series re = 0.075758
re.displayname Financial Profitability
series pe = 35
pe.displayname Price of Equity
series E = 3
E.displayname Equities issued
series Ee = 2
Ee.displayname Equities held by Firms
series Debt = 0
Debt.displayname Government Debt (Vg)
series BT = 0
BT.displayname Treasury Bills
series CGe = 0
CGe.displayname Firms Capital Gains
series CGh = 0
CGh.displayname Households Capital Gains
series CG = 0 CG.displayname Capital Gains (Total)
‘ Identities’ Calibration
series W = r0*Y
W.displayname Wages
series Eh = E – Ee
Eh.displayname Equities held by Households
series Hh = lambda0*CP
Hh.displayname Money held by Households
series Hb = lambda*BD
Hb.displayname Money held by Banks
series H = Hh + Hb
H.displayname Money (Bills and Coins)
series RF = H
RF.displayname Banks Refinancing
series TCB = ib*RF
TCB.displayname Taxes paid by the Central Bank
series BP = (1-thetab)*(rl*L+r*BT-id*BD-ib*RF)
BP.displayname Banks Profits
series TB = thetab*(rl*L+r*BT-id*BD-ib*RF)
TB.displayname Taxes paid by Banks
series Vh = Hh+BD+pb*B+pe*Eh
Vh.displayname Households Wealth
series Ve = K-L+pe*Ee-pe*E
Ve.displayname Firms Wealth
series Vb = Hb-BD+L+BT-RF
Vb.displayname Banks Wealth
series DIV = (1-sf)*(Y-W-rl*L)
DIV.displayname Dividends (Total)
series DIVe = DIV*(Ee/E)
DIVe.displayname Firms Dividends
series DIVh = DIV-DIVe
DIVh.displayname Households Dividends
series T = theta*(W+id*BD+B+DIVh)
T.displayname Taxes paid by Households
series YDh = W+id*BD+B+DIVh-T
YDh.displayname Disposable Income
series YHSh = YDh+CGh
YHSh.displayname Haig-Simons definition of Disposable Income
series gg = I/K
gg.displayname Capital Accumulation Rate
series UP = Y-W-rl*L-DIVh
UP.displayname Undistributed Profits
‘ Behavioral Equations’ starting values
series delta = 0.0625
delta.displayname Depreciation Rate
series a0 = 0.5658628
a0.displayname Constant Term in Consumption Function (Autonomous Consumption)
series v0 = 0.22382378
v0.displayname Constant Term in Bonds Function (Share of Bonds out of Households Wealth)
series f0 = 0.09826265506
f0.displayname Constant Term in Financial Accumulation Function (Share of Equity in Firms Total Assets)
series k0 = 0.1086334242
k0.displayname Constant Term in Capital Accumulation Function (Steady-State Growth Rate of Physical Capital)
series g0 = 0.2352693030
g0.displayname Constant Term in Indebtedness Norm (Debt-Capital Ratio)
series z0 = 0.3
z0.displayname Constant Term in Own Funds Norm (Equity Issued as share of Total Assets)
if {!model} = 1 then
series w0 = 0.389734150
w0.displayname Constant Term in Households Equity Function (Share of Equity out of Households Wealth)
else
series w0 = 0.5
w0.displayname Constant Term in Households Equity Function (Share of Equity out of Households Wealth)
endif
‘ Make Matrix of Stocks and save in default directory as .html
MATRIX(9,5) Stocks
for %secteur HH F G B CB
vector(9) v_{%secteur}
next
‘ Fill in Matrix of Stocks’ Columns with initial values. A minus sign indicates it is a liability.
V_HH(2) = @mean(Hh) ‘ (Hh) Money held by households, asset side
V_HH(3) = @mean(BD) ‘ (BD) Bank Deposits, asset side
V_HH(5) = @mean(pb)*@mean(B) ‘ (pb*B) Bonds held by households, asset side
V_HH(6) = @mean(pe)*@mean(Eh) ‘ (pe*Eh) Stock of Assets
V_HH(9) = @sum(V_HH) ‘ (Vh) Total Households’ wealth
V_F(1) = @mean(K) ‘ (K) Capital Stock
V_F(4) = -@mean(L) ‘ (-L) Loans, liability side
V_F(6) = @mean(pe)*(@mean(Ee)-@mean(E)) ‘ (pe*Ee-pe*E) Net financial assets held by firms
V_F(9) = @sum(V_F) ‘ (Ve) Total wealth held by firms
V_G(5) = -@mean(pb)*@mean(B) ‘ (-pb*B) Bonds held by households, liability side
V_G(7) = @mean(BT) ‘ (-BT) Treasury Bills, liability side
V_G(9) = @sum(V_G) ‘ (Vg) Total wealth held by the Government
V_B(2) = @mean(Hb) ‘ (Hb) Bank Money
V_B(3) = -@mean(BD) ‘ (-BD) Bank Deposits, liability side
V_B(4) = @mean(L) ‘ (L) Loans, asset side
V_B(7) = @mean(BT) ‘ (BT) Treasury Bills, asset side
V_B(8) = -@mean(RF) ‘ (-RF) Refinancing, liability side
V_B(9) = @sum(V_B) ‘ (Vb) Total wealth held by private banks
V_CB(2) = -@mean(H) ‘ (-H) Money held by househlds and banks, liability side
V_CB(8) = @mean(RF) ‘ (RF) Refinancing, asset side
V_CB(9) = @sum(V_CB) ‘ = 0 by definition
!col = 1
for %secteur HH F G B CB
colplace(Stocks,v_{%secteur},!col)
delete v_{%secteur}
!col = !col+1 next
freeze(Matrix_of_Stocks) Stocks
setline(Matrix_of_Stocks,3)
setcolwidth(Matrix_of_Stocks,1,12)
!col = 2 for %label Households Firms Government Banks Central_Bank
setcell(Matrix_of_Stocks,1,!col,%label,”c”)
!col = !col+1
next
!row = 4
for %label Capital Money Bank_Deposits Loans Bonds Equity Treasury_Bills Refinancing Total_Wealth
setcell(Matrix_of_Stocks,!row,1,%label,”l”)
!row = !row+1
next
Matrix_of_stocks.save(t=html)
Matrix_of_Stocks
‘ Model Specification (See paper and corresponding labels for explanation)
model sfc{!model}
sfc{!model}.append Y = Cp+I+G
sfc{!model}.append YDh = W+id*BD(-1)+B(-1)+DIVh-T
sfc{!model}.append YHSh = YDh+CGh
sfc{!model}.append T = theta*(W+B(-1)+id*BD(-1)+DIVh)
sfc{!model}.append {%cons_fn}
sfc{!model}.append d(BD) = YDh-Cp-pb*d(B)-pe*d(Eh)-d(Hh)
sfc{!model}.append {%bonds_fn}
sfc{!model}.append CGh = d(pb)*B(-1)+d(pe)*Eh(-1)
sfc{!model}.append CGe = d(pe)*Ee(-1)
sfc{!model}.append CG = CGe+CGh
sfc{!model}.append {%cap_acc_fn}
sfc{!model}.append {%m{!model}_of_eq}
sfc{!model}.append {%fin_prof}
sfc{!model}.append UP = Y-W-rl*L(-1)-DIVh
sfc{!model}.append DIV = (1-sf)*(Y(-1)-W(-1)-rl(-1)*L(-2))
sfc{!model}.append DIVe = DIV*(Ee(-1)/E(-1))
sfc{!model}.append DIVh = DIV-DIVe
sfc{!model}.append {%fin_acc}
sfc{!model}.append Ve = K+pe*Ee-L-pe*E
sfc{!model}.append {%peEh_fn}
sfc{!model}.append Eh = E-Ee
sfc{!model}.append VH = BD+pb*B+pe*Eh+Hh
sfc{!model}.append I = gg*K(-1)
sfc{!model}.append d(K) = I-delta*K(-1)
sfc{!model}.append {%m{!model}_debt_eq}
sfc{!model}.append W = r0*Y
sfc{!model}.append d(BT) = G+r*BT(-1)+B(-1)-T-TB-TCB-pb*d(B)
sfc{!model}.append pb = 1/rb
sfc{!model}.append Debt = (BT+pb*B)
sfc{!model}.append BP = (1-thetab)*(rl*L(-1)+r*BT(-1)-id*BD(-1)-ib*RF(-1))
sfc{!model}.append TB = thetab*(rl*L(-1)+r*BT(-1)-id*BD(-1)-ib*RF(-1))
sfc{!model}.append d(RF) = d(Hb)+d(L)+d(BT)-BP-d(BD)
sfc{!model}.append d(VB) = BP
sfc{!model}.append TCB = ib*RF(-1)
sfc{!model}.append Hb = lambda*BD
sfc{!model}.append Hh = lambda0*Cp
sfc{!model}.append H = Hh+Hb
sfc{!model}.append rl = ib+m1b
sfc{!model}.append id = ib-m2b
sfc{!model}.append r = rl
sfc{!model}.append rb = r
sfc{!model}.append G = G(-1)*(1+gpch)
‘ Simulation
sfc{!model}.scenario “Baseline”
if {!model}=1 then
sfc{!model}.solve(o=b)
‘ System Solving Method for Model 1: Broyden
else sfc{!model}.solve(o=n)
‘ System Solving Method for Model 2: Newton
endif
‘ Graphs
if {!model}=1 then
smpl 50 80
else
smpl 40 @last
endif
series y_gr = @pch(y_0)
y_gr.displayname Output Growth Rate, Model {!model}
series acc_rate = gg_0
acc_rate.displayname Capital Accumulation Rate, Model {!model}
graph bsln_growth{!model}.line y_gr ‘ acc_rate
bsln_growth{!model}.save({%graph_size}) M{!model}_bsln_growth
series pe_gr = @pch(pe_0)
pe_gr.displayname Price of Equity Growth Rate, Model {!model}
graph bsln_asset_price{!model}.line pe_gr
bsln_asset_price{!model}.save({%graph_size}) M{!model}_bsln_asset_price
series own_funds = pe_0*E_0/(K_0+pe_0*Ee_0)
own_funds.displayname Own Funds as Share of total Capital, Model {!model}
series debt_ratio = L_0/K_0
debt_ratio.displayname Debt-Physical Capital Ratio, Model {!model}
graph bsln_debt_own_funds{!model}.line own_funds debt_ratio
bsln_debt_own_funds{!model}.save({%graph_size}) M{!model}_bsln_debt_own_funds
graph bsln_h_rf{!model}.line h_0/rf_0
bsln_h_rf{!model}.addtext(t) Money / Refinancing (H/RF), Model {!model}
bsln_h_rf{!model}.save({%graph_size}) M{!model}_bsln_h_rf
series profit_rate = up_0/K_0
profit_rate.displayname Profit Rate, Model {!model}
graph bsln_profit_rate{!model}.line profit_rate
bsln_profit_rate{!model}.save({%graph_size}) M{!model}_bsln_profit_rate
graph share_acc{!model}.line (k1*(UP_0(-1)/K_0(-2)))/gg_0 (k2*(D(Y_0)/Y_0(-1)))/gg_0 (k3*(L_0(-1)/K_0(-1)))/gg_0 (k4*rl_0)/gg_0 k5*re_0/gg_0
share_acc{!model}.addtext(t) Capital Accumulation Elements Shares, Model {!model}
share_acc{!model}.save({%graph_size}) M{!model}_share_acc
graph share_acc_fin{!model}.line f1*re_0/(Ee_0*pe_0/(K_0+pe_0*Ee_0)) f2*(UP_0/K_0(-1))/(Ee_0*pe_0/(K_0+pe_0*Ee_0)) ‘ f3*(L_0/K_0)/(Ee_0*pe_0/(K_0+pe_0*Ee_0)) f4*r_0/(Ee_0*pe_0/(K_0+pe_0*Ee_0)) as an alternative share_acc_fin{!model}.addtext(t) Financial Accumulation Elements Shares, Model {!model} share_acc_fin{!model}.save({%graph_size}) M{!model}_share_acc_fin graph share_cns_fn{!model}.line a1*YHSh_0/Cp_0 a2*VH_0(-1)/Cp_0 share_cns_fn{!model}.addtext(t) Consumption Function Elements Shares, Model {!model} share_cns_fn{!model}.save({%graph_size}) M{!model}_share_cns graph share_bond_fn{!model}.line v3*re_0/(pb_0*B_0/VH_0) ‘ v1*rb_0/(pb_0*B_0/VH_0) v2*id_0/(pb_0*B_0/VH_0) as an alternative share_bond_fn{!model}.addtext(t) Bond Function Elements Shares, Model {!model} share_bond_fn{!model}.save({%graph_size}) M{!model}_share_bond graph share_hfinacc_fn{!model}.line w3*re_0/(pe_0*Eh_0/Vh_0) ‘ w1*rb_0/(pe_0*Eh_0/Vh_0) w2*id_0/(pe_0*Eh_0/Vh_0) as an alternative
share_hfinacc_fn{!model}.addtext(t) Households Fin Acc Function Elements Shares, Model {!model}
share_hfinacc_fn{!model}.save({%graph_size}) M{!model}_share_hfinacc
if {!model} = 1 then
graph share_debt_fn{!model}.line g1*(UP_0(-1)/K_0(-1))/(L_0/K_0) g2*re_0(-1)/(L_0/K_0)
share_debt_fn{!model}.addtext(t) Indebtedness Norm Elements Shares, Model {!model}
share_debt_fn{!model}.save({%graph_size}) M{!model}_share_debt
else
graph share_of_fn{!model}.line z1*rl_0/(E_0*pe_0/(K_0+pe_0*Ee_0)) z2*(L_0(-1)/K_0(-1))/(E_0*pe_0/(K_0+pe_0*Ee_0)) z3*re_0/(E_0*pe_0/(K_0+pe_0*Ee_0))
share_of_fn{!model}.addtext(t) Own Funds Norm Elements Shares, Model {!model}
share_of_fn{!model}.save({%graph_size}) M{!model}_share_of
endif
‘ Generate Shocks
smpl @all
genr a0_1= a0
genr r0_2 = r0
genr k0_3 = k0
genr f0_4 = f0
genr w0_5 = w0
smpl 45 @last
genr a0_1 = a0+{!Shock1}*cp
genr r0_2 = r0*(1+{!Shock2})
genr k0_3 = k0+{!Shock3}
genr f0_4 = f0+{!Shock4}
genr w0_5 = w0+{!Shock5}
smpl @all
‘ Scenarios (Shocks on):
‘ Consumption
sfc{!model}.scenario(n,a=_1) “Scenario_1”
sfc{!model}.override a0
sfc{!model}.solve
‘ Wage Share
sfc{!model}.scenario(n,a=_2) “Scenario_2”
sfc{!model}.override r0
sfc{!model}.solve
‘ Investment
sfc{!model}.scenario(n,a=_3) “Scenario_3”
sfc{!model}.override k0
sfc{!model}.solve
‘ Firms’ Financial Accumulation
sfc{!model}.scenario(n,a=_4) “Scenario_4”
sfc{!model}.override f0
sfc{!model}.solve
‘ Household’s Financial Accumulation
sfc{!model}.scenario(n,a=_5) “Scenario_5”
sfc{!model}.override w0
sfc{!model}.solve
‘ Graphs Shocks
delete S1_* S2_* S3_* S4_* S5_*
!reps = 5
for !i=1 to !reps
‘ Sample Period for Shocks’ Graphs
smpl 40 70
graph S{!i}_y_c_pe_m{!model}.line y_{!i}/y_0 cp_{!i}/cp_0 pe_{!i}/pe_0
S{!i}_y_c_pe_m{!model}.addtext(t) Model {!model}, Scenario {!i}
S{!i}_y_c_pe_m{!model}.name(1) Income
S{!i}_y_c_pe_m{!model}.name(2) Consumption
S{!i}_y_c_pe_m{!model}.name(3) Equity Price
S{!i}_y_c_pe_m{!model}.save({%graph_size}) M{!model}_S{!i}_y_c_pe
graph S{!i}_acc_profit_m{!model}.line (I_{!i}/K_{!i})-(I_0/K_0) (UP_{!i}/K_{!i})-(UP_0/K_0) re_{!i}-re_0
S{!i}_acc_profit_m{!model}.addtext(t) Model {!model}, Scenario {!i}
S{!i}_acc_profit_m{!model}.name(1) Capital Accumulation
S{!i}_acc_profit_m{!model}.name(2) Profit Rate
S{!i}_acc_profit_m{!model}.name(3) Financial Profitability
S{!i}_acc_profit_m{!model}.save({%graph_size}) M{!model}_S{!i}_acc_profit
‘ Wealth Effect not studied in this paper
‘ graph S{!i}_wealteff_m{!model}.line (Vh_{!i}/YDh_{!i})-(Vh_0/YDh_0)
‘ S{!i}_wealteff_m{!model}.addtext(t) Scenario {!i}
‘ S{!i}_wealteff_m{!model}.name(2) Wealth Effect, Model {!model}
‘ S{!i}_wealteff_m{!model}.save({%graph_size}) M{!model}_S{!i}_wealteff
graph S{!i}_debt_own_funds_m{!model}.line ((pe_{!i}*e_{!i})/(K_{!i}+pe_{!i}*ee_{!i}))-((pe_0*e_0)/(K_0+pe_0*ee_0)) (L_{!i}/K_{!i})-(L_0/K_0) S{!i}_debt_own_funds_m{!model}.addtext(t) Model {!model}, Scenario {!i} S{!i}_debt_own_funds_m{!model}.name(1) Own Funds peE/(K+peEe) S{!i}_debt_own_funds_m{!model}.name(2) Debt Ratio L/K
S{!i}_debt_own_funds_m{!model}.save({%graph_size}) M{!model}_S{!i}_debt_own_funds
smpl @all
next
Others
This section contains some Prezi links used for teaching purposes. These correspond to an undergraduate course in macroeconomics taught in French.
Indicateurs macroéconomiques, Le circuit économique, Analyse de la conjoncture, Politique budgétaire, Politique monétaire