
第 7 周:结构估计应用——需求、均衡、反事实与人工智能辅助工作流
中国人民大学商学院
2026-06-05
结构估计基础
本节课的问题
估计出偏好和成本后,如何回答“如果政策或市场结构改变,会发生什么”?
五个应用模块
需求系统是很多结构研究的入口
核心任务:从消费者选择中恢复偏好参数,并用这些参数预测新情景。
消费者 i 对产品 j 的效用:
u_{ij} = \delta_j + \mu_{ij} + \varepsilon_{ij}
其中
\delta_j = x_j\beta - \alpha p_j + \xi_j
三层异质性
若 \varepsilon_{ij} 服从第一型极值分布,则
s_j = \frac{\exp(\delta_j)} {1+\sum_{k=1}^{J}\exp(\delta_k)}
外部选项份额:
s_0 = \frac{1} {1+\sum_{k=1}^{J}\exp(\delta_k)}
提示
优点
逻辑选择模型可解释、可反演、计算快,是理解结构需求估计的第一块积木。
逻辑选择模型隐含:
\frac{s_j}{s_k} = \frac{\exp(\delta_j)}{\exp(\delta_k)}
这个比值不受其他产品影响。
红巴士 / 蓝巴士问题
如果新加入一个“蓝巴士”,标准逻辑选择模型会让它从所有产品按比例抢份额,而不是主要从“红巴士”抢份额。这会扭曲合并模拟和新产品预测。
随机系数模型允许价格敏感度或特征偏好因人而异:
u_{ij} = x_j\beta_i - \alpha_i p_j + \xi_j + \varepsilon_{ij}
例如
\alpha_i = \alpha + \sigma_\alpha v_i
为什么有用
替代关系来自消费者异质性:价格敏感消费者在低价产品之间替代,质量敏感消费者在高质量产品之间替代。
随机系数下没有简单闭式聚合:
s_j(\theta) = \int \frac{\exp(\delta_j+\mu_{ij})} {1+\sum_k\exp(\delta_k+\mu_{ik})} dF(v_i)
用 R 个模拟消费者近似:
\hat{s}_j(\theta) = \frac{1}{R}\sum_{r=1}^{R} \frac{\exp(\delta_j+\mu_{rj})} {1+\sum_k\exp(\delta_k+\mu_{rk})}

自价格弹性:
\epsilon_{jj} = \frac{\partial s_j}{\partial p_j} \frac{p_j}{s_j}
交叉价格弹性:
\epsilon_{jk} = \frac{\partial s_j}{\partial p_k} \frac{p_k}{s_j}
经济含义
弹性矩阵告诉我们:当某个产品涨价,需求从哪里流走,又流向哪里。
标准逻辑选择模型下:
\frac{\partial s_j}{\partial p_k} = \alpha s_j s_k \quad (j\neq k)
交叉替代主要由产品 k 的份额决定。
反事实风险
如果现实中的替代发生在“相似产品”之间,而模型只按份额分配替代,合并模拟会系统性失真。
假设单产品企业进行伯特兰价格竞争:
\max_{p_j} (p_j-mc_j)M s_j(p)
一阶条件:
s_j(p) + (p_j-mc_j)\frac{\partial s_j}{\partial p_j} =0
因此
mc_j = p_j + \frac{s_j(p)} {\partial s_j(p)/\partial p_j}
若企业 f 拥有多个产品,定价一阶条件写成矩阵形式:
\mathbf{s}(p) + \Delta(p)(p-mc)=0
其中 \Delta_{jk} 取决于产品 j,k 是否属于同一企业:
\Delta_{jk} = \mathbb{1}\{j,k \in \mathcal{J}_f\} \frac{\partial s_k}{\partial p_j}
mc = p + \Delta(p)^{-1}\mathbf{s}(p)
三步
合并后的价格满足:
\mathbf{s}(p^{new};\hat{\theta}_D) + \Delta^{new}(p^{new})(p^{new}-\widehat{mc}) =0
def demand_shares(price, theta):
delta = theta["beta"] * x - theta["alpha"] * price + xi
exp_delta = np.exp(delta)
return exp_delta / (1 + exp_delta.sum())
def pricing_residual(price, mc, ownership, theta):
s = demand_shares(price, theta)
deriv = demand_derivative(price, theta)
Delta = ownership * deriv.T
return s + Delta @ (price - mc)
price_new = solve_root(
lambda p: pricing_residual(p, mc_hat, ownership_after, theta_hat),
price_before
)企业 i 是否进入市场:
a_i = \mathbb{1}\{\pi_i(a_{-i},X;\theta)+\varepsilon_i \geq 0\}
均衡要求每个企业的进入决策都是最优反应。
识别问题
我们观察到进入结果,但看不到每家企业的进入成本、私人信息和未实现反事实利润。
古诺双寡头中,企业选择产量:
\max_{q_i} P(q_i+q_{-i})q_i - C_i(q_i)
均衡由两个一阶条件同时决定:
f_i(q) = P(Q) + P'(Q)q_i - C_i'(q_i) =0
这就是 W6 中非线性方程求解的直接应用。
传统引力方程:
x_{ij} = \alpha + \alpha_1 y_i + \alpha_2 y_j + \theta d_{ij} + \gamma \delta_{ij} + \epsilon_{ij}
Anderson-van Wincoop 的结构逻辑:
x_{ij} = \frac{y_i y_j}{y^W} \left( \frac{t_{ij}}{P_iP_j} \right)^{1-\sigma}
多边阻力
贸易流取决于 i,j 之间的贸易成本,也取决于它们面对所有其他伙伴的贸易成本。
若关税下降改变 t_{ij},不能只替换一个回归变量。
需要重新求解:
P_j^{1-\sigma} = \sum_i P_i^{\sigma-1}\theta_i t_{ij}^{1-\sigma}
再计算新的贸易流:
x_{ij}^{new} = \frac{y_i y_j}{y^W} \left( \frac{t_{ij}^{new}}{P_i^{new}P_j^{new}} \right)^{1-\sigma}
| 同一问题 | 减少形式做法 | 结构做法 |
|---|---|---|
| 关税下降 | 估计关税对贸易流的平均影响 | 改变贸易成本并求解新均衡 |
| 平台补贴 | DiD 估计补贴对交易量影响 | 模拟两边市场价格和参与 |
| 合并 | 研究既有合并案例 | 改变所有权矩阵并解新价格 |
| 新产品 | 找类似历史进入事件 | 加入选择集并重新聚合需求 |
互补而非替代
减少形式结果常用于验证结构模型;结构模型用于外推到未发生的政策情景。
高收益环节
scipy.optimize 中不同求解器的失败模式人工智能最适合做“工程加速器”,不适合做“经济假设裁判”。
每次结构估计都要留下这些记录
提示
好提示的结构
说明模型、输入形状、输出形状、数值稳定要求和要通过的单元测试。
本周带走的东西
期末项目建议:如果你的问题涉及“未发生的政策情景”,请认真考虑是否需要结构模型。