扰动法求解 DSGE:一阶、二阶、三阶近似
为什么一阶线性化够不够?一阶近似里没有"风险"这回事。本页讲扰动法(perturbation)的思想:在稳态附近对决策规则做泰勒展开——一阶(与对数线性化等价)、二阶(捕捉风险溢价与不确定性效应、需 pruning 修剪)、三阶;Dynare 中 order=1/2/3 的使用;并简介全局方法(投影、值函数迭代 VFI、参数化期望 PE),以及何时用扰动法、何时必须上全局法。
本页是 DSGE 基础知识库页面。定位:先单独学会这个工具,再到模型分支里看它怎么用。扰动法是 Dynare 背后的求解引擎——一阶近似等价于对数线性化,二阶/三阶才捕捉风险溢价与不确定性效应。吃透 order=1/2/3 与 pruning 后,再去各分支看它如何被调用。
在哪些模型分支中使用:
RBC 基准模型 ·
NK 三方程 ·
中尺度 SW(二阶 + pruning) ·
小国开放经济 ·
金融摩擦 BGG/GK ·
财政与货币规则 ·
适应性学习
⚠ 注意:TANK 与 HANK 不能只用一阶扰动——异质性主体模型需二阶以上近似或全局法,详见本页高阶章节与 HANK 分支页。
01 为什么一阶近似不够
前面几页用的都是"对数线性化 + 一阶扰动"。这种方法有一个根本缺陷:在一阶近似里,不确定性完全不影响决策规则。原因是线性决策规则对二阶矩(方差)不敏感——把模型在确定性稳态展开到一次项,得到的政策函数只含状态的一次项,任何关于"风险溢价""预防性储蓄""不确定性对稳态的修正"都无法出现。
但现实宏观问题恰恰关心这些二阶量:
- 风险溢价(risk premium):股权溢价、期限利差在一阶模型里恒为 0。
- 预防性储蓄:收入风险越高,家庭储蓄越多——一阶模型里 $\sigma$ 只影响跨期替代,不影响"风险"。
- 不确定性冲击(uncertainty / volatility shock): Bloom (2009) 等证明二阶矩冲击本身就是周期驱动力。
- 风险修正稳态(risk-adjusted steady state):随机模型的"无条件均值"会偏离确定性稳态,距离大小取决于方差。
要捕捉这些,必须把决策规则展开到二阶(甚至三阶)。这就是扰动法高阶近似的动机。
02 扰动法的基本思想
扰动法(perturbation method, Judd 1998;Schmitt-Grohé & Uribe 2004, JEDC)把一个含扰动参数 $\sigma$ 的模型族写出来:当 $\sigma=0$ 时是确定性模型(可精确解出稳态与决策规则);当 $\sigma=1$ 时是真实的随机模型。然后在 $\sigma=0$ 点附近,把政策规则对状态变量 $x$ 与扰动参数 $\sigma$做多变量泰勒展开。
其中 $x_t$ 是状态变量(资本、滞后产出等),$\sigma$ 控制冲击大小。逐项含义:
03 一阶扰动:与对数线性化等价
一阶扰动只保留 $g_x$ 项,政策规则退化为线性系统:
这与手工对数线性化(见 04 页)得到的状态空间形式在数学上完全等价——Dynare 的 order=1 内部就是自动做这件事,免去手推。但一阶近似的局限如前所述:$g_{\sigma\sigma}=0$,随机均值 = 确定性稳态,没有风险溢价。
04 二阶扰动:风险修正与 pruning
二阶近似的一般形式
最后两项是一阶所没有的:二次项 $\tfrac12 g_{xx}\hat x_t^{\otimes 2}$ 捕捉政策规则的非线性曲率;$\tfrac12 g_{\sigma\sigma}\sigma^2$ 是与状态无关的常数平移——它把决策规则整体上移/下移,正是"风险修正稳态"。在二阶下,家庭因不确定性而多储蓄,稳态的资本存量、利率都与确定性情形不同。
为什么需要 pruning(修剪)
二阶/三阶近似有一个数值陷阱:把二阶政策规则代入下一期状态 $x_{t+1}$,会自动产生高阶项的"幂次爆炸"——比如 $\hat x_t^3$、$\hat x_t^4$ 会在迭代中无界增长,模拟出来的矩发散。这是因为泰勒展开是局部近似,反复迭代会把模拟轨迹推出收敛域。
pruning(修剪)解决办法:把状态拆成"一阶分量"与"二阶分量"两层,只保留到目标阶数允许的项,主动丢弃高阶的交叉积。Kim-Kim-Schaumburg-Synetos (2008, JEDC) 的 pruning 方案成为标准:Dynare 二阶模拟默认启用 pruning。
二阶/三阶模型若不做 pruning,长时间模拟时方差会爆炸、模拟 IRF 出现"伪振荡"甚至 NaN。Dynare 高阶求解后,stoch_simul 的模拟与矩计算都基于已 pruning 的表示;做 IRF 时可对照看修剪前后差异。
05 三阶扰动与 Dynare order 选项
三阶近似再加入 $g_{xxx}$ 与 $g_{x\sigma\sigma}$ 项。$g_{x\sigma\sigma}$ 的特别之处:它让条件波动率($\sigma_t$ 的变动)影响决策规则——这正是"波动率冲击 / uncertainty shock"的载体。一阶、二阶近似里时变波动率是哑的,三阶才能让"方差冲击"产生一阶矩(产出)反应。
Dynare 中 order 的使用
% ---- 在 .mod 文件结尾 ----
% order=1: 一阶(=对数线性化), 快, 无风险效应
% order=2: 二阶, 捕捉风险溢价/预防性储蓄, 默认 pruning
% order=3: 三阶, 捕捉时变波动率(不确定性冲击)
stoch_simul(order=1, irf=40, nograph) y pi i k;
stoch_simul(order=2, irf=40, nograph) y pi i k;
stoch_simul(order=3, irf=40, nograph) y pi i k;
% 二阶下查看"风险修正稳态": Dynare 打印的 ys (二阶稳态)
% 与一阶 ys 的差即 g_{\sigma\sigma} 平移量
% moments 选项给出二阶/三阶下的无条件矩
stoch_simul(order=2, periods=10000, drop=100) y pi i k;
实务建议:日常估计与 IRF 用 order=1;做福利、股权溢价、风险修正稳态、比较确定性与随机均值时用 order=2;研究不确定性冲击、ZLB 附近尾部风险才用 order=3(计算量约为二阶的数倍)。
06 全局方法简介
扰动法是局部方法:只在确定性稳态附近精确。若要处理强非线性、大状态偏离(如 ZLB 长期持续、极端危机、 occasionally-binding 约束),需要全局方法(global methods),在整个状态空间上近似。三类主流:
| 方法 | 思想 | 优点 | 缺点 |
|---|---|---|---|
| 投影法 Projection | 用基函数(Chebyshev 多项式)近似政策函数,配残差最小化 | 全域精度可控、多项式经济 | 高维"维度诅咒" |
| 值函数迭代 VFI | 在网格上递归 Bellman 方程直到收敛 | 理论透明、强非线性稳 | 极慢、需精细网格 |
| 参数化期望 PE | 把条件期望用多项式近似并迭代 | 比 VFI 快,适合随机 | 收敛不保证、需好初值 |
全局法代表文献:Judd (1998);Maliar & Maliar 关于栅格与聚类的系列;Hooks & den Haan 用 HJB 方程的连续时间法。
07 何时用扰动、何时用全局
- 用扰动法:模型规模中等、常态波动、关注线性传导与标准 IRF、做贝叶斯估计(维度高、速度优先)、风险溢价/预防性储蓄(二阶够)。
- 用全局法:ZLB 长期绑定、occasionally-binding 约束、危机式大幅偏离稳态、尾部风险、估值方程类问题(FTPL 极端情形)、需要全域精度的福利计算。
- 混合:先用扰动法快速验证模型机制,发现关键非线性后,再对小维度核心用全局法做"benchmark 校准"。
08 论文案例
09 常见错误与进阶资料
常见错误(≥3)
- order=1 却想讨论风险溢价:一阶近似里股权溢价、预防性储蓄恒为 0,必须 order=2 以上,否则结论无意义。
- 二阶模拟不启用 pruning:长期模拟方差爆炸、IRF 伪振荡。Dynare 默认已处理,但手写高阶解时必须自己做修剪。
- 拿二阶稳态当确定性稳态做 IRF:二阶下 ys 已被 $g_{\sigma\sigma}$ 平移,与 order=1 的稳态不同步;跨阶比较 IRF 时要统一基准。
- 用扰动法硬解 ZLB 长期绑定:扰动在 ZLB 折点附近不收敛,必须上全局法或分段求解。
- 三阶当成银弹:order=3 计算成本高,且对数值精度敏感;只为"不确定性冲击"用它,别日常滥用。
进阶资料
- Judd (1998) Numerical Methods in Economics,扰动与全局方法的理论源头。
- Fernández-Villaverde et al. 关于二阶/三阶近似与时变波动率的综述。
- Dynare 官方
example1.mod、kinetic_pitman.mod(order=3)。 - 下一页《Dynare 求解实操》配套本页 order 选项做 IRF 与矩对比。