前置条件与学习依赖 / PREREQUISITES
数学 / 统计基础一元/多元一阶泰勒展开、$\hat x_t=\ln(X_t/X)$ 技巧、矩阵代数、理性预期线性系统与 Blanchard-Kahn 条件的线性代数基础。
经济学理论前置NK 模型的非线性 FOC 与稳态值——本页正是把它们在稳态处翻成线性系统。
软件 / 计算前置MATLAB + Dynare;能读懂 .mod 并理解 Dynare 自动线性化的输出。
站内前置页面先学 03-steady-state:必须先有稳态值,才能在其处展开。
难度与路线位置进阶DSGE 线性化的核心技术页,也是 05 Dynare 求解与 15 扰动法的前置。
📚 基础知识库 · 本页定位

本页是 DSGE 基础知识库页面。定位:先单独学会这个工具,再到模型分支里看它怎么用。对数线性化是连接"非线性微观优化"与"线性理性预期求解"的桥梁,吃透 $\hat{x}_t$ 与一阶泰勒展开后,再去各分支里看它如何落地。

在哪些模型分支中使用:几乎所有线性求解的 DSGE 分支都靠它—— RBC 基准模型 · NK 三方程 · 中尺度 SW · 小国开放经济 · 金融摩擦 BGG/GK · 财政与货币规则 · TANK两主体 · HANK · 适应性学习

01 为什么必须线性化

DSGE 的原始均衡条件(equilibrium conditions)几乎都是非线性的:$C_t^{-\sigma}=\beta E_t[C_{t+1}^{-\sigma}(1+r_t)]$、价格加成 $\frac{\theta}{\theta-1}\frac{MC_t}{P_t}=\pi_t$ 之类。要对一个理性预期(rational expectations)非线性系统求解析解,一般是不可能的;即便用数值方法,全局解(global solution)在十维以上的中型模型里代价极高。而宏观时间序列中的波动(business-cycle fluctuations)相对稳态(steady state)的偏离通常很小——战后美国产出缺口基本在 $\pm 5\%$ 以内。这给了我们一个便宜而可靠的近似:在稳态附近把所有方程做一阶泰勒展开(first-order Taylor expansion),只保留偏离稳态的一阶项,扔掉二阶及以上的"小量平方"。

这样做的回报巨大:(1) 系统变成线性的,可用 Blanchard-Kahn 条件、Blanchard-Kahn-Klein 或 Uhlig 方法一步求出政策函数(policy function);(2) 脉冲响应(IRF)关于冲击是线性的、可加的,方差分解、历史分解都变成线性代数;(3) Dynare 等工具会自动做这一步,我们只需写对非线性方程。代价是:一阶近似下不确定性不影响决策(确定性等价,certainty equivalence),也看不到风险溢价(risk premium)和偏态;要研究零利率下限(ZLB)、尾部风险或福利成本的二阶项,就必须升级到二阶/三阶近似(见第 06、08 站)。

💡 直觉

线性化 = 在稳态这个"锚"附近,把弯弯曲曲的曲线局部拉直。$\hat{x}_t$ 不是 $x_t$ 本身,而是 $x_t$ 相对稳态的百分比偏离。IRF 横轴上的"1% 冲击",纵轴读出来的数字就是这个百分比。

02 对数偏离的定义与一阶泰勒展开技巧

设变量 $x_t$ 的确定性稳态为 $x$(去掉时间下标、不加帽)。对数偏离(log deviation / hat variable)定义为:

定义 · 对数偏离
$$\hat{x}_t \equiv \log\left(\frac{x_t}{x}\right) = \log x_t - \log x$$

当偏离很小时,$\hat{x}_t \approx \frac{x_t - x}{x}$,即$\hat{x}_t$ 在数值上等于"偏离稳态的百分比"(乘以 100 就是百分数)。由 $x_t = x e^{\hat{x}_t}$,再做泰勒展开 $e^{\hat{x}_t}\approx 1+\hat{x}_t$,得到整个 DSGE 线性化最常用的三条"恒等式":

核心恒等式(只保留一阶)
$$x_t \approx x\,(1+\hat{x}_t),\qquad \hat{x}_t \approx \frac{x_t-x}{x},\qquad \widehat{x_t y_t} \approx \hat{x}_t + \hat{y}_t,\qquad \left(\widehat{x_t^\alpha}\right) \approx \alpha\,\hat{x}_t$$

