前置条件与学习依赖 / PREREQUISITES
数学 / 统计基础矩阵代数(投入产出分析的 Leontief 逆)、CES 成本函数与 Shephard 引理;比单部门略多一点线性代数。
经济学理论前置10 NK 三方程(Calvo 定价、NKPC 的单部门版)、09 RBC 技术冲击。
软件 / 计算前置MATLAB + Dynare;Python 3 + numpy(本页网络传导代码)。
数据前置看得懂投入产出表(中间使用矩阵、增加值、最终使用)。
难度与路线位置进阶→前沿把"代表性主体"放松成"异质部门+网络",是结构宏观最活跃的方向之一。

01 概念直觉:为什么要分部门

单部门 NK/RBC 模型假设所有产品同质、企业同频调价、冲击是"均匀落在所有企业头上"的。但现实有两个单部门模型回答不了的事实:

  • 部门异质价格粘性:食品、能源价格每个月都在变,而制造业、服务业价格一年才调一次(Bils-Klenow;Nakamura-Steinsson)。如果央行只盯一个"平均通胀",会对哪个部门调价更敏感判断错。
  • 部门间通过中间投入互相喂料:油价(能源部门)一涨,不只直接抬高居民汽油开支,还会顺着"能源→化工→制造业→零售"这条链,逐级抬高所有下游成本。一个部门的小冲击,可能被生产网络放大成宏观波动。

多部门 DSGE 就是把这两件事同时写进模型:$J$ 个部门、各自的 Calvo 粘性、各自的生产率冲击,再用一张投入产出矩阵把它们焊在一起。

与 QSGE 生产网络页的分工

多部门 DSGE 关心动态、价格粘性、货币政策(部门 IRF、聚合之谜、福利);QSGE 的 RRH/生产网络更关心静态、贸易、空间的一般均衡反事实。本页是"带粘性、带动态"的生产网络 NK。

02 经济环境与假设:$J$ 部门与 IO 矩阵

经济有 $J$ 个生产部门($j=1,\dots,J$)。每个部门由一组垄断竞争厂商组成,用劳动 + 其他部门的中间投入生产。核心新对象是投入产出技术矩阵

2.1 投入产出矩阵 $A$ 的定义

Eq.M1 · 投入产出技术矩阵
$$A=(a_{ij})_{J\times J}, \qquad a_{ij} = \frac{\text{部门 }j\text{ 购买的部门 }i\text{ 中间投入价值}}{\text{部门 }j\text{ 的总产出价值}}$$

设定理由:这就是投入产出表里的"直接消耗系数"(直接分配系数的转置口径)。读法:$a_{ij}$ 是"部门 $j$ 每生产 1 元产出,要从部门 $i$ 买多少元中间品"。列 $j$ 是部门 $j$ 的成本构成;行 $i$ 是部门 $i$ 的产品卖给了哪些部门。经济直觉:$A$ 的稀疏/稠密、谁在列和行里占比大,直接刻画"谁是谁的上游/下游""谁是关键节点"。

2.2 部门生产函数与中间投入 CES 加总

部门 $j$ 的代表性厂商用劳动 $N_{jt}$ 与一个由各部门中间品 CES 加总而成的复合中间投入 $M_{jt}$ 生产:

Eq.M2 · 部门生产技术(Cobb-Douglas 劳动-中间,CES 中间)
$$Y_{jt} = Z_{jt}\,N_{jt}^{\alpha_j}\,M_{jt}^{1-\alpha_j}, \qquad M_{jt}=\left[\sum_{i=1}^{J}\omega_{ij}^{\frac{1}{\eta}}M_{ijt}^{\frac{\eta-1}{\eta}}\right]^{\frac{\eta}{\eta-1}}$$

变量:$Z_{jt}$ 部门特定 TFP(部门 $j$ 自己的生产率冲击);$N_{jt}$ 部门 $j$ 用工;$M_{ijt}$ 部门 $j$ 从部门 $i$ 买的中间品。参数:$\alpha_j$ 劳动在成本中的份额;$\eta$ 各部门中间品之间的替代弹性;$\omega_{ij}$ 部门 $j$ 对部门 $i$ 中间品的偏好/技术权重(校准为 $\omega_{ij}=a_{ij}$ 的归一化)。直觉:CES 意味着不同来源的中间品不能完美替代——能源贵了不能一夜之间换成别的能源,故成本被网络锁定。

