tic ////////////////////////////////////////////////////////////////////// // BOK Dynamic Projection Model with Sector Module : BOKDPM.mod // ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// // Macroecnometric Modeling Section, Research Department // // Bank of Korea // // @developed by Heedon Kang(2008) // // @modified & extended by Dohoon Pyoun & Kangwoo Park(2009) // // @modified & extended by Hyeonsoo Kim & Baegun Kim(2010) // ////////////////////////////////////////////////////////////////////// close all; format long; set(0,'DefaultFigureWindowStyle','docked') // set the path of xlsxfile for recording the results //BOKDPM_xlsxfile; ////////////////////////////////////////////////////////////////////// // Definition of Variables and Parameters // ////////////////////////////////////////////////////////////////////// var RR_kor, RR_kor_BAR, RS_kor, UNR_kor, UNR_kor_GAP, UNR_kor_BAR, UNR_G_kor, Y_kor, LGDP_kor, LGDP_kor_BAR, G_kor, GROWTH_kor, GROWTH4_kor, GROWTH4_kor_BAR, BLT_kor, BLT_kor_BAR, E, BLT_kor_GAP, LCPI_kor, PIE_kor, PIE_kor4, PIE_E_kor4, CA_kor, CA, LS_kor, LS_kor_BAR, S_G_kor, S_kor, LDEF_kor, DEF_kor, DEF_kor4, RR_us, RR_us_BAR, RS_us, Y_us, LGDP_us, LGDP_us_BAR, G_us, GROWTH_us, GROWTH4_us, GROWTH4_us_BAR, BLT_us, BLT_us_BAR, E_us, BLT_us_GAP, LCPI_us, PIE_us, PIE_us4, TPREM, RCD_kor, RCD_kor_BAR, CD_kor, LHOUSE_kor, HOUSE_kor, HOUSE_kor4, LOIL_us, PIE_OIL_us, PIE_OIL_us4, PIE_OIL_kor, PIE_OIL_kor4, TPREM_CB, RCB_kor, RCB_kor_BAR, CB_kor, GE_kor, TPREM_TB, RTB_kor, RTB_kor_BAR, TB_kor, RES_CB_kor ; varexo RES_RR_kor_BAR, RES_RS_kor, RES_UNR_kor_GAP, RES_UNR_kor_BAR, RES_UNR_G_kor, RES_Y_kor, RES_LGDP_kor_BAR, RES_G_kor, RES_BLT_kor, RES_BLT_kor_BAR, RES_PIE_kor, RES_PIE_E_kor4, RES_CA_kor, RES_LS_kor_BAR, RES_S_G_kor, RES_S_kor, RES_DEF_kor, RES_RR_us_BAR, RES_RS_us, RES_Y_us, RES_LGDP_us_BAR, RES_G_us, RES_BLT_us, RES_BLT_us_BAR, RES_PIE_us, RES_CD_kor, RES_RCD_kor_BAR, RES_HOUSE_kor, RES_OIL_us, RES_RCB_kor_BAR, RES_GE_kor, RES_TB_kor, RES_RTB_kor_BAR, RES_RES_CB_kor ; parameters gamma_kor1, gamma_kor2, gamma_kor3, rho_kor, rr_kor_bar_ss, alpha_kor1, alpha_kor2, alpha_kor3, UNR_kor_ss, tau_kor, beta_kor1, beta_kor2, beta_kor3, beta_kor4, growth_kor_ss, theta, kappa_kor1, blt_kor_ss, lambda_kor1, lambda_kor2, lambda_kor3, lambda_kor4, pietar_kor_ss, omega_kor1, omega_kor2, omega_kor3, omega_kor4, omega_kor5, omega_kor6, omega_kor7, omega_kor8, omega_kor9, omega_kor10, omega_kor11, s_kor_ss, psi_kor1, psi_kor2, psi_kor3, psi_kor4, def_kor_ss, gamma_us1, gamma_us2, gamma_us3, rho_us, rr_us_bar_ss, tau_us, beta_us1, beta_us2, beta_us3, growth_us_ss, kappa_us, theta_us, blt_us_ss, lambda_us1, lambda_us2, lambda_us3, pietar_us_ss, tprem_kor_ss, bbb_kor1, rho_cd_kor, zeta_kor1, zeta_kor2, zeta_kor3, zeta_kor4, zeta_kor6, house_kor_ss, beta_kor5, lambda_kor5, rho_oil1, rho_oil2, oil_g_us_ss, beta_kor6, lambda_kor6, psi_kor5, beta_us4, lambda_us4, tprem_cb_kor_ss, bbb_kor5, rho_cb_kor, ge_kor_ss, beta_kor7, tprem_tb_kor_ss, bbb_kor7, rho_tb_kor, bbb_kor3, bbb_kor4 ; ////////////////////////////////////////////////////////////////////// // Parameters // ////////////////////////////////////////////////////////////////////// gamma_kor1 = 0.5000; gamma_kor2 = 1.5000; gamma_kor3 = 0.5000; rho_kor = 0.5000; rr_kor_bar_ss = 1.5000; // 1.3166 til 2008.q3 1.0766 til 2009q4 alpha_kor1 = 0.8000; alpha_kor2 = 0.3000; alpha_kor3 = 0.5000; UNR_kor_ss = 3.6083; // = average of 'unr_kor(sa)' tau_kor = 0.1000; beta_kor1 = 0.5000; beta_kor2 = 0.1000; beta_kor3 = 0.1000; beta_kor4 = 0.3000; growth_kor_ss = 4.2925; // 4.9778 til '08q3, 4.2925 til '09q4 theta = 1.0000; kappa_kor1 = 20.0000; blt_kor_ss = 0.0000; ge_kor_ss = 7.5885; // = average('00q1~'08q4) beta_kor7 = 0.0500; lambda_kor1 = 0.5500; lambda_kor2 = 0.1500; lambda_kor3 = 0.6500; lambda_kor4 = 0.0200; pietar_kor_ss = 3.0000; // 3.1019 = average('00q1~'08q4) of d4ln(CPI) omega_kor1 = 0.5000; omega_kor2 = 0.2000; omega_kor3 = 0.1000; omega_kor4 = 0.2500; omega_kor5 = 0.5500; omega_kor6 = 0.1000; omega_kor7 = 0.5000; omega_kor8 = 0.2000; omega_kor9 = 0.0150; omega_kor10 = 0.9000; omega_kor11 = 0.2500; s_kor_ss = 0.0000; psi_kor1 = 0.4000; psi_kor2 = 0.2000; psi_kor3 = 0.5000; psi_kor4 = 0.0500; def_kor_ss = 2.1943; // 2.1949 til 08q3, 2.3152 til 09q4 tprem_kor_ss = 0.3900; // 0.5651 til 08q3, 0.5937 til 09q4 bbb_kor1 = 0.0300; rho_cd_kor = 0.8000; tprem_cb_kor_ss = 0.7419; // 0.7771 til 08q3, 0.9473 til 09q4 bbb_kor5 = 0.0300; rho_cb_kor = 0.5000; tprem_tb_kor_ss = 0.7645; // 1.0371 til 08q3, 1.1292 til 09q4 bbb_kor7 = 0.0500; rho_tb_kor = 0.5000; // 0.0383 by eviews zeta_kor1 = 0.8000; zeta_kor2 = 0.2000; zeta_kor3 = 0.1000; zeta_kor4 = 0.1000; zeta_kor6 = 0.1000; house_kor_ss = 4.2000; // 5.6470 til 08q3, 5.0353 til 09q4 beta_kor5 = 0.1000; lambda_kor5 = 0.1000; gamma_us1 = 0.5000; gamma_us2 = 1.5000; gamma_us3 = 0.2000; rho_us = 0.9000; rr_us_bar_ss = 2.0000; // 0.4666 til 08q3, 0.4283 til 09q4 tau_us = 0.1000; beta_us1 = 0.7000; beta_us2 = 0.1500; beta_us3 = 0.1000; theta_us = 1.0000; kappa_us = 20.0000; growth_us_ss = 2.3000; // 2.4660 til 08q3, 1.8638 til 09q4 blt_us_ss = 0.0000; lambda_us1 = 0.4500; lambda_us2 = 0.0500; lambda_us3 = 0.5000; pietar_us_ss = 2.4982; // 2.8845 til 08q3, 2.5305 til 09q4 rho_oil1 = 0.9000; rho_oil2 = 0.1000; oil_g_us_ss = 9.8763; // 9.5620 beta_kor6 = 0.1000; lambda_kor6 = 0.1000; psi_kor5 = 0.1000; beta_us4 = 0.0500; lambda_us4 = 0.0500; bbb_kor3 = 0.0500; bbb_kor4 = 0.7000; ////////////////////////////////////////////////////////////////////// // MODEL : Five Main Blocks + many other equations // ////////////////////////////////////////////////////////////////////// model; //////////////////// // KOREAN ECONOMY // //////////////////// // 1. Forward-looking IS curve(LN of GDP level and Output Gap) LGDP_kor = LGDP_kor_BAR + Y_kor; LGDP_kor_BAR = LGDP_kor_BAR(-1) + G_kor/4 + RES_LGDP_kor_BAR; G_kor = tau_kor*growth_kor_ss + (1-tau_kor)*G_kor(-1) + RES_G_kor; Y_kor = beta_kor1*Y_kor(-1) + beta_kor2*Y_kor(+1) - beta_kor3*(RCB_kor(-1)-RCB_kor_BAR(-1)) + theta*(0.04*(E(-1)+E(-9))+0.08*(E(-2)+E(-8))+0.12*(E(-3)+E(-7))+0.16*(E(-4)+E(-6))+0.2*E(-5)) + beta_kor4*Y_us + beta_kor5*(HOUSE_kor4 - house_kor_ss) - beta_kor6*(PIE_OIL_kor - oil_g_us_ss/4) + beta_kor7*(0.25*(GE_kor(-1)+GE_kor(-2)+GE_kor(-3)+GE_kor(-4)) - ge_kor_ss) + RES_Y_kor; GROWTH_kor = LGDP_kor - LGDP_kor(-1); GROWTH4_kor = LGDP_kor - LGDP_kor(-4); GROWTH4_kor_BAR = LGDP_kor_BAR - LGDP_kor_BAR(-4); // 1.1 Bank Lending Tightness BLT_kor = BLT_kor_BAR + BLT_kor_GAP ; BLT_kor_GAP = blt_kor_ss + kappa_kor1*Y_kor(+4) + RES_BLT_kor; BLT_kor_BAR = BLT_kor_BAR(-1) + RES_BLT_kor_BAR; E = RES_BLT_kor; // 1.2 Government Expenditure GE_kor = ge_kor_ss + RES_GE_kor; // 2. Forward-looking Phillips curve(LN of GDP level and Output Gap) LCPI_kor = LCPI_kor(-1) + PIE_kor; PIE_kor = lambda_kor3*pietar_kor_ss/4 + (1-lambda_kor3)*(lambda_kor1*PIE_kor4(+4)/4 + (1-lambda_kor1)*PIE_kor4(-1)/4 + lambda_kor2*Y_kor(-1) + lambda_kor4*S_kor + lambda_kor5*(HOUSE_kor4 - house_kor_ss) + lambda_kor6*(PIE_OIL_kor-oil_g_us_ss/4)) + RES_PIE_kor; PIE_kor4 = (PIE_kor + PIE_kor(-1) + PIE_kor(-2) + PIE_kor(-3)); PIE_E_kor4 = PIE_kor4(+4) + RES_PIE_E_kor4; // 2.1 GDP Deflator LDEF_kor = LDEF_kor(-1) + DEF_kor; DEF_kor = psi_kor3*def_kor_ss/4 + (1-psi_kor3)*(psi_kor1*DEF_kor4(+4)/4 + (1-psi_kor1)*DEF_kor4(-1)/4 + psi_kor2*Y_kor(-1) + psi_kor4*S_kor + psi_kor5*(PIE_OIL_kor-oil_g_us_ss/4)) + RES_DEF_kor; DEF_kor4 = (DEF_kor + DEF_kor(-1) + DEF_kor(-2) + DEF_kor(-3)); // 3. Policy Reaction Function // 3.1. Policy Reaction Function RS_kor = gamma_kor1*RS_kor(-1) + (1-gamma_kor1)*(RR_kor_BAR + pietar_kor_ss + gamma_kor2*(PIE_E_kor4-pietar_kor_ss) + gamma_kor3*Y_kor) + RES_RS_kor; RR_kor = RS_kor - PIE_kor4(+4); RR_kor_BAR = rho_kor*rr_kor_bar_ss + (1-rho_kor)*RR_kor_BAR(-1) + RES_RR_kor_BAR; // 3.2. CD Interest rate with Risk Premium CD_kor = RS_kor + TPREM; TPREM = tprem_kor_ss - bbb_kor1*(BLT_kor-BLT_kor(-1)) + RES_CD_kor; RCD_kor = CD_kor - PIE_kor4(+4); RCD_kor_BAR = rho_cd_kor*(tprem_kor_ss + rr_kor_bar_ss) + (1-rho_cd_kor)*RCD_kor_BAR(-1) + RES_RCD_kor_BAR; // 3.3. Treasury Bond with risk premium TB_kor = RS_kor + TPREM_TB; TPREM_TB = bbb_kor3*tprem_tb_kor_ss + (1-bbb_kor3)*TPREM_TB(-1) + bbb_kor7*(0.25*(Y_kor+Y_kor(+1)+Y_kor(+2)+Y_kor(+3)+Y_kor(+4))) + RES_TB_kor; RTB_kor = TB_kor - PIE_kor4(+4); RTB_kor_BAR = rho_tb_kor*(rr_kor_bar_ss+tprem_tb_kor_ss) + (1-rho_tb_kor)*RTB_kor_BAR(-1) + RES_RTB_kor_BAR; // 3.4. Corporate Bond Interest Rate with Risk Premium CB_kor = TB_kor + TPREM_CB; TPREM_CB = tprem_cb_kor_ss - bbb_kor5*(BLT_kor-BLT_kor(-1)) + RES_CB_kor; RCB_kor = CB_kor - PIE_kor4(+4); RCB_kor_BAR = rho_cb_kor*(rr_kor_bar_ss+tprem_tb_kor_ss+tprem_cb_kor_ss) + (1-rho_cb_kor)*RCB_kor_BAR(-1) + RES_RCB_kor_BAR; RES_CB_kor = bbb_kor4*RES_CB_kor(-1)+RES_RES_CB_kor; // 4. Unemployment Equation(dynamic Okun's Law) UNR_kor = UNR_kor_BAR + UNR_kor_GAP; UNR_kor_BAR = UNR_kor_BAR(-1) + UNR_G_kor + RES_UNR_kor_BAR; UNR_G_kor = alpha_kor3*UNR_G_kor(-1) + RES_UNR_G_kor; UNR_kor_GAP = alpha_kor1*UNR_kor_GAP(-1) - alpha_kor2*Y_kor + RES_UNR_kor_GAP; // 5. Balance of Payment // 5.1 Current Account Equation CA_kor = omega_kor1*CA_kor(-4) + omega_kor2*S_kor(-1) - omega_kor3*(PIE_OIL_us(-1) - oil_g_us_ss/4) - omega_kor5*Y_kor + omega_kor11*Y_us + RES_CA_kor; CA = CA_kor*exp(LGDP_kor/100)*exp(LDEF_kor/100)/1000/exp(LS_kor/100); // 5.2 Exchange Rate Equation LS_kor = LS_kor_BAR + S_kor; LS_kor_BAR = LS_kor_BAR(-1) + S_G_kor + RES_LS_kor_BAR; S_G_kor = omega_kor10*s_kor_ss + (1-omega_kor10)*S_G_kor(-1) + RES_S_G_kor; S_kor = omega_kor6*s_kor_ss + (1-omega_kor6)*(omega_kor7*S_kor(+1) + (1-omega_kor7)*S_kor(-1) - omega_kor4*((RR_kor-RR_kor_BAR) - (RR_us-RR_us_BAR)) - omega_kor8*CA_kor(-1) + omega_kor9*BLT_us) + RES_S_kor; // 6. Housing Price LHOUSE_kor = LHOUSE_kor(-1) + HOUSE_kor; HOUSE_kor = zeta_kor1*house_kor_ss/4 + (1-zeta_kor1)*(zeta_kor2*HOUSE_kor4(+4)/4 + (1-zeta_kor2)*HOUSE_kor4(-1)/4 + zeta_kor3*Y_kor - zeta_kor4*(RCD_kor(-1)-RCD_kor_BAR(-1)) + zeta_kor6*BLT_kor(-4)) + RES_HOUSE_kor; HOUSE_kor4 = (HOUSE_kor + HOUSE_kor(-1) + HOUSE_kor(-2) + HOUSE_kor(-3)); //////////////// // US ECONOMY // //////////////// // 7. Forward-looking IS curve(LN of GDP level and Output Gap) LGDP_us = LGDP_us_BAR + Y_us; LGDP_us_BAR = LGDP_us_BAR(-1) + G_us/4 + RES_LGDP_us_BAR; G_us = tau_us*growth_us_ss + (1-tau_us)*G_us(-1) + RES_G_us; Y_us = beta_us1*Y_us(-1) + beta_us2*Y_us(+1) - beta_us3*(RR_us(-1)-RR_us_BAR(-1)) + theta_us*(0.04*(E_us(-1)+E_us(-9))+0.08*(E_us(-2)+E_us(-8))+0.12*(E_us(-3)+E_us(-7))+0.16*(E_us(-4)+E_us(-6))+0.2*E_us(-5)) - beta_us4*(PIE_OIL_us-oil_g_us_ss/4) + RES_Y_us; GROWTH_us = LGDP_us - LGDP_us(-1); GROWTH4_us = LGDP_us - LGDP_us(-4); GROWTH4_us_BAR = LGDP_us_BAR - LGDP_us_BAR(-4); // 7.1 Bank Lending Tightness BLT_us = BLT_us_BAR + BLT_us_GAP; BLT_us_GAP = blt_us_ss -kappa_us*Y_us(+4) + RES_BLT_us; BLT_us_BAR = BLT_us_BAR(-1) + RES_BLT_us_BAR; E_us = RES_BLT_us; // 8. Forward-looking Phillips curve(LN of GDP level and Output Gap) LCPI_us = LCPI_us(-1) + PIE_us; PIE_us = lambda_us3*pietar_us_ss/4 + (1-lambda_us3)*(lambda_us1*PIE_us4(+4)/4 + (1-lambda_us1)*PIE_us4(-1)/4 + lambda_us2*Y_us + lambda_us4*(PIE_OIL_us-oil_g_us_ss/4)) + RES_PIE_us; PIE_us4 = (PIE_us + PIE_us(-1) + PIE_us(-2) + PIE_us(-3)); // 9. Policy Reaction Function RS_us = gamma_us1*RS_us(-1) + (1-gamma_us1)*(RR_us_BAR + pietar_us_ss + gamma_us2*(PIE_us4(+4)-pietar_us_ss) + gamma_us3*Y_us) + RES_RS_us; RR_us = RS_us - PIE_us4(+4); RR_us_BAR = rho_us*rr_us_bar_ss + (1-rho_us)*RR_us_BAR(-1) + RES_RR_us_BAR; //////////////// // OIL PRICE // //////////////// // 11. Oil Price LOIL_us = LOIL_us(-1) + PIE_OIL_us; PIE_OIL_us = rho_oil1*oil_g_us_ss/4 + (1-rho_oil1)*PIE_OIL_us(-1) + rho_oil2*Y_us(-1) + RES_OIL_us; PIE_OIL_us4 = PIE_OIL_us + PIE_OIL_us(-1) + PIE_OIL_us(-2) + PIE_OIL_us(-3); PIE_OIL_kor = PIE_OIL_us + (LS_kor - LS_kor(-1)); PIE_OIL_kor4 = PIE_OIL_kor + PIE_OIL_kor(-1) + PIE_OIL_kor(-2) + PIE_OIL_kor(-3); end; unit_root_vars UNR_kor_BAR, UNR_kor, LCPI_kor, LGDP_kor, LGDP_kor_BAR, BLT_kor, BLT_kor_BAR, LS_kor, LS_kor_BAR, LCPI_us, LGDP_us, LGDP_us_BAR, BLT_us, BLT_us_BAR, LHOUSE_kor, LOIL_us; ////////////////////////////////////////////////////////////////////// // Steady State in line with the initial values // ////////////////////////////////////////////////////////////////////// steady; ////////////////////////////////////////////////////////////////////// // Checking Generalized Blanchard-Kahn Condition // ////////////////////////////////////////////////////////////////////// check; ////////////////////////////////////////////////////////////////////// // Estimate // // Data file : BOKDPM_data_0804.m // ////////////////////////////////////////////////////////////////////// estimated_params; gamma_kor2, gamma_pdf, gamma_kor2, 0.100; end; varobs UNR_kor RS_kor LCPI_kor LGDP_kor Y_kor BLT_kor GE_kor CA_kor LS_kor LDEF_kor RS_us LCPI_us LGDP_us Y_us BLT_us CD_kor CB_kor LHOUSE_kor LOIL_us TB_kor; observation_trends; LGDP_kor (growth_kor_ss/4); LCPI_kor (pietar_kor_ss/4); LDEF_kor (def_kor_ss/4); LGDP_us (growth_us_ss/4); LCPI_us (pietar_us_ss/4); LHOUSE_kor (house_kor_ss/4); LOIL_us (oil_g_us_ss/4); end; options_.kalman_algo = 5; estimation(datafile=BOKDPM_data_0904,nobs=40, mh_replic=2000, mh_jscale=0.35, mh_nblocks=1, filtered_vars, filter_step_ahead=[1:20], forecast=20, conf_sig=0.95); ////////////////////////////////////////////////////////////////////// // Rerun Steady State in line with the estimated parameters // ////////////////////////////////////////////////////////////////////// steady; ////////////////////////////////////////////////////////////////////// // Check Generalized B-K Condition with the estimated parameters // ////////////////////////////////////////////////////////////////////// check; //////////////////////////////////////////////////////////////////////// //// Main Results are written in BOKDPM.xls // //////////////////////////////////////////////////////////////////////// //BOKDPM_excel; ////////////////////////////////////////////////////////////////////// // End of File // ////////////////////////////////////////////////////////////////////// toc