对数把"乘积"变"和"、把"幂次"变"倍数",这正是对数线性化比直接线性化好用的原因。对任意函数 $f(x_t)$ 在 $x$ 处做一阶泰勒展开

一阶泰勒展开
$$f(x_t) \approx f(x) + f'(x)\,(x_t - x) = f(x)\,\big[1 + \underbrace{\frac{x\,f'(x)}{f(x)}}_{\text{弹性}} \hat{x}_t\big]$$

实操口诀:先把方程写成"稳态值 × 各变量的幂次乘积 = 1 或常数"的形式,两边取对数,再扔掉所有稳态常数项和交叉二阶项。下文四个方程我们都按这一步一步做。

03 逐步推导①:Euler 方程(消费跨期替代)

家庭最优化的核心是 Euler 方程。设 CRRA 效用 $u(C_t)=C_t^{1-\sigma}/(1-\sigma)$,资本/债券实际收益率为 $r_t$(净利率,$1+r_t$ 为总回报):

原始非线性 Euler 方程
$$C_t^{-\sigma} = \beta\,E_t\big[ C_{t+1}^{-\sigma}\,(1+r_t)\big]$$

第一步:代入稳态。 稳态时没有预期误差,$C_t=C_{t+1}=C$,$r_t=r$,于是 $1=\beta(1+r)$,即 $1+r=1/\beta$。

第二步:写成"稳态常数 × 变量幂次 = 常数"。 两边除以 $C^{-\sigma}=\beta E_t[C^{-\sigma}(1+r)]$,利用稳态 $C^{-\sigma}=\beta C^{-\sigma}(1+r)$ 约掉:

$$\left(\frac{C_t}{C}\right)^{-\sigma} = E_t\left[\left(\frac{C_{t+1}}{C}\right)^{-\sigma}\,\frac{1+r_t}{1+r}\right]$$

第三步:用 $x_t/x = e^{\hat{x}_t}\approx 1+\hat{x}_t$,再取对数。 $\log(C_t/C)=\hat{c}_t$,于是 $(C_t/C)^{-\sigma}=e^{-\sigma \hat{c}_t}\approx 1-\sigma \hat{c}_t$。同理 $\left(\frac{1+r_t}{1+r}\right)$ 这一项记 $\hat{r}_t = \frac{r_t - r}{1+r}$(注意利率是净利率,其对数偏离要除以总回报 $1+r$,见下方 callout):

逐项展开(只保留一阶)
$$1-\sigma \hat{c}_t = E_t\big[(1-\sigma \hat{c}_{t+1})(1+\hat{r}_t)\big] \approx E_t\big[1-\sigma \hat{c}_{t+1}+\hat{r}_t\big]$$

第四步:两边减 1,整理。 常数项消去,$E_t[1]=1$:

✅ Euler 方程的对数线性化结果
$$\hat{c}_t = E_t\hat{c}_{t+1} - \frac{1}{\sigma}\,\hat{r}_t$$

这就是教科书式的消费 Euler 方程:当前消费等于预期未来消费减去$1/\sigma$乘以实际利率偏离。$1/\sigma$ 是跨期替代弹性(IES)。若模型还带投资 $I_t$、资本 $K_t$ 与 Tobin's Q,对 $\frac{1}{I_t^{1}}$ 型调整成本展开后会得到类似的投资-Q 方程,推导套路完全一致。

⚠️ 利率变量的坑

利率 $r_t$ 本身可正可负、且稳态 $r\neq 1$,不能直接写 $\hat{r}_t=\log(r_t/r)$。标准做法是对总回报 $R_t=1+r_t$ 做对数偏离:$\widehat{R}_t=\log(R_t/R)$,而 $\hat{r}_t\equiv \frac{r_t-r}{1+r}=\widehat{R}_t$。若你把名义利率写成总回报 $R_t^n$,则费雪关系 $\hat{r}_t=\widehat{R}_t^n-E_t\hat{\pi}_{t+1}$。

04 逐步推导②:新凯恩斯菲利普斯曲线(NKPC)

Calvo 价格粘性(每期只有 $1-\theta$ 比例厂商调价)经对数线性化后得到向前看的 NKPC。设实际边际成本为 $mc_t$(相对稳态),稳态加成 $\Lambda=\frac{\theta}{\theta-1}$。原始最优定价条件对数线性化的标准结果为:

原始(半简化)形式
$$\pi_t = \beta\,E_t\pi_{t+1} + \kappa\,mc_t,\qquad \kappa \equiv \frac{(1-\theta)(1-\beta\theta)}{\theta}\,\Big( \frac{1}{1+\phi} \Big)$$