2.3 部门特定冲击与部门价格粘性

部门 TFP 与 Calvo 粘性
$$\ln Z_{jt} = \rho_j \ln Z_{j,t-1} + \varepsilon_{jt}, \qquad \Pr(\text{部门 }j\text{ 不能调价})=\theta_j$$

关键异质性:每个部门 $j$ 有自己的 TFP 冲击 $\varepsilon_{jt}$(不是单一总技术冲击)和自己的 Calvo 概率 $\theta_j$。食品 $\theta$ 小(调价勤)、服务业 $\theta$ 大(调价慢)。直觉:$\theta_j$ 的部门异质性让货币政策的传导取决于"哪个部门被冲击、它粘不粘"。

2.4 家庭:CES 加总各部门最终品

家庭消费篮子(Eq.M8 的对象)
$$C_t = \left[\sum_{j=1}^{J}\xi_j^{\frac{1}{\epsilon}}C_{jt}^{\frac{\epsilon-1}{\epsilon}}\right]^{\frac{\epsilon}{\epsilon-1}}$$

参数:$\xi_j$ 部门 $j$ 最终品在消费篮子中的权重(校准为家庭最终需求份额);$\epsilon$ 部门间消费替代弹性。直觉:家庭在食品、制造、服务之间替代消费,价格相对变了就调整支出。

03 厂商推导:成本最小化与部门边际成本

3.1 成本最小化 → 中间投入需求

部门 $j$ 厂商给定产出 $Y_{jt}$,选择劳动与中间投入最小化成本 $\min W_t N_{jt}+\sum_i P_{it}M_{ijt}$。由 CES 加总的一阶条件(Shephard 引理),对部门 $i$ 中间品的需求为:

Eq.M3 · 中间投入需求函数(条件要素需求)
$$M_{ijt} = \omega_{ij}\left(\frac{P_{it}}{P^M_{jt}}\right)^{-\eta} M_{jt}$$

含义:部门 $j$ 对部门 $i$ 中间品的相对需求,取决于部门 $i$ 价格 $P_{it}$ 相对部门 $j$ 复合中间品价格 $P^M_{jt}$ 的相对价格,弹性为 $-\eta$。直觉:某个上游部门涨价($P_{it}\uparrow$),下游 $j$ 就少买它、多买替代品——替代弹性 $\eta$ 决定这种"绕开"的容易程度。

3.2 部门边际成本:IO 矩阵进入成本

把成本最小化代入,部门 $j$ 的实际边际成本 $\widehat{mc}_{jt}$(对数偏离)由两部分构成——工资项 + 各上游部门价格项:

Eq.M4 · 部门边际成本(含 IO 矩阵传导)
$$\widehat{mc}_{jt} = (1-\alpha_j)\,\hat w_t + \alpha_j\Big(\sum_{i=1}^{J} a_{ij}\,\widehat{mc}_{it}\Big) - \widehat{z}_{jt}$$

关键结构:$\sum_i a_{ij}\widehat{mc}_{it}$ 这一项就是 IO 矩阵 $A$ 的第 $j$ 列对所有上游边际成本的加权——部门 $j$ 的成本,直接取决于它的上游部门 $i$ 的成本。这是生产网络"成本沿链传导"的数学表达。$\hat w_t$ 共同工资、$\widehat{z}_{jt}$ 部门 TFP。直觉:上游涨价→下游成本上升→下游定价上升→再传到更下游,层层放大。

04 价格网络传导与部门 NKPC

4.1 价格沿 IO 网络传导(核心方程)

把边际成本方程展开到价格水平,得到本页最核心的价格传导恒等式。用对数偏离 $\hat P_{jt}$ 表示部门 $j$ 相对价格变化:

Eq.M5 · 投入产出价格传导方程(网络效应)
$$\boxed{\hat P_{jt} = \sum_{i=1}^{J} a_{ij}\,\hat P_{it} + \hat w_{jt} - \widehat{z}_{jt}}$$

这就是任务里点名的那条。部门 $j$ 价格变化 = 它所用全部上游部门价格变化的加权和(权重 $a_{ij}$)+ 工资冲击 - 技术进步。写成矩阵形式就是 $\hat P = A^\top \hat P + (\hat w-\hat z)$,解出 $\hat P=(I-A^\top)^{-1}(\hat w-\hat z)$——Leontief 逆直接把一个部门的成本冲击放大成所有部门的价格响应直觉:这是"通胀传导"的网络版:上游一次成本冲击,会被 Leontief 逆放大、扩散到整张网。

