首先,祝所有的老师,教师节快乐!
近期,受上海财大金融学院、现代金融研究中心丁剑平教授邀请去上财毓秀楼做了一次“SOE-DSGE”的报告。
SOE就是小型开放经济(Small Open Economy)的简称,它是在经典的封闭经济NK框架中引入外国部门。我们曾解读国BKK(1992)的开放经济RBC——
重读经典(4):国际实际商业周期(BKK,1992)
。但是,BKK模型并没有体现出名义因素对政策传导机制的重要影响。例如,汇率在货币政策传导机制中发挥的重要作用(Walsh,2015)。
对于New open-economy macroeconomics的经典文献有:Obstfeld and Rogoff (1995; 1 996; 2000), Corsetti and Presenti (200 1 ; 2002), Betts and Devereux (2000), Benigno and Benigno (2008), and Kollman (2001)。Lane (2001), Engel (2002),Corsetti, Dedola,and Leduc (2010)则对“新开放经济宏观经济学”进行了比较全面的综述。
在经典的封闭经济NK框架中,建模开放经济:(1)小型开放经济(Small Open Economy):Gali & Monacelli(2005,RES);(2)两国模型(two-country model):Clarida et al.(2002,JME)。这两篇文章都是开放经济的绝对经典、必看文献。实际上,Clarida et al.(2002,JME)的两国模型是基于Gali & Monacelli(2005,RES)的SOE模型。从某些方面来看,两国模型比小型开放经济模型还要简单一些。因此,本文主要阐述SOE的结构及其参数估计code。
一、封闭经济NK模型的性质
经典NK模型满足两条性质:
(1)费雪性质:NK框架的内核是RBC;
(2)反费雪性质:企业基于当前和未来边际成本设定价格。相对来说,暂时性货币政策冲击不影响未来的经济状态,因此,实际通胀几乎不受影响。
需求端传导机制:紧缩货币政策→名义利率上升→实际利率上升→当期消费减少→通胀下降;
供给端传导机制:劳动收入下降→当期消费和就业下降→工资和边际成本下降→通胀下降。
三方程NK模型形式DSGE建模与编程入门(31):最优货币政策(一):
•动态IS方程。线性化的代数方程为
x ̃_t=E_tx ̃_(t+1)-σ^(-1) (i_t-E_tπ_(t+1)-r_t^n )
其中,x ̃_t表示产出缺口,即对数产出y_t与对数潜在产出y_t^n之差;i_t表示名义利率;π_t表示通胀率;r_t^n表示自然利率。
•新凯恩斯主义菲利普斯曲线(NKPC)
π_t=βE_tπ_(t+1)+κx ̃_t
•货币政策-泰勒规则(Taylor,1993)
i_t=ϕ_ππ_t+ϕ_xx ̃_t+ε_(i,t)
其中,ε_i表示外生的货币政策冲击,一般遵循AR(1)过程。
可以清晰地看出:
第一,货币政策冲击确实有实际效应,即外生的紧缩货币政策(ε_(i,t)上升)会使得名义和实际利率都升高,从而抑制产出和通胀,但长期自然率不受影响;
第二,货币非中性还表现在当产出对非货币冲击(y_t^n 或r_t^n的冲击)的响应依赖于央行采取的货币政策规则;
第三,当央行调整利率对通胀和产出缺口足够敏感时,经济会出现唯一均衡,否则就会出现局部不确定性。
两个重要的政策含义:
第一,货币政策的外生变化不仅仅对名义变量有影响,还会对实际变量产生重要效应;
第二,经济对任何冲击的均衡响应都不可能独立于货币政策规则,即为不同规则的货币政策分析打开了大门(Gali,2018)。
Dynare代码如下:
%版权所有@许文立,宏观经济研学会
%本代码主要基于Pfeifer的GM(2005)dynare代码修改。
var pih ${\pi_h}$ (long_name='Domestic inflation')
x $x$ (long_name='Output gap')
y $y$ (long_name='Output')
ynat ${\bar y}$ (long_name='Natural output')
rnat ${\bar r}$ (long_name='Natural interest rate')
r $r$ (long_name='Nominal interest rate')
s $s$ (long_name='Terms of trade')
pi ${\pi}$ (long_name='CPI inflation')
p $p$ (long_name='CPI level')
ph $$ (long_name='Domestic price level')
e $e$ (long_name='Exchange rate')
ystar $$ (long_name='World output')
pistar ${\pi^{*}}$ (long_name='World inflation')
n $$ (long_name='Employment')
nx $$ (long_name='Net Exports')
real_wage $$ (long_name='Real Wage')
a $a$ (long_name='Risk aversion')
c $c$ (long_name='Domestic consumption')
deprec_rate $\Delta e_t$ (long_name='Nominal depr. rate')
r_obs
e_obs
p_obs;
varexo eps_star ${\varepsilon^{*}}$ (long_name='World output shock')
eps_a ${\varepsilon^}$ (long_name='World output shock')
eps_r;
parameters sigma $\sigma$ (long_name='risk aversion')
eta $\eta$ (long_name='Substitution home foreign')
gamma $\gamma$ (long_name='Substitution between foreign')
phi $\varphi$ (long_name='Inverse Frisch elasticity')
epsilon $\varepsilon$ (long_name='Elasticit of substitution')
theta $\theta$ (long_name='Calvo parameter')
beta $\beta$ (long_name='discount factor')
alpha $\alpha$ (long_name='openness')
phi_pi $\phi_\pi$ (long_name='Feedback Taylor rule inflation')
rhoa $\rho_a$ (long_name='autocorrelation TFP')
rhoy $\rho_y$ (long_name='autocorrelation foreign output')
;
% set deep parameters
sigma = 1;
eta = 1 ;
gamma = 1;
phi = 3;
epsilon = 6;
theta = 0.75;
beta = 0.99;
alpha = 0.4;
phi_pi = 1.5;
rhoa = 0.9; %use value used for Figure 1, reset later
rhoy = 0.86;
model(linear);
//define parameter dependencies
//steady state real interest rate, defined below equation (11)
#rho = beta^(-1)-1;
//defined below equation (27)
#omega = sigma*gamma+(1-alpha)*(sigma*eta-1);
//defined below equation (29)
#sigma_a =sigma/((1-alpha)+alpha*omega);
#Theta=(sigma*gamma-1)+(1-alpha)*(sigma*eta-1);
//defined below equation (32)
#lambda = (1-(beta*theta))*(1-theta)/theta;
//defined below equation (36)
#kappa_a =lambda*(sigma_a+phi);
//defined below equation (35)
#Gamma = (1+phi)/(sigma_a+phi);
#Psi = -Theta*sigma_a/(sigma_a+phi);
//1. Equation (37), IS Curve
x = x(+1) - sigma_a^(-1)*(r - pih(+1) - rnat) ;
//2. Equation (36), Philips Curve
pih = beta * pih(+1)+ kappa_a*x;
//3. Equation below (37)
rnat = -sigma_a*Gamma*(1-rhoa)*a + alpha*sigma_a*(Theta+Psi)*(ystar(+1)-ystar);
//4. Equation (35), definition natural level of output
ynat = Gamma*a + alpha*Psi*ystar;
//5. Equation above (35), definition output gap
x = y - ynat;
//6. Equation (29)
y = ystar + sigma_a^(-1)*s;
//7. Equation (14)
pi = pih + alpha*(s-s(-1));
//8. Equation 15 (first difference)
s = s(-1) + e - e(-1) + pistar - pih;
//9. Constant world inflation, see p.724 (Given constant world prices)
pistar = 0;
//10. Equation (22), employment
y = a + n;
//11. Equation (31), net exports
nx = alpha*(omega/sigma-1)*s;
//12. Equation (27), defines consumption
y = c+alpha*omega/sigma*s;
//13. Above equation (11), defines real wage
real_wage = sigma*c+phi*n;
//14-16. Equations on p. 723, stochastic processes
a = rhoa*a(-1) + eps_a;
ystar= rhoy*ystar(-1) + eps_star;
r = phi_pi*pih+ eps_r; // domestic inflation-based Taylor rule (DITR)
//definition consumer price level
pi = p - p(-1);
//definition domestic price level
pih = ph - ph(-1);
//definition nominal depreciation rate of exchange rate
deprec_rate=e-e(-1);
r_obs=r-steady_state(r);
p_obs=p-steady_state(p);
e_obs=e-steady_state(e);
end;
shocks;
var eps_a = 0.0071^2; //the standard deviation of productivity
var eps_star = 0.0078^2; //the standard deviation of world output
var eps_r=0.01;
end;
estimated_params;
rhoa,beta_pdf,0.9,0.1;
rhoy,beta_pdf,0.86,0.05;
stderr eps_a,inv_gamma_pdf,0.03,inf;
stderr eps_star,inv_gamma_pdf,0.008,inf;
stderr eps_r,inv_gamma_pdf,0.02,inf;
end;
varobs e_obs p_obs r_obs;
estimation(mh_jscale=0.33,
mode_compute=6,
datafile=soe1,
mh_nblocks=2,
mode_check,
diffuse_filter,
mh_replic=2000,
mh_drop=0.25,
plot_priors=1,
bayesian_irf);
shock_decomposition y;
注:(1)详细的讲稿和数据文件会放在本公众号的百度共享网盘中(
https://pan.baidu.com/s/1qwOdFc0zlGcQoC0KRIIkCA)。有兴趣可以去下载。
(2)除了上述参考文献外,还有两本书也可作为进一步参考资料,Gali(2015)第八章,Walsh(2015)第九章。
领取专属 10元无门槛券
私享最新 技术干货