Eaton-Kortum 模型:Fréchet 生产率分布与引力结构
Ricardian 比较优势的量化版:每个国家在连续品集 $[0,1]$ 上的生产率服从 Fréchet 分布,竞争把最便宜的供给者挑出来。本页从分布函数 $F_i(z)=e^{-T_i z^{-\theta}}$ 开始,一步步推导出 closed-form 贸易份额。
numpy 矩阵迭代)或 MATLAB。本页求解器与 Armington 同属"帽子代数+矩阵迭代"范式,但关键差异在于:贸易份额方程含 Fréchet 效率参数 $T_i$ 与形状参数 $\theta$(替代 Armington 的 $1-\sigma$),需实现 $\pi_{ni}=T_i(w_i\tau_{ni})^{-\theta}/\sum_k$ 的闭式份额计算。01 模型设定:Ricardian 世界与连续品
Eaton & Kortum (2002, Econometrica) 把 Ricardo 的比较优势思想做成了可量化模型。世界有 $N$ 个国家。消费者消费一单位连续品 $j \in [0,1]$ 的 CES 篮子:
不同国家生产同一品种 $j$ 的技术不同:$i$ 国在品种 $j$ 上的生产率记为 $z_i(j)>0$(单位劳动产出 $z_i(j)$ 单位产品)。$i$ 国工资为 $w_i$,则生产 $j$ 品种的单位成本为 $w_i/z_i(j)$。iceberg 贸易成本 $\tau_{ni}\geq 1$ 把 $i$ 国产品运到 $n$ 国的到岸成本放大 $\tau_{ni}$ 倍:
完全竞争 + 一价定律:$n$ 国消费者在所有可能的来源地中选最便宜的。于是 $n$ 国实际购买 $j$ 的价格为:
关键问题:$z_i(j)$ 是一个随机变量,由 Fréchet 分布刻画。我们要在这种不确定性下,算出"从 $i$ 国买 $j$"的概率,再对 $j$ 积分,就得到贸易份额。
这一段背后藏着四条核心假设:(1) 连续品种 $j\in[0,1]$:品种是无限可分的,这是把"赢家概率"转化为"贸易份额"的数学前提——个体 $j$ 上的随机性在连续统上被大数定律平均掉,剩下确定的份额。(2) 完全竞争 + 一价定律:每个品种由成本最低的供给者独占,没有加成、没有垄断利润;消费者在 $N$ 个报价里选最小值。(3) 冰山贸易成本 $\tau_{ni}\geq 1$,$\tau_{nn}=1$:与 Armington 相同,把运费/关税/政策距离压缩成标量。(4) 劳动是唯一生产要素:单位成本就是 $w_i/z_i(j)$,没有资本、没有中间品。这四条假设共同保证了"价格=边际成本"和"最便宜供给者胜出"两条规则同时成立。注意这里 $\sigma$(CES 替代弹性)在最终贸易份额公式里被消掉了——Fréchet 的 $\theta$ 完全接管了贸易弹性的角色,这是 EK 比 Armington 更"结构"的地方。
02 Fréchet 生产率分布
EK 假设各国生产率 $z_i(j)$ 是独立同分布的随机变量,服从两参数 Fréchet 分布:
两个参数各有直观含义:
- $T_i$ 绝对生产率:$T_i$ 越大,分布整体右移——$i$ 国在大多数品种上生产率更高。它对应 Ricardo 模型里的"绝对优势"。
- $\theta$ 比较优势离散度:$\theta$ 越小,分布尾部越厚,各国生产率差异越大——这是"比较优势的强度"。$\theta$ 同时是后面的贸易弹性(trade elasticity):贸易成本下降 1%,贸易流对它的弹性就是 $\theta$。
密度函数为 $f_i(z) = F_i'(z) = \theta T_i z^{-\theta-1} e^{-T_i z^{-\theta}}$。这个分布有个特殊的数学性质:独立 Fréchet 变量的最小值(按比例缩放后)仍然是 Fréchet。这是整个 EK 推导能闭合的关键。
为什么用 Fréchet 分布:Fréchet 是三类极值分布之一,描述"从大量独立候选值中取最大值"的渐近分布。EK 的微观故事是:每个国家在每个品种 $j$ 背后,有无数个潜在技术方案,企业只采用最优(生产率最高)的那个——所以观测到的 $z_i(j)$ 是"最大值",渐近服从 Fréchet。这一选择不是任意的:它让"多国最便宜供给者"的概率计算有闭式解(见 s3–s4),同时让贸易份额具有引力方程形式。
$T_i$ 是绝对优势:尺度参数 $T_i$ 整体抬高分布——$T_i$ 越大,$i$ 国在几乎所有品种上的生产率都更高。它对应 Ricardo 模型里"技术水平"或"全要素生产率"的国家差异。在反事实中,$T_i$ 可以外生变化(技术冲击)。
$\theta$ 是比较优势强度(= 贸易弹性):形状参数 $\theta$ 控制分布尾部厚度。$\theta$ 越小,尾部越厚,各国生产率离均值越远,比较优势越强——一个国家可能在某些品种上碾压对手,在另一些上完全不行。$\theta$ 同时就是贸易弹性:贸易成本下降 1%,双边贸易流变化 $\theta\%$。这是 EK 模型最深刻的结构发现——贸易弹性不是一个偏好参数,而是生产率离散度。$\theta>1$ 是 Fréchet 均值有限的要求;价格指数收敛还要求 $\theta+1-\sigma>0$。
数学上,Fréchet 是极值分布的一种。在"每个国家从无数技术机会中挑选最优技术"的故事下,最大值渐近于 Fréchet(极值定理)。Pareto 也能给出类似的引力结构(Melitz 模型用的就是 Pareto),但 Fréchet 在价格指数上更干净。
03 从分布到价格:第一步推导
我们先把价格也变成随机变量。定义 $i$ 国供给 $n$ 国的"单位成本"为:
由于 $z_i(j)$ 是 Fréchet,我们可以做变量替换求 $x_{ni}(j)$ 的分布。记 $c_i \equiv w_i \tau_{ni}$,则 $z_i(j) = c_i / x$。于是:
令 $S_{ni} \equiv T_i (w_i \tau_{ni})^{-\theta}$(一个与品种 $j$ 无关的常数,只依赖国家对 $(n,i)$),则上式简化为:
注意:$x_{ni}(j)$ 本身在 $j$ 上是独立同分布的——所有品种 $j$ 的价格分布都由 $S_{ni}$ 完全决定。这就是为什么模型能"聚合"。
04 贸易份额公式:完整推导
现在求"$n$ 国从 $i$ 国购买品种 $j$"的概率 $\pi_{ni}$。这要求两件事同时成立:(1) $i$ 国的供给价格 $x_{ni}(j)$ 等于某 $p$;(2) 其他所有国家 $k\neq i$ 的供给价格都严格大于 $p$。
Step 1:写出概率密度与生存函数
对任意价格水平 $p$,$i$ 国报价落在 $[p, p+dp]$ 的概率为 $dG_{ni}(p) = S_{ni}\theta p^{\theta-1} e^{-S_{ni} p^\theta} dp$。
其他国家 $k\neq i$ 报价 $>p$ 的概率为 $\Pr(x_{nk}>p) = 1 - G_{nk}(p) = e^{-S_{nk} p^\theta}$。各国独立,所以"所有 $k\neq i$ 都比 $p$ 贵"的概率为:
Step 2:积分
把两件事乘起来,对 $p$ 积分:
令 $\bar{S}_n \equiv \sum_{k=1}^N S_{nk} = \sum_k T_k(w_k\tau_{nk})^{-\theta}$,做变量替换 $u = \bar{S}_n p^\theta$,则 $du = \bar{S}_n \theta p^{\theta-1} dp$,即 $\theta p^{\theta-1} dp = du/\bar{S}_n$。积分变为:
把 $S_{ni}$ 和 $\bar{S}_n$ 代回,得到教科书公式:
这是 QSGE 里最重要的公式之一。注意它与 Armington 模型在结构上几乎一模一样:把 $T_i w_i^{-\theta}$ 类比为"国家 $i$ 的质量",把 $\tau_{ni}^{-\theta}$ 类比为"贸易成本的引力因子",分子就是"从 $i$ 国买的吸引力",分母是全世界的"总吸引力"。但关键差别在于:
- Armington 里弹性是 $1-\sigma$(来自偏好),EK 里弹性是 $-\theta$(来自技术分布);
- Armington 中每国只生产一种产品,EK 中每国在所有品种上竞争,只是"赢"的概率随 $T_i$ 与 $\tau_{ni}$ 变化;
- EK 自然解释了为什么"贸易同时发生在很多行业"——因为每个品种上的赢家可能不同。
把两个份额公式并排:Armington $\lambda_{ni}=(w_i\tau_{ni})^{1-\sigma}/\sum_k(w_k\tau_{nk})^{1-\sigma}$;EK $\pi_{ni}=T_i(w_i\tau_{ni})^{-\theta}/\sum_k T_k(w_k\tau_{nk})^{-\theta}$。映射关系是:$(1-\sigma)\leftrightarrow-\theta$,且 EK 的分子多了一个 $T_i$(绝对技术)。这意味着:(1) 如果你把 EK 里的 $T_i$ 都设为同一个常数,EK 就退化成 Armington;(2) EK 多了一个"国家技术水平"维度,可以直接讨论"技术赶超"的反事实(例如中国 $T_{CN}$ 上升);(3) 两个模型的贸易弹性分别是 $\sigma-1$ 和 $\theta$,数值上它们都落在 4–10 区间,所以反事实福利结果在数量级上接近。这正是 ACR (2012) "跨模型同构"结论的实证基础。
05 价格指数与工资方程
本节得到的 $\hat W_n = \hat\pi_{nn}^{-1/\theta}$ 是 ACR 充分统计量在 $\varepsilon=\theta$ 下的特例。完整的包络定理推导、成立条件、多部门 (Caliendo-Parro) 扩展、与 Armington/Melitz 的对应关系 → 先学 基础知识库 · 福利分解 (ACR)
我们还可以推 $n$ 国的 CES 价格指数。在连续品框架下,最便宜价格 $p_n(j)=\min_i x_{ni}(j)$ 的分布函数为:
这仍然是 Fréchet。下面完整推导 CES 价格指数 $P_n$(不引用"标准结果")。
价格指数的完整推导
$n$ 国消费者在连续品 $j\in[0,1]$ 上的 CES 价格指数为:
由于 $j$ 连续且独立同分布,积分等于对随机变量 $p_n(j)$ 的期望:$\int_0^1 p_n(j)^{1-\sigma}dj=\mathbb{E}[p_n^{1-\sigma}]$。已知 $p_n$ 的分布为 $G_n(p)=1-e^{-\bar S_n p^\theta}$,密度 $g_n(p)=\bar S_n\theta p^{\theta-1}e^{-\bar S_n p^\theta}$。于是:
做变量替换 $u=\bar S_n p^\theta$,即 $p=(u/\bar S_n)^{1/\theta}$,$dp=(1/\theta)\bar S_n^{-1/\theta}u^{1/\theta-1}du$。代入:
$$\mathbb{E}[p_n^{1-\sigma}]=\int_0^\infty (u/\bar S_n)^{(1-\sigma)/\theta}e^{-u}du=\bar S_n^{(\sigma-1)/\theta}\underbrace{\int_0^\infty u^{((1-\sigma)/\theta)}e^{-u}du}_{\Gamma(1+(\!1-\sigma)/\theta)}$$最后一步用 Gamma 函数定义 $\Gamma(a)=\int_0^\infty u^{a-1}e^{-u}du$。注意这里指数 $u^{(1-\sigma)/\theta}=u^{a-1}$ 对应 $a=1+(1-\sigma)/\theta=(\theta+1-\sigma)/\theta$。
把 $\pi_{nn}$ 与 $P_n$ 联立,逐步推出用国内份额表示的价格指数:
由贸易份额公式 (EK8),取 $i=n$:
$$\pi_{nn}=\frac{T_n w_n^{-\theta}}{\bar S_n}\;\Longrightarrow\;\bar S_n=T_n w_n^{-\theta}/\pi_{nn}$$代入 (EK10) 并利用 $\tau_{nn}=1$:
$$P_n=\gamma\left(T_n w_n^{-\theta}/\pi_{nn}\right)^{-1/\theta} =\gamma w_n\left(\frac{T_n}{\pi_{nn}}\right)^{1/\theta}$$技术参数 $T_n$ 与常数 $\gamma$ 在水平比较中保留,但在跨期反事实中 $\hat T_n=1$、$\hat\gamma=1$,故:
$$P_n\propto w_n\,\pi_{nn}^{\,-1/\theta}\qquad\text{(跨期比较时)}$$实际工资为:
与 Armington 完全同构——只是把 $\sigma-1$ 换成了 $\theta$。这正是 ACR (2012) 跨模型同构结论的核心。
从水平公式到 ACR 反事实福利公式
定义帽子 $\hat{x}=x'/x$。由 $P_n=\gamma w_n(T_n/\pi_{nn})^{1/\theta}$($\tau_{nn}=1$),两边取帽子:
若反事实中技术不变($\hat{T}_n=1$),则福利变化为:
把两个 ACR 公式并排:Armington $\hat{W}_n=\hat{\lambda}_{nn}^{-1/(\sigma-1)}$;EK $\hat{W}_n=\hat{\pi}_{nn}^{-1/\theta}$。映射关系 $\theta \leftrightarrow \sigma-1$。这意味着:只要你观测到国内份额变化,并用对应的贸易弹性(Armington 用 $\sigma-1$,EK 用 $\theta$),两个模型给出的福利变化在数学上同构。ACR (2012) 的核心结论就是:在 CES + 贸易平衡 + 单一要素的前提下,Armington、EK、Melitz-Pareto 这三类模型的福利公式完全相同,差别只在贸易弹性的解释(偏好 vs 技术 vs 企业选择)。这是 QSGE 领域最深刻的"等价性"结果。
ACR 公式在 EK 下成立的假设
- Fréchet 生产率分布(形状参数 $\theta$ 跨国家、跨品种常数);
- 贸易平衡:$w_i L_i = \sum_n \pi_{ni} w_n L_n$,无外生贸易赤字;
- 单一生产要素(劳动)+ 完全竞争 + 规模报酬不变;
- 反事实中 $T_n$ 不变(只冲击 $\tau$ 或关税)。若 $\hat{T}_n\neq 1$,福利公式要加一项 $\hat{T}_n^{1/\theta}$。
工资决定方程(贸易平衡 · 完整写出)
06 与 Armington 的对比
| 维度 | Armington | Eaton-Kortum |
|---|---|---|
| 产品差异化来源 | 偏好(消费者爱国产) | 技术(生产率 Fréchet 分布) |
| 每国生产品种数 | 1 种国产品 | 连续品 $[0,1]$,每个品种上竞争 |
| 贸易弹性 | $1-\sigma$(校准偏好) | $-\theta$(分布形状,可由引力估计) |
| 同行业双向贸易 | 可能但故事勉强 | 自然:不同品种上不同国赢 |
| 福利公式 | $w/P \propto \lambda_{nn}^{-1/(\sigma-1)}$ | $w/P \propto \pi_{nn}^{1/\theta}$ |
| 企业选择 | 无 | 无(完全竞争,但隐含"谁最低成本谁卖") |
如果你只关心贸易份额、价格指数、反事实——Armington 和 EK 在数值上几乎无法区分(因为贸易份额方程长得一样)。差别只在"你讲什么故事"和"贸易弹性 $\theta$ 应该用什么值"。EK 让你能引用 EK (2002) 估计的 $\theta\approx 8.28$ 或 Simonovska-Waugh (2014) 的 $\theta\approx 5$。
07 反事实求解:EK 帽子代数
本节是帽代数的"原型"版本。通用求解器代码、Jacobi / Gauss-Seidel / 阻尼 / Anderson 加速、在 Armington / Melitz / RRH / 贸易+迁移+土地 各分支间的迁移差异 → 先学 基础知识库 · 帽代数反事实求解
与 Armington 一样,EK 反事实也用精确帽子代数(Dekle-Eaton-Kortum 2007)。但 EK 多了一个外生技术参数 $T_i$,所以帽子方程里多一项 $\hat{T}_i$。
第一步:份额的帽子方程(逐步推导)
基准份额:$\pi_{ni}=T_i(w_i\tau_{ni})^{-\theta}/\sum_k T_k(w_k\tau_{nk})^{-\theta}$。反事实份额:$\pi'_{ni}=T'_i(w'_i\tau'_{ni})^{-\theta}/\sum_k T'_k(w'_k\tau'_{nk})^{-\theta}$。两式相除:
分子:$\dfrac{T'_i(w'_i\tau'_{ni})^{-\theta}}{T_i(w_i\tau_{ni})^{-\theta}}=\hat T_i(\hat w_i\hat\tau_{ni})^{-\theta}$。
分母:$\displaystyle\frac{\sum_k T'_k(w'_k\tau'_{nk})^{-\theta}}{\sum_k T_k(w_k\tau_{nk})^{-\theta}} =\sum_k\underbrace{\frac{T_k(w_k\tau_{nk})^{-\theta}}{\sum_j T_j(w_j\tau_{nj})^{-\theta}}}_{\pi_{nk}}\hat T_k(\hat w_k\hat\tau_{nk})^{-\theta}$。
相除得:
$$\hat\pi_{ni}=\frac{\hat T_i(\hat w_i\hat\tau_{ni})^{-\theta}}{\sum_k\pi_{nk}\hat T_k(\hat w_k\hat\tau_{nk})^{-\theta}}$$若反事实只冲击贸易成本/关税($\hat T_i=1$),简化为:
第二步:贸易平衡的帽子方程(逐步推导)
基准 $w_iL_i=\sum_n\pi_{ni}w_nL_n$。反事实 $\hat w_iw_iL_i=\sum_n\pi'_{ni}\hat w_nw_nL_n$($L_i$ 不变)。把 $\pi'_{ni}=\pi_{ni}\hat\pi_{ni}$ 代入并除以基准 $w_iL_i$:
注意分母是 $w_i L_i$(基准支出),分子里 $\pi_{ni}$ 是基准份额(数据),$\hat{\pi}_{ni}$ 由第一步算出,$\hat{w}_n$ 是当前迭代的工资帽子。
第三步:Jacobi 阻尼迭代算法
第四步:福利与反事实份额
收敛后 $\pi_{ni}'=\pi_{ni}\hat{\pi}_{ni}$,ACR 福利公式直接给出:
若反事实含技术冲击 $\hat{T}_n$,则福利公式修正为 $\hat{W}_n=\hat{T}_n^{1/\theta}\cdot\hat{\pi}_{nn}^{-1/\theta}$(技术进步通过 $\hat{T}_n$ 项直接降低价格)。
当 $\theta$ 较大(≈8)或国家数 $N$ 大时,工资不动点的雅可比矩阵谱半径接近 1,纯不动点迭代会震荡。Jacobi 阻尼 $\omega<1$ 相当于把每步更新量乘一个收缩因子,牺牲收敛速度换稳定性。Caliendo-Parro (2015) 的多部门 EK 求解器就是这套算法。
08 Python 完整求解与反事实代码
"""
Eaton-Kortum 多国模型:基准求解 + 精确帽子代数反事实
- Part A: 给定 T, L, tau 求解基准均衡 w, P, pi
- Part B: 精确帽子代数反事实(只需基准 pi + 外生 tau_hat)
- Part C: 验证 ACR 福利公式 W_hat = pi_nn_hat^(-1/theta)
"""
import numpy as np
# ---------- 1. 基准均衡求解(绝对空间) ----------
def solve_ek_abs(T, L, tau, theta, tol=1e-10, max_iter=50000, damp=0.3):
N = len(L)
w = np.ones(N)
for it in range(max_iter):
cost = w[None, :] * tau
S = T[None, :] * (cost ** (-theta))
pi = S / S.sum(axis=1, keepdims=True)
sales = pi.T @ (w * L)
excess = sales / (w * L)
w_new = w * excess ** damp
w_new = w_new / np.sum(w_new * L)
if np.max(np.abs(excess - 1.0)) < tol:
w = w_new; break
w = w_new
cost = w[None, :] * tau
S = T[None, :] * (cost ** (-theta))
pi = S / S.sum(axis=1, keepdims=True)
P = S.sum(axis=1) ** (-1.0 / theta) # 忽略常数 gamma
return w, P, pi
# ---------- 2. EK 精确帽子代数反事实 ----------
def solve_ek_hat(pi0, X0, tau_hat, T_hat=None, theta=8.28,
tol=1e-10, max_iter=100000, damp=0.2):
"""
输入:
pi0 (N,N) 基准贸易份额
X0 (N,) 基准总支出 w_n L_n
tau_hat (N,N) 贸易成本冲击的帽子
T_hat (N,) 技术冲击帽子,默认全 1
输出:
w_hat, pi_hat, pi1 (反事实份额)
注意: 用算术阻尼 w_new=(1-damp)*w+damp*impl;
几何阻尼 w*(impl/w)^damp 会收敛到伪不动点(见正文常见错误)。
"""
N = len(X0)
if T_hat is None:
T_hat = np.ones(N)
w_hat = np.ones(N)
for it in range(max_iter):
# 份额帽子方程
num = T_hat[None, :] * (w_hat[None, :] * tau_hat) ** (-theta)
den = (pi0 * num).sum(axis=1, keepdims=True)
pi_hat = num / den
# 贸易平衡帽子方程
sales1 = (pi0 * pi_hat).T @ (w_hat * X0)
w_hat_implied = sales1 / X0
# 算术阻尼更新(关键:不要用几何阻尼)
w_hat_new = (1.0 - damp) * w_hat + damp * w_hat_implied
w_hat_new = w_hat_new / np.sum(w_hat_new * X0)
if np.max(np.abs(w_hat_implied / w_hat - 1.0)) < tol:
w_hat = w_hat_new; break
w_hat = w_hat_new
pi1 = pi0 * pi_hat
return w_hat, pi_hat, pi1
# ---------- 3. 数据 ----------
N = 3
T = np.array([1.0, 0.8, 0.6])
L = np.array([1.0, 1.0, 1.0])
tau = np.array([
[1.0, 1.5, 2.0],
[1.5, 1.0, 1.8],
[2.0, 1.8, 1.0],
])
theta = 8.28 # EK (2002) 经典估计
# ---------- 4. 基准 ----------
w, P, pi = solve_ek_abs(T, L, tau, theta)
X = w * L
print("=" * 55)
print("基准 EK 均衡")
print(f" 工资 w = {np.round(w, 4)}")
print(f" 实际工资 w/P = {np.round(w/P, 4)}")
print(f" 国内份额 pi_nn = {np.round(np.diag(pi), 3)}")
# ---------- 5. 反事实:跨国贸易成本下降 10%(帽子代数) ----------
tau_hat = np.ones((N, N))
tau_hat[~np.eye(N, dtype=bool)] = 0.9 # 跨国 tau 下降 10%
w_hat, pi_hat, pi1 = solve_ek_hat(pi, X, tau_hat, theta=theta)
# ACR 福利公式
W_hat_ACR = (np.diag(pi1) / np.diag(pi)) ** (-1.0 / theta)
print("\n" + "=" * 55)
print("反事实:跨国贸易成本下降 10%(帽子代数)")
print(f" 工资帽子 w_hat = {np.round(w_hat, 4)}")
print(f" 国内份额: {np.round(np.diag(pi),3)} -> {np.round(np.diag(pi1),3)}")
print(f" ACR 福利变化 W_hat = {np.round(W_hat_ACR, 4)}")
print(f" 对应福利变化率 = {np.round((W_hat_ACR-1)*100, 3)} %")
# 对照:绝对空间重解
tau_cf = tau.copy()
tau_cf[~np.eye(N, dtype=bool)] *= 0.9
w2, P2, pi2 = solve_ek_abs(T, L, tau_cf, theta)
W_check = (w2/P2) / (w/P)
print(f" 绝对空间重解 W 变化率 = {np.round((W_check-1)*100, 3)} % (应与 ACR 一致)")
# ---------- 6. 技术赶超反事实:国2 (Foreign1) T 上升 20% ----------
tau_hat2 = np.ones((N, N))
T_hat2 = np.ones(N); T_hat2[1] = 1.2
w_hat2, pi_hat2, pi1b = solve_ek_hat(pi, X, tau_hat2, T_hat=T_hat2, theta=theta)
# 含技术冲击的福利公式: W_hat = T_n_hat^(1/theta) * pi_nn_hat^(-1/theta)
W_hat_tech = T_hat2 ** (1.0/theta) * (np.diag(pi1b)/np.diag(pi)) ** (-1.0/theta)
print("\n" + "=" * 55)
print("反事实:国2 技术 T_hat=1.2")
print(f" ACR 福利变化 W_hat = {np.round(W_hat_tech, 4)}")
跑一遍你会看到:模型算出的"实际工资变化率"几乎等于 ACR 公式 $(\pi_{nn}'/\pi_{nn})^{-1/\theta}$。这是验证代码正确性的黄金测试。
09 校准参数与数据来源
$\theta$(贸易弹性 / 比较优势离散度)
EK 模型里唯一需要外部校准的结构参数是 $\theta$。它同时是:(1) Fréchet 分布的形状参数;(2) 比较优势的强度($\theta$ 越小,离散度越大);(3) 贸易流对贸易成本的弹性。经验估计值:
- Eaton & Kortum (2002):用 1990 年 OECD 19 国数据,通过引力方程 + 关税/地理距离工具变量估计 $\theta\approx 8.28$。这是 QSGE 文献最经典的基准值。
- Simonovska & Waugh (2014):指出 EK (2002) 的 OLS 估计有向上偏误(未控制价格差异),用结构引力 + 跨国价格数据重新估计,得到 $\theta\approx 4$–5。这是现代 QSGE 论文更常用的取值。
- Caliendo & Parro (2015):分行业估计 $\theta_s$,制造业不同行业在 2.5–10 之间,平均约 5。多部门 EK 反事实必须用分行业 $\theta_s$。
- Broda & Weinstein (2006):用行业级替代弹性估计,给出 4 位 SITC 行业的 $\sigma$ 估计,可作 $\theta$ 的替代。
福利公式 $\hat{W}_n=\hat{\pi}_{nn}^{-1/\theta}$ 对 $\theta$ 高度敏感:$\theta$ 从 4 变到 8,同样的 $\hat{\pi}_{nn}=0.95$,福利变化从 $0.95^{-1/4}-1\approx 1.3\%$ 降到 $0.95^{-1/8}-1\approx 0.6\%$。论文里必须做 $\theta\in\{4,5,8.28\}$ 的敏感性表。
$T_i$ 的构造(从工资和贸易份额反推)
$T_i$ 是外生技术参数,不可直接观测。标准做法是从基准均衡反推:由 $\pi_{ni}/\pi_{nn} = [T_i(w_i\tau_{ni})^{-\theta}]/[T_n w_n^{-\theta}]$,可得
选定一个基准国(例如美国 $n=US$),令 $T_{US}=1$ 归一化,用观测到的 $\pi_{ni}$、$w_i$(工资率)、$\tau_{ni}$(贸易成本估计)就能反推所有 $T_i$。这一步在反事实求解中不需要做——因为帽子代数只用 $\pi_{ni}$,$T_i$ 的绝对水平被吸收进基准份额里。但如果你想讨论"技术赶超"反事实($\hat{T}_i\neq 1$),就需要先反推出 $T_i$ 的相对水平。
数据来源(具体变量与口径)
| 用途 | 数据库 | 具体变量 / 口径 |
|---|---|---|
| 双边贸易份额 $\pi_{ni}$ | WIOD 2016 / OECD ICIO | 国家×国家采购矩阵;行归一化得 $\pi_{ni}=X_{ni}/\sum_k X_{nk}$。 |
| 双边贸易流(行业级 $\pi_{ni,s}$) | UN Comtrade / WITS | HS 6 位码 CIF 进口额;WITS 是 World Bank + UNCTAD 前端,可拉 1988–至今面板。CIF/FOB 比值本身即隐含冰山成本。 |
| 地理/制度成本变量 | CEPII GeoDist / Gravity | dist、distw、contig、comlang_off、comlang_ethno、colony、comcol、legal_orig;Mayer & Zignago (2011, CEPII WP 2011-25) 是说明文档。 |
| 关税 | WITS / UNCTAD TRAINS / WTO TAO | MFN 与 applied 从价关税,HS 6 位。Caliendo-Parro (2015) 用 MFN 关税构造 $\hat\tau_{ni}$。 |
| GDP / 总支出 $X_n=w_nL_n$ | PWT 10.0 / WDI | PWT cgdpe(支出法 GDP,现价美元);帽子代数权重。 |
| 劳动力 $L_n$ | PWT 10.0 / WDI | PWT emp(就业人数,百万)。 |
| 工资率 $w_n$(反推 $T_n$ 时用) | PWT / ILO STAT | PWT labsh×GDP/emp 近似;ILO 平均实际工资。 |
| 汇率 | IMF IFS | 年平均官方汇率 rf,把本币贸易流/GDP 折成美元。 |
| 中国企业/海关微观 | 中国海关数据库、中国工业企业数据库 (ASIF) | HS 8/10 位企业-月度进出口;分行业估 $\theta_s$、构造 $\pi_{ni,s}$;加工贸易需与一般贸易拆分。 |
| 中国宏观/价格 | 国家统计局、CEIC、Wind | 分省 GDP/就业、PPI、CPI;CEIC 提供更长季度面板。 |
冰山成本 $\tau_{ni}$ 与技术参数 $T_i$ 的构造
$\tau_{ni}$ 的两条路径(与 Armington 章节完全一致):
- 份额反推:由 $\pi_{ni}/\pi_{nn}=(w_i\tau_{ni}/w_n)^{-\theta}$,在归一化工资下 $\tau_{ni}=(\pi_{nn}/\pi_{ni})^{1/\theta}$,再令 $\tau_{nn}=1$。
- 引力残差法:估结构引力 $\ln X_{ni}=\alpha_i+\beta_n-\theta\ln\tau_{ni}$,令 $\ln\tau_{ni}=\beta_1\ln dist+\beta_2 contig+\beta_3 comlang+\beta_4 colony+\cdots$,指数化并归一。必须用国固定效应或 PPML 控制多边阻力(AvW 2003)。
$T_i$ 的反推:选基准国 $r$ 令 $T_r=1$,由
这一步只在做技术冲击反事实($\hat T_i\neq 1$)时才需要;纯贸易成本/关税反事实用帽子代数时,$T_i$ 被吸收进基准 $\pi_{ni}$,不需要显式反推。
与 Armington 校准的对比
两个模型的数据需求几乎相同(份额矩阵 + 工资 + 劳动力)。差别只在:(1) EK 需要额外估 $T_i$(如果你要做技术冲击反事实);(2) EK 的贸易弹性 $\theta$ 有更硬的结构解释(Fréchet 形状),可以引用 EK (2002) 或 Simonovska-Waugh (2014) 的估计,而 Armington 的 $\sigma$ 更像"自由参数"。
10 论文案例与常见错误
Fréchet 是最大值极值分布(CDF $e^{-Tz^{-\theta}}$),Weibull 是最小值极值分布(CDF $1-e^{-(z/\lambda)^k}$)。两者形状对称但符号相反,写反了推导出来的"价格分布"会发散。
Fréchet 的均值存在要求 $\theta>1$;CES 价格指数的 Gamma 收敛要求 $\theta+1-\sigma>0$。若你把 $\theta=0.5$ 输入代码,价格指数会爆炸或 nan。
$T_i$ 是技术参数(外生),$w_i$ 是均衡工资(内生)。反事实阶段只有 $\hat{T}_i$ 或 $\hat{\tau}_{ni}$ 是外生冲击;如果你把"工资变化"当成外生变量去做反事实,逻辑就错了。
贸易份额积分里做 $u=\bar S_n p^\theta$ 替换时,$\theta p^{\theta-1}dp=du/\bar S_n$,分母 $\bar S_n$ 必须出现在结果里。如果你漏了它,$\pi_{ni}=S_{ni}\cdot\int e^{-u}du=S_{ni}$ 而不是 $S_{ni}/\bar S_n$,份额不加总为 1。代码里检查 pi = S / S.sum(axis=1, keepdims=True),行归一化不能省。
若反事实含技术冲击($\hat T_n\neq 1$),福利公式是 $\hat W_n=\hat T_n^{1/\theta}\hat\pi_{nn}^{-1/\theta}$,不是纯 $\hat\pi_{nn}^{-1/\theta}$。代码 Part 6 演示了这一修正;漏掉 $\hat T_n$ 项会低估技术进步国的福利。
EK 里贸易弹性就是 $\theta$(不是 $\theta+1$ 也不是 $\theta-1$);Armington 里是 $\sigma-1$。两个模型做敏感性分析时分别取 $\theta\in\{4,5,8.28\}$ 与 $\sigma-1\in\{4,5,8\}$,不要互相代错。
与 Armington 分支相同:w_new = w * (impl/w)**damp 会在归一化后收敛到 $impl_i/w_i=\text{常数}$ 的伪不动点(残差≈0.07),ACR 福利与绝对空间重解差约 1 个百分点。改用算术阻尼 w_new=(1-damp)*w+damp*impl,本页代码已采用。做完反事实务必跑"ACR vs 绝对空间重解"的黄金核对。
EK 模型假设只有一个部门。多部门 EK(Caliendo-Parro 2015)允许每个部门有自己的 $\theta_s$ 与 $T_{is}$,是现代 QSGE 的标准做法。
进阶资料
- Eaton & Kortum (2002) 原文 Section 2 与 Appendix。
- Costinot & Rodriguez-Clare (2014) Handbook Chapter 2。
- Waugh, M. (2010), "International Trade, Income Differences, and Productivity", Econometrica——把 EK 用于收入差距。
∑ 方程总清单 · Equation Summary
本模型共 18 个方程,按推导顺序编号如下。
| 编号 | 名称 | 公式 | 所在节 |
|---|---|---|---|
| (EK1) | 连续品 CES 效用 | $U_n=[\int_0^1 q_n(j)^{(\sigma-1)/\sigma}dj]^{\sigma/(\sigma-1)}$ | 01 |
| (EK2) | CIF 价格 | $p_{ni}(j)=w_i\tau_{ni}/z_i(j)$ | 01 |
| (EK3) | 最低价定律 | $p_n(j)=\min_i\{w_i\tau_{ni}/z_i(j)\}$ | 01 |
| (EK4) | Fréchet CDF | $F_i(z)=e^{-T_i z^{-\theta}}$ | 02 |
| (EK5) | Fréchet PDF | $f_i(z)=\theta T_i z^{-\theta-1}e^{-T_i z^{-\theta}}$ | 02 |
| (EK6) | 价格分布(变量替换) | $G_{ni}(p)=1-e^{-S_{ni}p^\theta}$,$S_{ni}=T_i(w_i\tau_{ni})^{-\theta}$ | 03 |
| (EK7) | 最低价分布 | $G_n(p)=1-e^{-\bar S_n p^\theta}$ | 05 |
| (EK8) | ★ 贸易份额(积分结果) | $\pi_{ni}=S_{ni}/\bar S_n=T_i(w_i\tau_{ni})^{-\theta}/\sum_k T_k(w_k\tau_{nk})^{-\theta}$ | 04 |
| (EK9) | CES 价格指数定义 | $P_n^{1-\sigma}=\int_0^1 p_n(j)^{1-\sigma}dj$ | 05 |
| (EK10) | ★ EK 价格指数 | $P_n=\gamma\bar S_n^{-1/\theta}$,$\gamma=\Gamma((\theta+1-\sigma)/\theta)^{1/(1-\sigma)}$ | 05 |
| (EK11) | 用国内份额反推价格 | $P_n=\gamma w_n(T_n/\pi_{nn})^{1/\theta}$ | 05 |
| (EK12) | 实际工资 | $w_n/P_n\propto\pi_{nn}^{1/\theta}$ | 05 |
| (EK13) | ★ 贸易平衡方程 | $w_iL_i=\sum_n\pi_{ni}w_nL_n$ | 05 |
| (EK14) | 从份额反推 $T_i$ | $T_i=T_n(\pi_{ni}/\pi_{nn})(w_i\tau_{ni}/w_n)^\theta$ | 09 |
| (EK15) | ★ 份额帽子方程 | $\hat\pi_{ni}=\hat T_i(\hat w_i\hat\tau_{ni})^{-\theta}/\sum_k\pi_{nk}\hat T_k(\hat w_k\hat\tau_{nk})^{-\theta}$ | 07 |
| (EK16) | 贸易平衡帽子方程 | $\hat w_i=\sum_n\pi_{ni}\hat\pi_{ni}\hat w_n w_nL_n/(w_iL_i)$ | 07 |
| (EK17) | 价格指数帽子 | $\hat P_n=\hat w_n(\hat T_n/\hat\pi_{nn})^{1/\theta}$ | 05 |
| (EK18) | ★ ACR 福利公式 | $\hat W_n=\hat\pi_{nn}^{-1/\theta}$($\hat T_n=1$) | 05/07 |