4.2 部门 Calvo 定价与多部门 NKPC

每个部门 $j$ 有自己的 Calvo 概率 $\theta_j$。沿用单部门推导(见 10 NK 三方程 §5),得到部门 $j$ 的前瞻型菲利普斯曲线:

Eq.M6/M7 · 部门 Calvo 定价与多部门 NKPC
$$\hat\pi_{jt} = \beta E_t\hat\pi_{j,t+1} + \kappa_j\,\widehat{mc}_{jt}, \qquad \kappa_j = \frac{(1-\theta_j)(1-\beta\theta_j)}{\theta_j}\cdot\text{需求弹性项}$$

关键异质性:斜率 $\kappa_j$ 随 $\theta_j$ 变——价格粘性越大的部门($\theta_j$ 大),$\kappa_j$ 越小,其通胀对边际成本反应越慢。聚合时,总体通胀 $\pi_t=\sum_j b_j\hat\pi_{jt}$($b_j$ 部门权重),于是总体 NKPC 的斜率是各部门 $\kappa_j$ 按份额加权——异质粘性让总体通胀更平滑、更"向后看"(Carvalho 2006 的著名结论:异质价格粘性放大货币非中性)。

05 家庭支出分配与总产出桥

5.1 部门需求曲线

由家庭 CES 支出最小化,部门 $j$ 的最终需求为:

Eq.M8 · 家庭对部门 $j$ 的需求
$$C_{jt} = \xi_j\left(\frac{P_{jt}}{P_t}\right)^{-\epsilon} C_t$$

含义:部门 $j$ 相对其他部门越贵($P_{jt}/P_t\uparrow$),家庭买得越少,弹性 $-\epsilon$。$P_t$ 是总体价格指数。

5.2 总产出与部门产出:Leontief 桥

部门 $j$ 的产出既卖给家庭(最终需求),又卖给其他部门(中间需求)。把所有部门的产出写成向量 $\mathbf{Y}$、最终需求写成向量 $\mathbf{F}$,则:

Eq.M9 · 投入产出恒等式与 Leontief 逆
$$\mathbf{Y} = A\mathbf{Y} + \mathbf{F} \quad\Longrightarrow\quad \boxed{\mathbf{Y}=(I-A)^{-1}\mathbf{F}}$$

这就是投入产出分析的核心结果。$(I-A)^{-1}$ 是 Leontief 逆矩阵(完全消耗系数)。含义:一个部门 $k$ 的最终需求 $\mathbf F$ 增加 1 单位,不只是部门 $k$ 增产,还要带动它的上游、上游的上游……把这些间接的、连锁的引致需求全部算进 $(I-A)^{-1}$ 第 $k$ 列。直觉:这就是"乘数"的网络版——谁在 Leontief 逆里列和最大,谁就是"国民经济关键部门"。

06 均衡求解:Leontief 逆与网络中心性

6.1 多部门均衡方程组一览

完整模型由三层方程组成:① 厂商侧(Eq.M3/M4/M6/M7,每个部门一套);② 家庭侧(Eq.M8 与消费/劳动/债券欧拉);③ 会计恒等式(Eq.M9 与资源约束)。加上货币政策的总体 Taylor 规则,构成闭合理性预期系统,用 Dynare 一阶扰动求解。

6.2 网络中心性(centrality)与冲击传导

不是所有部门冲击都一样重要。Acemoglu-Carvalho-Ozdaglar-Tahbaz-Salehi(2012)证明:一个部门对波动的影响,取决于它在生产网络中的中心性。两个常用度量:

中心性度量定义经济含义
出度 / 前向关联$\sum_j a_{ij}$(部门 $i$ 卖给下游多少)"上游关键供应商":它一断料,下游全链停摆
入度 / 后向关联$\sum_i a_{ij}$(部门 $j$ 买自上游多少)"下游大买家":它的需求拉动上游
Leontief 逆中心性$(I-A)^{-1}$ 的行/列和含间接引致需求的"完全"中心性,最贴近总波动贡献
Katz 中心性$\sum_{k\ge1} c^k A^k \mathbf{1}$考虑邻居的邻居的邻居……的加权度

6.3 数值求解步骤