其中 $mc_t$ 已是用对数偏离表示的边际成本。逐步看它怎么来:Calvo 厂商的最优价格 $\tilde{P}_t$ 满足

$$E_t\sum_{s=0}^{\infty}(\beta\theta)^s \Big[\frac{\tilde{P}_t}{P_{t+s}} - \Lambda\,MC_{t+s}\Big] Y_{t+s}=0$$

第一步:在零通胀稳态 $\pi=1$ 附近展开。记相对价格 $\tilde{P}_t/P_t = 1+\hat{p}_t^\*$,总通胀 $\pi_t=P_t/P_{t-1}=1+\hat{\pi}_t$。由加总价格定律 $1=(1-\theta)(\tilde{P}_t)^{1-\epsilon}+\theta P_{t-1}^{1-\epsilon}$,在稳态展开得

$$\hat{\pi}_t = \frac{1-\theta}{\theta}\,\hat{p}_t^\* \quad\Rightarrow\quad \hat{p}_t^\* = \frac{\theta}{1-\theta}\hat{\pi}_t$$

第二步:把最优定价一阶条件写成 $\hat{p}_t^\*=(1-\beta\theta)\,mc_t^\*+\beta\theta E_t[\hat{\pi}_{t+1}+\hat{p}_{t+1}^\*]$,其中 $mc_t^\*$ 是对数偏离的实际边际成本。

第三步:代入 $\hat{p}_t^\* = \frac{\theta}{1-\theta}\hat{\pi}_t$,消去 $\hat{p}^\*$:

✅ NKPC 对数线性化结果
$$\hat{\pi}_t = \beta\,E_t\hat{\pi}_{t+1} + \underbrace{\frac{(1-\theta)(1-\beta\theta)}{\theta}}_{\kappa_0}\,mc_t^\*$$

再用生产函数与劳动供给把 $mc_t^\*$ 换成产出缺口 $\hat{y}_t-\hat{y}_t^f$,就得到常见的 $\hat{\pi}_t=\beta E_t\hat{\pi}_{t+1}+\kappa(\hat{y}_t-\hat{y}_t^f)$。这是一个纯向前看方程,没有滞后项——这也是 NK 模型"通胀取决于预期"的结构性来源。

05 逐步推导③:Taylor 规则(货币政策)

央行按 Taylor 规则设定名义利率,带利率平滑(interest rate smoothing)与通胀/产出反应:

原始 Taylor 规则(非线性总回报写法)
$$\frac{R_t}{R} = \left(\frac{R_{t-1}}{R}\right)^{\rho_R} \left[\left(\frac{\pi_t}{\pi}\right)^{\phi_\pi}\left(\frac{Y_t}{Y}\right)^{\phi_y}\right]^{1-\rho_R} e^{\varepsilon_t^m}$$

第一步:稳态时 $\pi=1$(零通胀稳态)、$R=1/\beta$,所有比值都等于 1。

第二步:两边取对数,$\log(R_t/R)=\widehat{R}_t$,利用 $\log$ 把乘积变和、幂次变倍数:

$$\widehat{R}_t = \rho_R \widehat{R}_{t-1} + (1-\rho_R)\big[\phi_\pi \hat{\pi}_t + \phi_y \hat{y}_t\big] + \varepsilon_t^m$$

第三步:定义利率偏离 $\hat{r}_t\equiv \widehat{R}_t$,即得标准形式:

✅ Taylor 规则对数线性化结果
$$\hat{r}_t = \rho_R \hat{r}_{t-1} + (1-\rho_R)\,\phi_\pi \hat{\pi}_t + (1-\rho_R)\,\phi_y \hat{y}_t + \varepsilon_t^m,\qquad \varepsilon_t^m\sim N(0,\sigma_m^2)$$

利率平滑 $\rho_R\in(0,1)$ 让货币政策惯性化;$\phi_\pi>1$(Taylor 原则)保证均衡确定性,这正是下一站讲 Blanchard-Kahn 条件时要用到的关键参数。

06 逐步推导④:资源约束与技术过程

封闭经济资源约束 $Y_t=C_t+I_t$(无政府、无资本调整成本的最简 RBC 版),全要素生产率 $A_t$ 服从 AR(1)。

资源约束:稳态 $Y=C$(设无投资)。两边除以 $Y=C$:$\frac{Y_t}{Y}=\frac{C_t}{C}$。取对数即 $\hat{y}_t=\hat{c}_t$。若有投资 $I_t=\delta K_t$,则需写成份额加权:

✅ 资源约束对数线性化(含投资)
$$\hat{y}_t = \frac{C}{Y}\hat{c}_t + \frac{I}{Y}\hat{i}_t,\qquad \frac{I}{Y}=\delta\frac{K}{Y}$$

生产函数 $Y_t=A_t K_t^\alpha N_t^{1-\alpha}$:取对数、稳态约掉,直接得份额加权和:

✅ 生产函数对数线性化
$$\hat{y}_t = \hat{a}_t + \alpha\,\hat{k}_t + (1-\alpha)\hat{n}_t$$

技术冲击过程本身已是线性(外生 AR(1)):

$$\hat{a}_t = \rho_a \hat{a}_{t-1} + \varepsilon_t^a,\qquad \varepsilon_t^a\sim N(0,\sigma_a^2)$$
✅ 口诀总结

① 找到稳态;② 方程两边除以稳态等式,约成"比值=常数";③ 用 $x_t/x\approx 1+\hat{x}_t$ 展开;④ 扔掉常数与交叉二阶项;⑤ 整理成 $\hat{x}$ 的线性方程。熟练后,对 $Y_t=A_t K^\alpha N^{1-\alpha}$ 这类"幂次乘积"一步就能写出 $\hat{y}=\hat{a}+\alpha\hat{k}+(1-\alpha)\hat{n}$。

07 线性化后的完整模型系统

把上面四个方程加上资本积累与资本 Euler(q 方程),最简 NK-RBC 模型的线性系统为(变量均为对数偏离):

线性化方程组(6 方程)
$$\begin{aligned} \hat{c}_t &= E_t\hat{c}_{t+1} - \tfrac{1}{\sigma}\hat{r}_t \\ \hat{\pi}_t &= \beta E_t\hat{\pi}_{t+1} + \kappa\,\hat{mc}_t \\ \hat{r}_t &= \rho_R\hat{r}_{t-1} + (1-\rho_R)(\phi_\pi\hat{\pi}_t+\phi_y\hat{y}_t) + \varepsilon_t^m \\ \hat{y}_t &= \tfrac{C}{Y}\hat{c}_t + \tfrac{I}{Y}\hat{i}_t \\ \hat{y}_t &= \hat{a}_t + \alpha\hat{k}_t + (1-\alpha)\hat{n}_t \\ \hat{a}_t &= \rho_a\hat{a}_{t-1} + \varepsilon_t^a \end{aligned}$$

注意:这个系统里同时出现了前瞻变量($E_t\hat{c}_{t+1}, E_t\hat{\pi}_{t+1}$)、滞后变量($\hat{r}_{t-1}, \hat{k}_t, \hat{a}_{t-1}$)和同期变量($\hat{y}_t, \hat{mc}_t$)。求解器要做的就是把它化成状态空间形式 $X_t=A X_{t-1}+B\varepsilon_t$。

08 矩阵形式与 Dynare 自动线性化

把所有变量堆进一个向量 $X_t$(状态变量 + 前瞻变量),把系统写成 Blanchard-Kahn 的标准形式:

Blanchard-Kahn 标准型
$$A\,E_t X_{t+1} + B\,X_t + C\,X_{t-1} + D\,\varepsilon_t = 0$$

其中 $A,B,C,D$ 是由参数决定的系数矩阵,$\varepsilon_t$ 是结构冲击向量。求解要求:前瞻变量的个数等于 $A^{-1}B$ 的不稳定特征根个数,这就是 Blanchard-Kahn 条件(第 06 站详解)。好消息是——你几乎永远不用手推这个矩阵。Dynare 会对 model 块里的非线性方程自动求导、自动线性化。下面是手推与 Dynare 的对照:

Dynare · 手写非线性 vs 自动线性化对照
% ===== 你在 model 块里写的是非线性原始方程 =====
model;
  % 家庭 Euler 方程(非线性)
  c^(-sigma) = beta*c(1)^(-sigma)*(1+r);

  % NKPC(由 Calvo 最优定价隐含,这里直接写其等价简化式)
  pi = beta*pi(1) + kappa*mc;

  % Taylor 规则
  (r/r_ss)^rho_r * ((pi/pi_ss)^phi_pi*(y/y_ss)^phi_y)^(1-rho_r) = r/r_ss; % 见下方注释
  r = r(-1)^rho_r * (pi^phi_pi*y^phi_y)^(1-rho_r) * exp(em);

  % 资源约束 / 生产函数 / 技术
  y = c + i;
  y = a*k^alpha*n^(1-alpha);
  a = rho_a*a(-1) + ea;
