多项与有序选择:MNL、IIA、Ordered Logit 与 clogit
把二值推广到 $J>2$ 个无序列选择(MNL / MNP)与有序选择(Ordered Logit/Probit、切点 cutpoints、平行回归假设与 Brant 检验、gologit2);讲清 IIA 假设与 Hausman-McFadden 检验、个体-产品特定变量下的条件 Logit(clogit)。
mlogit、clogit、ologit、nlogit)或 Python。01 概念与直觉:离散选择的谱系
当个体面对 $J>2$ 个备选方案时,上一页的二值模型不够用了。结构派把离散选择分成两大类:
- 无序多选择(unordered multinomial):备选之间没有天然排序,如"上学 / 工作 / 参军"、"坐汽车 / 公交 / 地铁"。代表模型 MNL / MNP / Mixed Logit;
- 有序选择(ordered choice):备选有天然等级,如"完全不同意 / 中立 / 同意"、"低保领取档次 0/1/2"。代表模型 Ordered Logit / Probit / gologit。
二者共享同一个 RUM 框架:$U_{ij}=x_{ij}'\beta+\varepsilon_{ij}$,个体选 $j^*=\arg\max_j U_{ij}$。差别只在于备选之间是否有序,以及扰动 $\varepsilon_{ij}$ 如何相关。理解这一页的关键,是抓住 MNL 的两个"方便但可疑"的假设:独立同分布(IID) 与由此导出的 IIA;以及 Ordered 模型的 平行回归假设。
02 MNL 推导与选择概率
令个体 $i$ 在 $J$ 个备选中选择 $j$。效用 $U_{ij}=V_{ij}+\varepsilon_{ij}=x_{ij}'\beta+\varepsilon_{ij}$。沿用 McFadden 的选择,$\varepsilon_{ij}\overset{iid}{\sim}\mathrm{Gumbel}$。与上一页二值推导完全类似,某一备选 $j$ 被选的概率为该备选用效用比所有备选效用"max 化"的概率:
当备选只有个体特征 $z_i$(不随备选变化)时,写成 alternative-specific 形式 $x_{ij}=[z_i \mathbf{1}\{j=k\}]$,此时 $P_{ij}=\frac{e^{z_i'\beta_j}}{\sum_k e^{z_i'\beta_k}}$(除基准类外每类一套系数),即 multinomial logit;当备选有产品属性(如价格、里程)时,写成 conditional logit,所有备选共用一套系数 $\beta$。
$\log\sum_k e^{x_{ik}'\beta}$ 叫 log-sum,是 RUM 中"该选择集总效用"的期望(到常数)。它在嵌套 Logit(nested logit)和福利计算里反复出现,也是从 MNL 升级到 Mixed Logit 的桥梁。
2.1 MNL 的对数似然与得分(补全)
定义选择指示 $d_{ij}=\mathbf{1}\{i\text{ 选 }j\}$,$\sum_j d_{ij}=1$。给定 $N$ 个独立个体,样本似然为 $\prod_i P_{i,j_i^*}$,取对数:
变量定义:$d_{ij}$ 为选择指示;$P_{ij}=e^{x_{ij}'\beta}/\sum_k e^{x_{ik}'\beta}$。识别条件:必须设某备择常数为零(如 $\alpha_1=0$),否则所有 $\alpha_j$ 同时加常数似然不变(尺度不可识别)。经济直觉:得分是"实际选择偏离模型预测"的加权和,一阶条件要求在每个 $x$ 处平均预测无偏。
03 IIA 假设与 Hausman-McFadden 检验
3.1 IIA 是什么
IIA(Independence of Irrelevant Alternatives,无关备选独立性):任意两个备选 $j,k$ 被选概率之比只取决于二者的效用差,与其他备选无关:
经典的红巴士-蓝巴士悖论(Red Bus / Blue Bus)说明 IIA 不可信:如果个体在"开车 vs 坐红巴士"之间 50/50,IIA 会强制"开车 vs (红巴士/蓝巴士)"也按 1:2 分配——这显然忽略了红蓝巴士之间的强替代性,而把"开车"的份额不合理地稀释了。
3.2 Hausman-McFadden IIA 检验
思路:IIA 若成立,剔除一个备选后,剩下备选用 MNL 估计出的系数应该和全样本估计一致。Hausman-McFadden (1984) 构造:
其中下标 $s$ 为剔除某备选后的子样本估计,$f$ 为全样本估计。拒绝原假设 → IIA 不成立 → 需要 Mixed Logit / Nested Logit(下一页)。Stata 命令:mlogit ...; hausman IIA 或外部命令 mlogtest, hausman。
04 Multinomial Probit(MNP)
把扰动 $\varepsilon_{ij}$ 从 IID Gumbel 换成 多元正态:$\varepsilon_i\sim N(0,\Omega)$,允许备选间任意相关。这样可以完全放松 IIA——但代价是选择概率没有解析形式,要在 $J$ 维正态上做数值积分($J>3$ 时必须用仿真)。MNP 理论优美但计算昂贵,现代应用里它的位置已被 Mixed Logit 取代(同样放松 IIA,且 Logit 核给了仿真上的便利)。
变量定义:$\phi_{J-1}(\cdot;0,\Omega^*)$ 为 $J-1$ 维多元正态密度,协方差 $\Omega^*$ 由 $\Omega$ 的差分量构造。识别条件:$\Omega$ 只有差可识别,需固定 $\text{Var}(\varepsilon_{i2}-\varepsilon_{i1})=1$ 再加一个零相关约束。经济直觉:MNP 让"红巴士/蓝巴士"误差相关,从而不再强制 1:1 分流。
MNP 中 $\Omega$ 只有相对差可识别,必须对 $\Omega$ 施加 2 个归一化约束(固定某方差、某相关为零),否则似然平坦、优化发散。
05 Ordered Logit/Probit:切点与平行假设
5.1 切点(cutpoints)与潜变量
有序因变量 $y_i\in\{0,1,\dots,M\}$ 来自一个连续潜变量 $y_i^*=x_i'\beta+\varepsilon_i$ 被一组切点 $\tau_1<\tau_2<\dots<\tau_M$ 切割:
选择概率(以 Logit 为例,把 $\Lambda$ 换成 $\Phi$ 即 Ordered Probit):
变量定义:$\Phi(\cdot)$ 标准正态 CDF;$\tau_m$ 为切点。识别条件:需固定 $\varepsilon_i$ 方差为 1(与 Logit 固定方差 $\pi^2/3$ 同理),且 $\tau_0=-\infty,\tau_M=+\infty$。经济直觉:Ordered 概率是"两个 CDF 之差",切点决定每档的宽度,$\beta$ 决定整体平移。
切点 $\tau$ 和系数 $\beta$ 一起被 MLE 估计。$\beta_j$ 的符号告诉你"越往哪个方向",但切分段上的概率变化仍需用边际效应解读。
5.2 ★ 平行回归假设(Parallel Lines Assumption)
Ordered 模型最关键也最常被违反的假设:同一个 $\beta$ 在所有切点上都适用。也就是说,$x_j$ 对"跨档"的影响在每一档上都相同——任意两档之间的回归直线是平行的,只是切点不同。这等价于:
5.3 Brant 检验
Brant (1990) 检验平行假设:对每个切点单独跑一个二元 Logit,比较各切点上的 $\beta^{(m)}$ 是否相等。Stata:brant, detail。拒绝 → 平行假设不成立 → 改 gologit 或 partial proportional odds。
06 gologit2:放松平行假设
当 Brant 检验拒绝,Generalized Ordered Logit(gologit2) 允许不同切点上的系数可以不同:$\log\frac{P(y_i\le m)}{P(y_i>m)}=\tau_m-x_i'\beta_m$。Stata 外部命令 gologit2(Williams 2006)还支持 部分比例优势(partial proportional odds):只对违反平行假设的变量放松,其余仍约束平行,避免参数爆炸。这是"既保留 Ordered 结构、又修正设定错误"的现代折中。
07 条件 Logit(clogit)与个体-产品变量
当数据是 个体 $i$ 对每个备选 $j$ 都有一组产品属性 $x_{ij}$(如通勤方式选择里的"汽车时间、公交时间、地铁时间"),用 条件 Logit clogit。数据必须 reshape 成长格式:每个个体 $i$ 有 $J$ 行,choice=1 标记被选那一行。它和 MNL 的区别是:clogit 里所有备选共用一套 $\beta$,因为变量是"备选的属性"而非"个体的特征"。
Stata 的 clogit y x, group(id) 实际上就是 条件 Logit = 面板固定效应 Logit(FE logit):$group(id)$ 内的固定效应被条件似然"差掉",等价于 Chamberlain 固定效应。这是离散面板里最常用的处理。
变量定义:$i$ 为面板个体,$t$ 为期;$D_i$ 为"在 $T_i$ 期中选 $k_i$ 次"的所有二值序列集合(个数 $\binom{T_i}{k_i}$)。识别条件:$k_i=0$ 或 $k_i=T_i$ 的个体完全无变异,被自动从似然中剔除(不影响 $\beta$)。经济直觉:条件化在"成功次数"上,把不随时间变的个体固定效应 $\alpha_i$ 解析地消掉,无需估计 $\alpha_i$ 本身——这就是"brevity" 一致估计。
08 逐步估计流程
mlogit / ologit / clogit 的底层都是极大似然。不熟悉对数似然、McFadden R²、标准误与边际效应?先学 基础知识库·MLE →
margins, dydx(*) outcome(...) 报告每一类别的 AME;画图展示预测概率如何随关键变量变化。09 完整 Stata 代码
*==============================================================*
* 多项 / 有序选择:MNL, IIA, Ordered, Brant, gologit2, clogit
*==============================================================*
clear all
set more off
* ---------- A. 多项 Logit(个体特征为主) ----------
* 示例:被访者职业选择 occ (1=blue, 2=white, 3=service)
use "https://www.stata-press.com/data/r16/gsem_multinomial.dta", clear
* (A1) 基准类 = 1(蓝领)
mlogit occ i.female grade, base(1)
estimates store MNL1
* (A2) ★ Hausman-McFadden IIA 检验:剔除 service 后看系数是否稳定
* ssc install mlogtest, replace
mlogtest, hausman
* (A3) 平均边际效应(每个 outcome 分别报)
margins, dydx(female grade) outcome(1)
margins, dydx(female grade) outcome(2)
margins, dydx(female grade) outcome(3)
* ---------- B. Multinomial Probit 对照 ----------
mprobit occ i.female grade
estimates store MNP1
* ---------- C. Ordered Logit(有序因变量) ----------
* 示例:满意度 rep78 或教育层次
use "https://www.stata-press.com/data/r16/auto.dta", clear
* 构造一个 0/1/2 的有序变量
gen order = (rep78 > 3) + (rep78 > 4)
ologit order foreign price mpg
estimates store OLOGIT
* (C1) ★ Brant 检验:平行回归假设
* ssc install brant, replace
brant, detail
* (C2) Ordered Probit 对照
oprobit order foreign price mpg
* ---------- D. gologit2:放松平行假设 ----------
* ssc install gologit2, replace
gologit2 order foreign price mpg, lrforce
* 仅对违反假设的变量放松:
gologit2 order foreign price mpg, pl(foreign) // price/mpg 仍平行
* ---------- E. 条件 Logit clogit(长格式) ----------
* 数据结构:id(个体) alt(备选=1..J) choice(是否被选) time cost
* 先 reshape long
* gen choice = (alt == chosen_alt)
* clogit choice time cost, group(id)
* 等价:面板固定效应 Logit
webuse union3, clear
xtlogit union age grade, fe // 固定效应 Logit,内部用条件似然
09+ 数据来源对照表(多项/有序选择常用数据集)
多项 Logit/MNP 需要"三选及以上"的选择数据;有序 Probit 需要天然有等级的因变量(教育档次、健康自评、满意度)。下表对照英文经典与中国常用数据集:
| 数据集 | 国家/地区 | 典型因变量 | 类型 | 获取 |
|---|---|---|---|---|
| NLSY | 美国 | 职业/行业选择(蓝领/白领/服务) | 无序多项 | NLSY79 公网免费 |
| CPS | 美国 | 教育选择(高中/大专/大学) | 无序多项 | FRED/IPUMS CPS |
| HRS | 美国 | 退休选择(完全退休/部分退休/继续工作) | 有序多项 | 美国 HRS 注册免费 |
| CFPS | 中国 | 教育档次(初中/高中/大专/大学) | 有序 | 中国家庭追踪调查(北大) |
| CHARLS | 中国 | 健康自评(差/一般/好/很好) | 有序 | 中国健康与养老追踪调查 |
| CHFS | 中国 | 金融资产配置(无存款/存款/股票/多元) | 有序 | 中国家庭金融调查 |
| CLDS | 中国 | 就业类型(务农/打工/自雇/体制内) | 无序多项 | 中国劳动力动态调查(中大) |
因变量有天然等级(教育档次、健康自评、满意度)用 Ordered;无等级(职业、品牌、交通方式)用 MNL/MNP。中国有序选择选题用 CFPS 教育档次或 CHARLS 健康自评最对口;多项职业选择用 CLDS/NLSY 最经典。
10 论文案例
11 常见错误与进阶资料
MNL 系数有意义的前提是 IIA 成立;Ordered 系数可解释的前提是平行假设。跳过检验直接报结果,审稿人一眼识破。
MNL 中 $\hat\beta_{price}=-0.5$ 不直接等于"价格涨 1%,份额降 0.5%"。必须用 margins 算每个类别的预测概率变化。
mlogit 是宽格式(一行一个体,因变量取类别);clogit 是长格式(一行一个 个体×备选)。混用会让系数完全失真。
报告时务必把 $\hat\tau_1,\hat\tau_2,\dots$ 列出来——它们是 Ordered 模型独有的结构参数,反映类别阈值;只报 $\hat\beta$ 等于藏了一半模型。
进阶资料(真实 URL)
- Stata mlogit 手册:
https://www.stata.com/manuals/rmlogit.pdf - Stata ologit / brant:
https://www.stata.com/manuals/rologit.pdf - Williams gologit2 论文 PDF(ND.edu):
https://www3.nd.edu/~rwilliam/gologit2/ - Train, Discrete Choice Methods with Simulation 第 2 章:
https://eml.berkeley.edu/books/train2/
方程总清单 / Equation Summary
本页全部方程按出现顺序汇总如下,共 10 个。每个方程均可在正文中找到对应的变量定义、设定理由与经济直觉。
| 编号 | 方程名称 | 核心公式 | 所在节 |
|---|---|---|---|
| Eq.08-01 | MNL 选择概率 | $P_{ij}=e^{x_{ij}'\beta}/\sum_k e^{x_{ik}'\beta}$ | 02 |
| Eq.08-02 | MNL 对数似然与得分(补全) | $\ell=\sum_i\sum_j d_{ij}\log P_{ij}$;$s=\sum_i\sum_j(d_{ij}-P_{ij})x_{ij}$ | 02.1(补全) |
| Eq.08-03 | IIA 比例 | $P_{ij}/P_{ik}=e^{(x_{ij}-x_{ik})'\beta}$ | 03 |
| Eq.08-04 | Hausman-McFadden IIA 检验 | $H=(\hat\beta_s-\hat\beta_f)'[\widehat{\text{Var}}_s-\widehat{\text{Var}}_f]^{-1}(\hat\beta_s-\hat\beta_f)\sim\chi^2(k)$ | 03 |
| Eq.08-05 | MNP 选择概率(补全) | $P_{ij}=\int\phi_{J-1}(\eta;0,\Omega^*)d\eta$ | 04(补全) |
| Eq.08-06 | Ordered 切点设定 | $y_i=m\iff\tau_{m-1}| 05 | |
| Eq.08-07 | Ordered Logit 概率 | $P(y_i=m)=\Lambda(\tau_m-x_i'\beta)-\Lambda(\tau_{m-1}-x_i'\beta)$ | 05 |
| Eq.08-08 | Ordered Probit 概率与似然(补全) | $P=\Phi(\tau_m-x_i'\beta)-\Phi(\tau_{m-1}-x_i'\beta)$;$\ell$ 完整写出 | 05(补全) |
| Eq.08-09 | 平行假设对数几率比 | $\log\frac{P(y_i\le m)}{P(y_i>m)}=\tau_m-x_i'\beta$ | 05.2 |
| Eq.08-10 | clogit 条件似然(Chamberlain,补全) | $L_c=\prod_i\frac{\exp(\sum_t x_{i,j_i^*,t}'\beta)}{\sum_{\mathbf{d}\in D_i}\exp(\sum_t x_{i,d_t}'\beta)}$ | 07(补全) |