第 1 步:从 IO 表校准 $A$
把统计局/BEA 的投入产出表"中间使用"矩阵除以各部门总产出,得到直接消耗系数 $a_{ij}$。
第 2 步:写部门均衡方程
为每个部门写边际成本(Eq.M4)、部门 NKPC(Eq.M7)、部门 TFP 过程;加总体 Taylor 规则。
第 3 步:Dynare 一阶扰动求解
线性化后用 stoch_simul,得各部门政策函数、IRF、方差分解。
第 4 步:算中心性与反事实
用 Leontief 逆识别关键部门,做"把某部门冲击放大/关闭"的反事实,看总波动变化。

07 Dynare .mod:双部门 IO-DSGE

下面是一个完整可运行的双部门(部门 1 = 上游,部门 2 = 下游)IO-DSGE。上游部门 1 的中间投入卖给下游部门 2;两部门各有自己的 Calvo 概率 $\theta_1,\theta_2$ 与 TFP 冲击。运行 dynare multi_sector.mod

Dynare / multi_sector.mod(双部门 IO-DSGE)
// ============================================================
// multi_sector.mod  ——  双部门 NK-DSGE + 投入产出链
// 部门1: 上游(如能源/原材料),产品卖给部门2作中间投入
// 部门2: 下游(如制造业),用部门1中间品 + 劳动生产
// 两部门各有:异质 Calvo 概率、异质 TFP 冲击
// 运行:dynare multi_sector.mod
// ============================================================

// ---------- 内生变量(部门1 下标1,部门2 下标2) ----------
var  y1 y2          // 两部门产出缺口
     pi1 pi2        // 两部门部门通胀
     pi             // 总体通胀(消费篮子加权)
     mc1 mc2        // 两部门实际边际成本
     n1 n2          // 两部门就业
     w              // 共同实际工资
     rrn            // 自然利率(需求侧)
     z1 z2          // 两部门对数 TFP(外生状态)
     i              // 名义政策利率(总体 Taylor 规则)
     p1_rel p2_rel; // 部门相对价格(这里取相对偏离)

// ---------- 外生冲击 ----------
varexo eps_z1 eps_z2 eps_d;

// ---------- 参数 ----------
parameters beta sigma varphi epsilon ...
           theta1 theta2        // 两部门异质 Calvo 概率
           k1 k2                // 两部门 NKPC 斜率(由 theta 推)
           a12                  // 部门2 每单位产出用部门1中间品的份额
           alpha2               // 部门2 劳动份额(1-alpha2 即中间品份额)
           b1 b2                // 部门1、2在消费篮子中的权重(b1+b2=1)
           phi_pi phi_y rho_z rho_d;

// ---------- 校准 ----------
beta    = 0.99;
sigma   = 1.0;
varphi  = 1.0;
epsilon = 6.0;

// 部门1(上游/能源)价格调得勤 -> theta1 小;
// 部门2(下游/制造)价格粘 -> theta2 大
theta1  = 0.55;     // 上游约 2 季度调一次价
theta2  = 0.80;     // 下游约 5 季度调一次价
k1 = (1-theta1)*(1-beta*theta1)/theta1;   // 上游 NKPC 斜率大(灵活)
k2 = (1-theta2)*(1-beta*theta2)/theta2;   // 下游 NKPC 斜率小(粘性)

// 投入产出关键参数:a12 = 部门2 用部门1 中间品的份额
a12     = 0.35;     // 下游 35% 成本来自购买上游中间品
alpha2  = 0.65;     // 下游 65% 成本来自劳动(1-alpha2-a12=0 简化)
b1      = 0.30;     // 上游最终品占消费篮子 30%
b2      = 0.70;     // 下游最终品占消费篮子 70%

phi_pi  = 1.5;
phi_y   = 0.125;
rho_z   = 0.90;
rho_d   = 0.80;

// ---------- model 块 ----------
model;
// (1) 部门1 边际成本:只用劳动(上游不买别人中间品,简化)
//     mc1 = varphi*n1 + sigma*y1 - z1   (单部门劳动-边际成本桥)
mc1 = varphi*n1 + sigma*y1 - z1;

// (2) 部门2 边际成本:关键!含 IO 传导
//     部门2 成本 = 工资项 + 上游部门1 价格/成本项(权重 a12)
//     即 Eq.M4:mc2 = alpha2*w + a12*mc1 - z2
mc2 = alpha2*w + a12*mc1 - z2;

// (3) 部门1 NKPC(斜率 k1 大 -> 灵活)
pi1 = beta*pi1(+1) + k1*mc1;