end;
% Dynare 自动在 steady state 处做一阶泰勒展开,等价于你手推的 hat 变量系统。
% 手推的 hat{c}_t = E_t hat{c}_{t+1} - (1/sigma) hat{r}_t
%   就是 Dynare 对上面 Euler 方程自动求导后的结果。
Step 1 · 写出全部非线性均衡条件
从第 03 站的一阶条件出发,不做任何近似,原样写进 model 块。
Step 2 · 求解稳态并写 steady_state_model
Dynare 需要稳态才能确定泰勒展开的"展开点"。这一步做不对,线性化结果全错。
Step 3 · 令 Dynare 自动线性化
stoch_simul 默认 order=1,即在稳态处自动一阶展开,得到 $A E_t X_{t+1}+BX_t+CX_{t-1}+D\varepsilon_t=0$。
Step 4 · 核验 BK 条件并读政策函数
Dynare 报告 "Blanchard Kahn conditions are satisfied",输出 oo_.dr 即政策函数 $X_t=A(\theta)X_{t-1}+B(\theta)\varepsilon_t$。
❌ 手推 vs 机推不一致的常见原因

① 忘记把利率写成总回报再展开,导致 $\hat{r}$ 系数错一个 $(1+r)$;② 通胀稳态不是 1(如稳态 $\pi=1.02$),NKPC 里多一个 $\pi$ 的常数项没消;③ 资本/消费份额 $C/Y, I/Y$ 用错稳态值;④ 把"对数偏离"当成"水平偏离",IRF 量级差 100 倍。

09 经典论文与参考文献

English · 教科书级
Woodford, M. (2003). Interest and Prices: Foundations of a Theory of Monetary Policy
Princeton University Press · NKPC 与对数线性化的标准教材
第 2-3 章系统给出 Calvo 定价到 $\pi_t=\beta E_t\pi_{t+1}+\kappa x_t$ 的完整对数线性化推导,是本页 NKPC 步骤的原始出处。
English · 方法论
Uhlig, H. (1999). A Toolkit for Analyzing Nonlinear Dynamic Stochastic Models Easily
in Marimon & Scott (eds.), Computational Methods for the Study of Dynamic Economies
提出用"对数线性化 + 待定系数法"把 DSGE 写成矩阵系统的标准 toolkit,是 Dynare 自动线性化的思想源头。
中文 · 顶刊
刘斌 (2008). 我国DSGE模型的开发及在货币政策分析中的应用
《金融研究》 · 国内较早系统展示 NK 模型对数线性化与政策分析的文献
完整给出一个开放经济 DSGE 的对数线性化方程组,并讨论线性化误差与稳态校准,是中文入门的标准参考。
中文 · 顶刊
许伟、陈斌开等 · 《经济研究》系列 DSGE 货币政策论文
《经济研究》 · 中国宏观 DSGE 估计的代表作
示范了如何把含金融加速器的模型对数线性化后用贝叶斯方法估计,强调份额参数与稳态校准对线性化精度的影响。

10 常见错误与进阶资料

❌ 错误 1:把对数偏离当水平偏离读 IRF

$\hat{y}_t$ 是百分数偏离。IRF 纵轴读数 0.5 表示"产出高于稳态 0.5%",不是 0.5 单位。报告里要写"percent deviation from steady state"。

❌ 错误 2:在非零通胀稳态线性化 NKPC 却不调整

若稳态 $\bar{\pi}\neq 1$,NKPC 里会出现 $\bar{\pi}$ 与时间依赖(time-dependent)项;简单模型一律假设零通胀稳态 $\bar{\pi}=1$。

❌ 错误 3:二阶及以上小项没扔干净

$(1-\sigma\hat{c}_{t+1})(1+\hat{r}_t)$ 展开后出现 $\sigma\hat{c}_{t+1}\hat{r}_t$,这是二阶小量,必须扔掉。留着它会破坏线性系统。

📚 进阶资料

① Canova (2007) Methods for Applied Macroeconomic Research,第 3 章;② DeJong & Dave (2011) Structural Macroeconometrics,第 2 章;③ Dynare 官方 manual 的 "The model file" 与 "Linearization" 章节。下一步进入 第 06 站:Dynare 求解实操,把这套线性系统交给 Dynare 跑出来。