// (4) 部门2 NKPC(斜率 k2 小 -> 粘)
pi2 = beta*pi2(+1) + k2*mc2;

// (5) 总体通胀 = 消费篮子加权(Eq.M7 聚合)
pi  = b1*pi1 + b2*pi2;

// (6) 共同工资与部门就业的劳动供给桥(简化:w = varphi*n + sigma*y)
//     两部门在统一劳动市场上竞争
w   = varphi*n1 + sigma*y1;
w   = varphi*n2 + sigma*y2;   // 同一工资,两边都满足(冗余恒等,供 Dynare 求解)

// (7) 资源 / 需求侧(简化 IS:总体产出缺口由实际利率调节)
y1 = y1(+1) - (1/sigma)*( i - pi(+1) - rrn );
y2 = y2(+1) - (1/sigma)*( i - pi(+1) - rrn );

// (8) 货币政策:总体 Taylor 规则
i = phi_pi*pi + phi_y*(b1*y1 + b2*y2);

// (9) 部门 TFP 外生过程
z1 = rho_z*z1(-1) + eps_z1;
z2 = rho_z*z2(-1) + eps_z2;

// (10) 需求侧自然利率
rrn = rho_d*rrn(-1) + eps_d;
end;

// ---------- 稳态初始值(全 0,对数偏离) ----------
initval;
 y1=0; y2=0; pi1=0; pi2=0; pi=0; mc1=0; mc2=0;
 n1=0; n2=0; w=0; rrn=0; z1=0; z2=0; i=0;
end;
steady;
check;

// ---------- 冲击分布 ----------
shocks;
var eps_z1 = (0.01)^2;    // 上游 TFP 冲击
var eps_z2 = (0.01)^2;     // 下游 TFP 冲击
var eps_d  = (0.01)^2;     // 总需求冲击
end;

// ---------- 求解并画 IRF(40 期) ----------
// 重点观察:eps_z1(上游能源)如何通过 a12 传导到 mc2 -> pi2 -> 总体 pi
stoch_simul(order=1, irf=40) y1 y2 pi1 pi2 pi mc1 mc2 i;
看哪条 IRF

跑出来后重点看 eps_z1(上游冲击)那一列:上游 TFP 上升 $\Rightarrow mc_1\downarrow\Rightarrow$ 通过 $a_{12}mc_1$ 使 $mc_2\downarrow\Rightarrow$ 由于部门 2 价格粘($\theta_2$ 大、$\kappa_2$ 小),$pi_2$ 反应慢而持久——这就是异质粘性 + IO 传导的联合效应。

08 Python:IO 网络冲击传导模拟

下面用 numpy 做一个纯网络的冲击传导模拟:构造 IO 矩阵 $A$、算 Leontief 逆、给某部门一个 TFP 冲击、看它如何通过网络扩散到所有部门的价格/产出,并计算网络中心性。这是理解 Eq.M5/M9 最直接的数值实验。

Python / io_network_shock.py(IO 网络传导模拟)
# ============================================================
# io_network_shock.py  ——  投入产出网络冲击传导模拟
# 内容:
#   1) 构造 J 部门 IO 矩阵 A(直接消耗系数 a_ij)
#   2) 计算 Leontief 逆 (I - A)^{-1}
#   3) 给某部门 TFP/成本冲击,沿网络传导到所有部门价格
#   4) 计算网络中心性(前向/后向/Leontief)并识别关键部门
# 依赖:numpy
# ============================================================
import numpy as np

# ---------- 1. 构造 4 部门 IO 矩阵 A ----------
# 行 i = 产品供给方,列 j = 产品需求方;
# a[i,j] = 部门 j 每生产 1 元要从部门 i 买多少元
# 示例网络:能源(0)->化工(1)->制造(2)->服务(3),并允许回流
A = np.array([
    # 能源 化工 制造 服务
    [0.20, 0.30, 0.05, 0.10],   # 能源卖给各下游(自己+化工+制造+服务)
    [0.05, 0.15, 0.25, 0.10],   # 化工
    [0.02, 0.10, 0.20, 0.30],   # 制造
    [0.03, 0.05, 0.10, 0.15],   # 服务
])
J = A.shape[0]
names = ["能源", "化工", "制造", "服务"]

# 校验:每列之和应 <= 1(其余是劳动/增加值份额)
colsum = A.sum(axis=0)
print("各部门中间投入合计(剩余为劳动/增加值):")
for j in range(J):
    print(f"  部门{names[j]}: 中间品={colsum[j]:.2f}, 增加值={1-colsum[j]:.2f}")

# ---------- 2. Leontief 逆 (I - A)^{-1} ----------
# 投入产出恒等式 Y = A Y + F  =>  Y = (I-A)^{-1} F
I = np.eye(J)
Leontief_inv = np.linalg.inv(I - A)
print("\n=== Leontief 逆矩阵 (完全消耗系数) ===")
print(np.round(Leontief_inv, 3))

# ---------- 3. 价格传导:上游成本冲击 -> 全网价格 ----------
# Eq.M5:  P_hat = (I - A.T)^{-1} (w - z)
# 这里给"能源(部门0)"一个负 TFP 冲击(成本上升),
# 等价于其成本项 z_hat = -0.05(负技术进步 -> 涨价压力 +0.05)
shock = np.zeros(J)
shock[0] = 0.05   # 能源部门成本/价格上行 5%
# 价格沿网络传导:解 P = A.T P + shock  =>  P = (I - A.T)^{-1} shock
P_resp = np.linalg.inv(I - A.T) @ shock
print("\n=== 能源部门成本 +5%% 后,各部门价格的网络传导 ===")
for j in range(J):
    bar = "█" * int(abs(P_resp[j]) * 100)
    print(f"  部门{names[j]:<4}: 价格 +{P_resp[j]*100:6.2f}%  {bar}")
print("解读:能源冲击不只是能源涨价,还被 (I-A.T)^-1 放大、")
print("      扩散到化工/制造/服务,且越下游累计涨幅越大。")

# ---------- 4. 产出引致需求:给某部门 1 单位最终需求 ----------
# Y = (I-A)^-1 F;F = e_k 表示只对部门 k 最终需求 +1
demand = np.eye(J)
output_multiplier = Leontief_inv @ demand   # 每列:1 单位最终需求引致的总产出
print("\n=== 关键部门识别:1 单位最终需求引致的各部门总产出 ===")
# 部门 k 的总拉动 = 第 k 列之和(含所有间接上下游)
total_pull = Leontief_inv.sum(axis=0)
order = np.argsort(-total_pull)
print("按'总拉动乘数'从大到小:")
for rank, k in enumerate(order, 1):
    print(f"  第{rank}名 部门{names[k]:<4}: 总拉动乘数 = {total_pull[k]:.3f}")

# ---------- 5. 网络中心性 ----------
# 前向中心性(出度):部门 i 卖给下游的总量
out_degree = A.sum(axis=1)
# 后向中心性(入度):部门 j 购买上游的总量
in_degree  = A.sum(axis=0)
print("\n=== 网络中心性 ===")
for j in range(J):
    print(f"  部门{names[j]:<4}: 前向(出度)={out_degree[j]:.3f}, "
          f"后向(入度)={in_degree[j]:.3f}, "
          f"Leontief列和={total_pull[j]:.3f}")

# ---------- 6. 部门 IRF(简化:一次性 TFP 冲击的衰减路径) ----------
# 假设部门 TFP 冲击 AR(1) 持续性 rho=0.9,价格经 Leontief 逆传导
rho = 0.90
T = 12
print("\n=== 能源 TFP 冲击后,制造部门价格的传导-衰减路径 ===")
print("期数  制造部门价格响应")
for t in range(T):
    path = (Leontief_inv[2, 0]) * (rho ** t) * shock[0]
    print(f"  t={t:<2}: {path*100:7.3f}%")
print("直觉:冲击当期制造价格已因能源涨价而上升(通过 Leontief 逆 [2,0]),")
print("      随后随能源冲击自身按 rho=0.9 缓慢衰减。")
这个脚本在干什么

它把 Eq.M5(价格传导 $\hat P=(I-A^\top)^{-1}(\hat w-\hat z)$)和 Eq.M9(产出桥 $\mathbf Y=(I-A)^{-1}\mathbf F$)直接数值化:① 一个上游成本冲击被 Leontief 逆放大成全网价格;② 中心性排名告诉你哪个部门是"关键节点",它的冲击对总波动贡献最大。把真实 IO 表读进来替换 $A$,就是一次正经的生产网络量化。

09 估计与数据:IO 表、PPI 与部门 TFP

9.1 投入产出表数据来源

来源覆盖用途 / 说明
中国国家统计局全国/分省 IO 表(逢 2、7 编制基准表,逢 0、5 延长表)校准中国 $a_{ij}$ 的金标准;分 42/149 部门
美国 BEA年度/季度行业 IO 账户校准美国生产网络,Nakamura-Steinsson 等用
WIOD(世界投入产出数据库)跨国、分行业、年度跨国生产网络、全球价值链研究
OECD ICIO国家间双边 IO供应链、贸易网络量化

9.2 校准 $a_{ij}$ 的方法

从 IO 表的"中间使用"矩阵 $Z_{ij}$(部门 $j$ 使用部门 $i$ 产品的价值)与部门 $j$ 总产出 $X_j$,直接算直接消耗系数:

Eq. 校准口径
$$a_{ij} = \frac{Z_{ij}}{X_j}$$

注意区分"竞争型"与"非竞争型" IO 表:竞争型把进口中间品混在国内使用里,做中国 DSGE 时若要刻画国内网络,最好用非竞争型(进口单列),否则 $a_{ij}$ 会高估国内上游依赖。

9.3 部门价格与部门 TFP

  • 部门价格:用分部门 PPI(工业生产者出厂价格指数,分行业)或分部门 GDP 平减指数,构造各部门通胀 $\pi_{jt}$,校准 $\theta_j$ 与验证部门 NKPC。
  • 部门 TFP:用 Olley-Pakes / Levinsohn-Petrin / Ackerberg-Caves-Frazer(见 生产函数估计页)在分行业企业/行业面板上估计,再汇总成 $\ln Z_{jt}$。

10 模拟与结果:聚合之谜与福利

10.1 部门冲击的跨部门传导 IRF

给上游部门一个负 TFP(成本上升)冲击,IRF 应表现出:同期上游部门涨价 → 中期通过 $a_{ij}$ 抬高中游成本 → 后期下游部门被动涨价。由于下游 $\theta_j$ 大(价格粘),这条"传导链"在时间上被拉长,总体通胀呈滞后、长尾形态——比单部门模型预测的"即期反应"慢得多。

10.2 网络中心性与总波动:聚合之谜(Acemoglu et al. 2012)

长期有个"分散化论证":若有 $J$ 个独立的部门冲击,每个方差 $\sigma^2$,大数定律会让总波动 $\propto 1/\sqrt J$,部门越多总波动越小。Acemoglu-Carvalho-Ozdaglar-Tahbaz-Salehi(2012, Econometrica)证明:只要生产网络足够"非对称"(少数部门中心性高),这个 $1/\sqrt J$ 就不成立——少数关键部门的冲击被 Leontief 逆放大,足以维持可观的波动。这就是著名的"聚合之谜(granular / disaggregate shocks → aggregate fluctuations)":微观、部门级别的冲击,能通过网络"颗粒化"成宏观波动。Gabaix(2011)的"granular origins"是另一支(企业规模幂律)。

为什么这重要

它解释了"为什么无法用单一总技术冲击解释的宏观波动,能被一堆部门冲击 + 生产网络解释"。这对当前中国"卡脖子""产业链安全"讨论尤其 relevant:关键部门被断供,等于一次宏观级供给冲击。

10.3 福利分析

多部门带来新的福利权衡:① 总体通胀稳定 vs 相对价格扭曲——异质粘性下,最优货币政策不再只盯总体通胀,而要按部门粘性加权(粘得最死的部门,其通胀权重应更大);② 网络放大让"对冲关键部门冲击"的政策价值更高;③ 价格分散造成的资源错配,在多部门下更严重。

11 论文、常见错误与交叉链接

11.1 必读论文

English · 奠基 RBC 多部门
Real Business Cycles
Long J.B. & Plosser C.I., Journal of Political Economy, 1983, 91(1)
最早用多部门投入产出结构证明:部门间的中间投入关联,能把部门技术冲击传导成协动的总周期。生产网络宏观的开山之作。
English · 网络起源
The Network Origins of Aggregate Fluctuations
Acemoglu D., Carvalho V.M., Ozdaglar A. & Tahbaz-Salehi A., Econometrica, 2012, 80(5)
本页 §10.2 的出处。用图论+IO 证明:非对称网络中部门冲击可经 Leontief 逆放大成宏观波动,打破 $1/\sqrt J$ 分散化论证。
English · 综述
From Micro to Macro via Production Networks
Carvalho V.M., Journal of Economic Perspectives, 2014, 28(4)
生产网络宏观的入门综述:把 IO 矩阵、中心性、冲击传导讲得清楚,是本页 §3-§6 直觉的最佳参考。
English · 多部门价格粘性
Monetary Non-Neutrality in a Multisector Menu Cost Model
Nakamura E. & Steinsson J., Quarterly Journal of Economics, 2010, 125(3)
用多部门菜单成本模型证明:异质价格粘性(调价频率部门差异)如何放大货币非中性,与本页 Eq.M7 的 $\theta_j$ 异质性直接对应。
English · 多部门货币传导
The Transmission of Monetary Policy in a Multi-Sector Economy
Bouakez H., Cardia E. & Ruge-Murcia F.J., International Economic Review, 2009, 50(4)
把 Calvo 多部门化、估计部门异质价格粘性,研究货币政策在异质部门间的传导,是本页 Dynare 模型的直接理论原型。
中文 · IO 结构与中国周期
投入产出结构、行业异质性与中国经济波动
鄢莉莉、吴利学,《世界经济》2017 年第 40 卷第 8 期,第 3–28 页
把投入产出结构与行业异质性嵌入中国多部门 DSGE,定量研究行业冲击经 IO 网络传导对中国经济波动的贡献,是中文顶刊里多部门/IO-DSGE 的代表。
中文 · 产业链网络与风险传染
产业链结构新视角下的尾部风险跨行业传染
杨子晖、王姝黛、梁方,《经济学(季刊)》2023 年第 23 卷第 1 期,第 212 页起
结合中国投入产出表,从产业链结构考察行业间尾部风险传染,发现议价能力高的行业向上下游输出风险、尾部风险沿产业链逆向传导,是生产网络视角的中文代表作。

11.2 常见错误(6 条)

错误 1:IO 矩阵行列方向搞反($a_{ij}$ 谁乘谁)

$a_{ij}$ 是"部门 $j$ 从部门 $i$ 买多少"(列向成本)。写成"部门 $i$ 卖给 $j$"做对称转置,价格传导方向就反了。校准后先检查列和 = 中间投入占比,行和 = 产品去向,别混。

错误 2:直接把竞争型 IO 表的 $a_{ij}$ 当国内网络用

竞争型表把进口中间品混进了国内使用。做中国国内生产网络,应用非竞争型 IO 表(进口单列)或剔除进口列,否则高估国内上游依赖、低估对外脆弱性。

错误 3:所有部门用同一个 Calvo 概率 $\theta$

多部门模型的全部意义就是 $\theta_j$ 异质。若偷懒把 $\theta$ 设成常数,就退化成单部门、丢掉"异质粘性放大货币非中性"这个核心机制(Nakamura-Steinsson 2010)。

错误 4:忽视 Leontief 逆,只算直接消耗系数

直接消耗系数 $a_{ij}$ 只算"一轮";完整的链式引致需求在 $(I-A)^{-1}$ 里。用 $A$ 而不用 Leontief 逆算"关键部门",会低估上游间接传导、漏掉真正的网络中心。

错误 5:相信"部门越多总波动越小"(忘记聚合之谜)

独立部门 + 对称网络才有 $1/\sqrt J$。真实网络高度非对称,少数关键部门的冲击被放大成宏观波动。做方差分解前先算中心性,别默认分散化一定成立。

错误 6:部门 TFP 用总量方法粗估,再当部门冲击

部门 TFP 应用分行业生产函数估计(OP/LP/ACF),不是对部门产出简单索洛余差再假设同质。否则部门冲击测不准,跨部门传导 IRF 与方差分解全偏。

11.3 进阶资料与交叉链接

  • Carvalho V.M. & Tahbaz-Salehi A. (2019), "Production Networks: A Primer", Annual Review of Economics —— 生产网络的系统教材式综述。
  • Gabaix X. (2011), "The Granular Origins of Aggregate Fluctuations", Econometrica —— 与 Acemoglu et al. 并列的"聚合之谜"另一支。
  • Baqaee D. & Farhi E. (2020), "Productivity and Misallocation in General Equilibrium", QJE —— 用生产网络做资源错配/效率的高阶方法。
  • 交叉链接:单部门内核见 10 NK 三方程;RBC 技术冲击见 09 RBC 模型;部门 TFP 估计见 生产函数估计(OP/LP/ACF);求解与 IRF 见 08 IRF 与模拟;同站 ZLB 与偶发约束 互为非线性/前沿姊妹篇。