
New! 搜推文,找资料,用
lianxh
命令:
安装:ssc install lianxh, replace
使用:lianxh 合成控制
lianxh DID + 多期, w


作者: 杨柳 (西北大学, philoyl@163.com) || 连玉君 (中山大学, arlionn@163.com)
- Title: Stata:Logit模型一文读懂
- Keywords: Logit, 二元变量, 离散选择, Logistic, margins, 边际效应
1. 简介
在实证研究中,我们会经常遇到被解释变量为 “是/否” 或者 “某事件发生/未发生”,此时,被解释变量只有 两种 取值,对应的数字编码可记为 0 或 1,称为二值变量
或 0-1
变量。例如,我们想研究以下问题:
- 什么因素会导致患胃癌(患胃癌 = 1;未患胃癌 = 0)?
- 具有哪些特征的中小企业会破产违约还贷(违约 = 1;未违约 = 0)?
- 哪些消费者倾向于购买 iphone(购买 iphone = 1;未购买 iphone = 0)?
- 北京实施限行政策后哪些家庭会购买第二辆小汽车(购买第二辆车 = 1;未购买第二辆车= 0)?
在这些情况下,采用线性回归模型研究被解释变量的影响因素是 不合适的 (可参见 连享会推文 二元选择模型:probit 还是 logit?(微信版),需要使用 概率模型,其中最常用的是二元 Logit 模型。
2. 二元 Logit 模型
2.1 0/1 分布
对于某一个样本 ,由于被解释变量 的取值为 0 或者 1,我们可以将 视为随机变量 的实现值: 取 1 的概率为 , 取 0 的概率为 。随机变量 服从参数为 的 (0-1) 分布, 的分布律为
显然,若 ,则 的概率为 ;若 ,则 的概率为 。
易于证明, 的 期望 和 方差分别为:
可见, 的期望和方差都决定于 。任何影响概率的因素不但会影响观察值的均值,也会影响其方差。 这就表明线性回归模型无法用于分析二值变量,因为线性回归模型 假设方差是固定不变的。
2.2 Logit 变换
线性变换
为了使上述模型更富有弹性,我们假设概率 受一系列变量的影响,设定为 。一个非常直觉的想法是把二者之间的关系设定为线性函数: $$\pi_{i}=\mathbf{x}_{i}^{'}\boldsymbol{\beta} \qquad (1)$$ 其中, 为系数向量。该模型通常称为线性概率模型
,采用普通最小二乘法估计即可。其 主要缺陷 在于:由于等式左边的 表示概率,所以必须介于 0 和 1 之间,而右边的线性组合项则可能取任何值,所以在不对模型做严格约束的情况下,我们很难保证模型的预测值介于合理的范围内。
Logit 变换
因此,我们必须对概率 进行变换以消除对其取值范围的约束,继而把变换后的数值设定为解释变量 的线性函数。处理过程包括两个步骤。
第一步,我们依据概率 来定义
胜算比 (odds)
:
即 的概率 与 的概率 的比值。显然,胜算比可以取任意非负值,如此便可消除上限约束。
第二步,取对数以计算 logit 或 log-odds:
这样我们就可以去除下限约束。因为,随着概率 趋近于 0,logit 将趋近于 ; 而当概率 趋近于1 ,logit 将趋近于 。因此,通过以上变换, 将概率 的取值范围从 (0, 1) 映射至整个实数轴。显然,如果概率为 0.5,胜算比为1,相应的 log-odds 为 0。log-odds 为负表示概率小于0.5,反之则表示概率大于0.5。
2.3 Logistic 模型
在完成了上述变换后,我们就可以定义 Logistic 回归模型
了,此时我们假设概率 的 logit 变换(而非概率 本身)服从线性模型,即
其中, 为解释变量构成的向量, 为系数向量。
由于 logit 变换是一一对应的,所以我们可以通过求取逆对数由 logit 反向得到概率值 (通常称为 antilogit)。由上式可解得:
进一步将被解释变量 表示为:
其中, 为随机干扰项,有两个可能的取值:
- 若 ,则 ,相应的概率为 ;
- 若 ,则 ,相应的概率为 。
因此, 服从均值为 0,方差为 的分布。
综合所述,可以看出当被解释变量是二值变量时:
- 模型的条件均值必须限定于 0 和 1 之间;
- 干扰项服从均值为 0,方差为 的分布,而非正态分布,且其分布受所分析样本的具体情况的影响;
- 分析线性模型的基本准则同样适用于分析 Logit 模型。
2.4 估计结果的解释与举例
系数的含义
在 Logistic 模型 (4) 式中,系数 的含义可解释如下:
在其他变量不变的情况下,第 个变量 变动一个单位, 的值将变动 个单位。
问题在于, 变动 个单位的经济含义很难解释。不过,我们可以对 (4) 式两边
同时进行指数运算,得到第 个观察值对应的胜算比:
假设第 个解释变量 增加 1 个单位,则胜算比变为:
结合 (7) 式和 (8) 式,可以得到 胜算比 (odds ratio)
(为了表述的方便,此处省略了下标 ):
[^Note1]: 为了表述的方便,(9) 式中省略了下标 。
因此, 的含义 可以解释为:
在其他变量不变的情况下,若 增加 1 个单位,则胜算比是原来的 倍。
- 若 ,则表示在其他变量不变的情况下, 增加 1 个单位时, 胜算比增大了,此时对应的 ;
- 若 ,则表示在其他变量不变的情况下, 增加 1 个单位时, 胜算比减小了,此时对应的 。
在某些情况下,我们还需要分析 变动 1 个标准差 产生的影响: 在控制其他变量不变的情况下,若 增加 1 个标准差,则 胜算比 (odds)
是原来的 倍。
Stata 范例
Stata 提供的 logit
命令可用于估计上面介绍的二元 logit 模型。这里,我们使用 Stata 附带的 auto.dta 数据 (1978年美国汽车数据) 来预测汽车产地 (进口= 1;国产= 0)。以 foreign (是否为进口车) 作为被解释变量、以 mpg (每加仑汽油能够行驶的英里数)、weight (汽车重量) 作为解释变量,建立二元 logit 模型。Stata 中的命令和结果如下:
. sysuse "auto.dta", clear
(1978 Automobile Data)
. logit foreign mpg weight
Iteration 0: log likelihood = -45.03321
Iteration 1: log likelihood = -29.238536
Iteration 2: log likelihood = -27.244139
Iteration 3: log likelihood = -27.175277
Iteration 4: log likelihood = -27.175156
Iteration 5: log likelihood = -27.175156
Logistic regression Number of obs = 74
LR chi2(2) = 35.72
Prob > chi2 = 0.0000
Log likelihood = -27.175156 Pseudo R2 = 0.3966
--------------------------------------------------------------------------
foreign | Coef. Std. Err. z P>|z| [95% Conf. Interval]
---------+----------------------------------------------------------------
mpg | -.1685869 .0919175 -1.83 0.067 -.3487418 .011568
weight | -.0039067 .0010116 -3.86 0.000 -.0058894 -.001924
_cons | 13.70837 4.518709 3.03 0.002 4.851859 22.56487
--------------------------------------------------------------------------
回归结果显示,mpg 与 weight 的系数值均显著为负,表明当控制其他变量不变时,mpg 与 weight 变量的值分别增加 1 个单位时, 胜算比 (odds) 将分别变为原来的 与 倍,表明 该车辆是进口车的概率将变小。
要获得这个变化的倍数值,即 胜算比,只需在 logit
命令后附加 or
选项即可。Stata 中的命令和结果如下所示:
. logit foreign mpg weight, or
Iteration 0: log likelihood = -45.03321
Iteration 1: log likelihood = -29.238536
Iteration 2: log likelihood = -27.244139
Iteration 3: log likelihood = -27.175277
Iteration 4: log likelihood = -27.175156
Iteration 5: log likelihood = -27.175156
Logistic regression Number of obs = 74
LR chi2(2) = 35.72
Prob > chi2 = 0.0000
Log likelihood = -27.175156 Pseudo R2 = 0.3966
--------------------------------------------------------------------------
foreign | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval]
---------+----------------------------------------------------------------
mpg | .8448578 .0776572 -1.83 0.067 .7055753 1.011635
weight | .9961009 .0010077 -3.86 0.000 .9941279 .9980779
_cons | 898396.7 4059594 3.03 0.002 127.9781 6.31e+09
--------------------------------------------------------------------------
Note: _cons estimates baseline odds.
Note:Stata 还提供了另一条命令: logistic
,可以得到完全相同的结果。
2.5 边际效应分析
从上面的例子中可以看到,虽然我们能从解释变量的系数值判断该车辆是进口车的概率值的变化情况,但我们仍然不能直观地看出概率值变化的具体数值。在实证分析中,我们往往需要计算出来解释变量的变化将对这辆车是进口车的概率的变化带来的边际影响值,此时,我们需要使用 margins
命令来计算边际效应。
这里,我们介绍实证分析中常用的两种边际效应:
- 平均边际效应。 即先分别计算在每个样本观测值上的边际效应,然后进行简单算术平均得到平均边际效应。
- 样本均值处的边际效应。 即先分别计算各自变量的样本均值,然后计算在这一点处的边际效应。
2.5.1 平均边际效应
我们可以使用 margins
命令附加 dydx
选项来进行计算。Stata 中的命令和结果如下所示:
. margins, dydx(mpg) //计算mpg变量对Pr(foreign)的平均边际效应
Average marginal effects Number of obs = 74
Model VCE : OIM
Expression : Pr(foreign), predict()
dy/dx w.r.t. : mpg
------------------------------------------------------------------------------
| Delta-method
| dy/dx Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
mpg | -.0197187 .0096987 -2.03 0.042 -.0387277 -.0007096
------------------------------------------------------------------------------
. margins, dydx(weight) //计算weight变量对Pr(foreign)的平均边际效应
Average marginal effects Number of obs = 74
Model VCE : OIM
Expression : Pr(foreign), predict()
dy/dx w.r.t. : weight
------------------------------------------------------------------------------
| Delta-method
| dy/dx Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
weight | -.0004569 .0000571 -8.01 0.000 -.0005688 -.0003451
------------------------------------------------------------------------------
- 计算结果显示:当 mpg 增加 1 个单位时,车辆为进口车的概率减少
1.97%
;当 weight 增加 1 个单位时,车辆为进口车的概率减少0.04%
。
2.5.2 样本均值处的边际效应
我们可以使用 margins
命令附加 dydx
、atmeans
选项来进行计算。Stata 中的命令和结果如下所示:
. margins, dydx(mpg) atmeans //计算mpg变量对Pr(foreign)在样本均值处的边际效应
Conditional marginal effects Number of obs = 74
Model VCE : OIM
Expression : Pr(foreign), predict()
dy/dx w.r.t. : mpg
at : mpg = 21.2973 (mean)
weight = 3019.459 (mean)
-------------------------------------------------------------------------
| Delta-method
| dy/dx Std. Err. z P>|z| [95% Conf. Interval]
--------+----------------------------------------------------------------
mpg | -.0223512 .0127037 -1.76 0.079 -.04725 .0025476
-------------------------------------------------------------------------
. margins, dydx(weight) atmeans //计算weight变量对Pr(foreign)在样本均值处的边际效应
Conditional marginal effects Number of obs = 74
Model VCE : OIM
Expression : Pr(foreign), predict()
dy/dx w.r.t. : weight
at : mpg = 21.2973 (mean)
weight = 3019.459 (mean)
-------------------------------------------------------------------------
| Delta-method
| dy/dx Std. Err. z P>|z| [95% Conf. Interval]
--------+----------------------------------------------------------------
weight | -.0005179 .0001389 -3.73 0.000 -.0007902 -.0002457
-------------------------------------------------------------------------
结果显示,当 mpg的均值 增加 1 个单位时,车辆为进口车的概率减少 2.23%
;当 weight的均值 增加 1 个单位时,车辆为进口车的概率减少 0.05%
。
3. 实证分析中的应用举例
发表于 Journal of Urban Economics, 102 (2017) 的一篇论文中使用了二元 Logit 模型分析了北京汽车限号行驶政策对个体出行行为的影响。接下来,我们就向大家介绍文献中关于「建立二元 Logit 模型分析限号行驶政策对个体出行行为影响作用」的主要内容。
若大家对该篇文献感兴趣可以按照如下原文信息下载 PDF,还可以参考阅读 香樟经济学术圈 推文 【香樟推文1015】北京汽车限行对个体出行行为的影响。
原文信息: Yizhen Gu, Elizabeth Deakin, Ying Long, The Effects of Driving Restrictions on Travel Behavior Evidence from Beijing, Journal of Urban Economics, 102 (2017), 106-122. DOI: 10.1016/J.JUE.2017.03.001,-PDF-
3.1 研究背景
汽车限号行驶政策已在国际上的很多城市实施过,许多研究质疑了这类政策的有效性,还有一些研究结果之间的结论存在差异。该篇文章将北京市作为案例城市,使用微观的个人出行数据来研究 汽车限号行驶政策 对居民的 出行行为 的影响,这些 出行行为 包括:
- 遇到行驶受限时,是否进行至少一次小汽车出行;
- 遇到行驶受限时,是否不使用小汽车方式,使用其他步行、自行车、公交等替代方式出行;
- 对限号行驶政策的适应 / 调整行为(调整为非限行时间 / 日期出行;违反限行规定驾车;使用尾号不受限行的车辆)等。
3.2 北京市汽车限号行驶政策
- 北京自 2009 年 4 月开始实行在 工作日早上 7:00 到晚上 8:00 之间 的时间段,五环路以内和部分其它道路上 实施按 车辆尾号限行 的措施:
- 周一限行 1 和 6
- 周二限行 2 和 7
- 周三限行 3 和 8
- 周四限行 4 和 9
- 周五限行 0 和 5
- 对于每一个组限行的尾号(1 & 6, 2 & 7, 3 & 8, 4 & 9, 0 & 5)来说,限行的日子每 13 周轮换一次。
- 在 2010 年底,北京大约有 480 万辆注册的车,所以平均来说,每个工作日有 100 万辆车限行。但是由于 4 是不吉利的数字,注册的车辆中以 4 结尾的车辆会少一些。因此,每逢遇到尾号是 4 & 9 的限行日,交通拥堵程度会增加。
3.3 研究数据
这篇文章的研究数据来源于北京市政府组织调查的 2010 年的居民出行调查数据。调查采取 1% 的样本率,选择了北京市 1911 个交通小区的 1085 个区域,每个区域有 10 - 50 的家庭接受面对面的调查。居民出行调查的样本总量共计 46,900 家庭及 116,142 位家庭成员。居民出行调查内容包括:家庭成员一天的出行情况,家庭的信息和家庭成员的个人信息。在该样本中,有 71.1% 的家庭没有私人汽车, 26.7% 的家庭有一辆, 2.2% 的家庭至少有两辆车。
3.4 模型设定与结果分析
A. 基本模型
文献中建立的 二元 Logit 模型 如下所示:
式中, 为驾驶员 的第 次出行使用小汽车方式的概率; 为虚拟变量,代表调查当日驾驶员的小汽车是否被限行; 为虚拟变量,代表调查日是否与驾驶员的小汽车被限行的日子相邻; 为代表一系列反映出行特征的协变量,例如出行目的、出行距离/时耗等; 代表一系列反映驾驶员特征的协变量,例如性别、年龄、职业、收入、家庭距离地铁站的距离、家庭是否位于市中心的东城区或西城区、家庭是否位于长安街以北的地区等。
B. 是否在工作日至少使用小汽车方式进行一次出行
基于二元 Logit 模型公式(10) ,将因变量中的 定义为 驾驶员 在工作日至少使用小汽车方式出行一次的概率,选择 两类驾驶员 样本进行回归分析,分别为以下两类,回归结果如下图所示:
- 样本 1:居住在 受限区域 且 家庭中拥有一辆小汽车 的 5123 名驾驶员
- 样本 2:居住在 非受限区域 且 家庭中拥有一辆小汽车 的 3874 名驾驶员
图中报告的结果是 平均边际效应值;括号内数字为 聚类标准误,以 驾驶员的家庭所在的交通小区 作为聚类的单元。从回归结果可以看到,限行政策使受限区域的驾驶员在工作日至少使用小汽车方式出行一次的概率
显著降低了 8.1%-15.9%
。
为了进一步说明限行政策的边际效果在不同组别的驾驶员之间的区别,文献中按照性别
、机动/固定的工作时间
、高/低收入
、居住在长安街以北/以南地区
、是否有孩子
对位于 受限区域且家庭中拥有一辆小汽车 的 5123 名驾驶员样本进行了 分组回归,结果如下图所示:
图中报告的结果是各组的 平均边际效应值、至少使用小汽车方式出行一次的样本均值 与 调查当日被限行时至少使用小汽车方式出行一次的平均概率的下降情况;括号内数字为 聚类标准误,以 驾驶员的家庭所在的交通小区 作为聚类的单元。从回归结果可以看到,女性
、有机动工作时间
与高收入
的驾驶员在 调查当日被限行时 至少使用小汽车方式出行一次的平均概率比 未限行时 的平均概率的 减小幅度 较大,分别为 27.3%、24% 与 18%
。
C. 对限行政策的适应 / 调整行为
文献基于二元 Logit 模型公式 (10) ,将因变量中的 定义为 小汽车出行的概率,使用了 四组样本 进行回归分析,结果如下图所示:
从上图 Panel 1 中 I 与 II 列的回归结果可以看到,在 居住在受限区域且家庭拥有一辆车 的驾驶员进行的所有出行中,限行政策使得小汽车方式出行的平均概率
显著的下降了近 10%
;III 与 IV 列的回归结果显示,在 居住在非受限区域且家庭拥有一辆车的驾驶员进行的所有出行中,限行政策未能显著的影响小汽车方式出行的平均概率。
-
调整为非限行时间 / 日期出行的行为
Panel 2 使用的分析样本包括 (i). 在 居住在受限区域且家庭拥有一辆车 的驾驶员进行的早 7:00 至 晚 8:00 的出行;(ii). 非限行时段内的出行;(iii). 在 居住在受限区域且家庭拥有一辆车 的驾驶员进行的所有出行。
V 与 VI 列的回归结果显示,限行政策使得限行时段内
小汽车出行的概率下降13.6%
;而在非限行时段内,限行政策未能显著的影响小汽车方式出行的平均概率。VII 与 VIII 列的回归结果显示,当 调查日与驾驶员的小汽车被限行的日子相邻时,小汽车出行的概率未受到显著的影响。 -
违反限行规定的驾车行为
Panel 3 使用的分析样本为 居住在受限区域且家庭拥有一辆车 的驾驶员进行的所有出行。由于没有官方的违反限行规定驾车出行的数据,我们假设:当驾驶员受到限行时,若 出行距离较短,则违反限行规定驾车出行的概率会大些。例如,从家到幼儿园接送孩子时,被交警或摄像头拍摄到违规的概率会小些。因此,我们在模型中加入出行时耗 (Duration) / 出行距离 (Distance) 变量 和 调查当日驾驶员的小汽车被限行 (Restrict) 与 出行时耗 (Duration) / 出行距离 (Distance) 的 交乘项。
第 IX 和 X 列的回归结果显示,Restrict 对小汽车出行概率的影响变为不显著
,而 Duration 变量的平均边际效应显著为正
,Restrict 与 Duration 的交乘项 的平均边际效应显著为负
。上述结果表明:当 出行距离较短 (Duration) 时,调查当日驾驶员的小汽车被限行 (Restrict) 对小汽车出行概率的边际效应值显著的变小了(仅下降了0.1%
),但在一般情况下,当驾驶员进行 长距离出行 时,选择小汽车出行的概率较大 ( Duration 变量对小汽车出行概率的边际效应值为+0.2%
)。该结果对 当出行距离较短时,驾驶员违反限行规定使用小汽车出行的概率会大些 的结论提供了一些依据。 -
使用尾号不受限行的车辆
Panel 4 使用的分析样本为 居住在受限区域且家庭拥有至少两辆车 的驾驶员进行的所有出行。XIII 与 XIV 列的回归结果显示,若 驾驶员能够使用尾号不受限行的车辆,则限行政策 不能显著的影响 小汽车方式出行的平均概率,但该样本量较小 ( N = 183),因此得出该结论时我们需要谨慎些。
D. 稳健性检验
文献中对 出行方式选择 的回归结果还进行了一系列的 稳健性检验,包括以下方法:
- 使用 OLS 回归方程 代替二元 Logit 模型;
- 使用 不同的类聚标准误(以驾驶员为聚类单元、以出行起点 (Origin) 所在的交通小区为聚类单元、以出行终点 (Destination) 所在的交通小区为聚类单元、以出行起点与终点的 OD 点对所在交通小区为聚类单元),得到了回归结果与上述结果相同;
- 实施 安慰剂检验,得到的回归结果不显著;
- 对样本 增加了权重,得到的回归结果变化不大。
4. 参考文献
- 钟经樊,连玉君,计量分析与 STATA 应用第十五章 Logistic 模型,版本 2.0,2010.6
- 不止点滴 推文 二值选择模型:Probit 与 Logit
- 连享会推文 二元选择模型:probit 还是 logit?
- Yizhen Gu, Elizabeth Deakin, Ying Long, The Effects of Driving Restrictions on Travel Behavior Evidence from Beijing, Journal of Urban Economics, 102 (2017), 106-122. DOI: /10.1016/j.jue.2017.03.001
- 香樟经济学术圈 推文 【香樟推文1015】北京汽车限行对个体出行行为的影响
5. 相关推文
Note:产生如下推文列表的 Stata 命令为:
lianxh logit probit 离散选择
安装最新版lianxh
命令:
ssc install lianxh, replace
- 专题:Probit-Logit
- 丁雅文, 2021, Stata:面板混合选择模型-cmxtmixlogit, Blog No.748.
- 万源星, 2020, xtpdyn:动态面板Probit模型及Stata实现, Blog No.44.
- 吴思锐, 2020, Stata:二元Probit模型, Blog No.162.
- 展一帆, 周依仿, 2021, Logit-Probit:非线性模型中交互项的边际效应解读, Blog No.616.
- 庄子安, 2021, feologit:固定效应有序Logit模型, Blog No.507.
- 张雪娇, 2020, Stata:Logit模型评介, Blog No.212.
- 彭莘昱, 2021, reg2logit:用OLS估计Logit模型参数, Blog No.512.
- 杨柳, 2020, Stata:嵌套Logit模型(NestedLogit), Blog No.260.
- 武珊珊, 2020, 详解Logit/Probit模型中的completelydetermined问题, Blog No.190.
- 连享会, 2020, Stata:何时使用线性概率模型而非Logit?, Blog No.206.
- 连玉君,杨柳, 2020, Stata:Logit模型一文读懂, Blog No.170.
- 陈卓然, 2022, 全面解读Logit模型, Blog No.965.
- 黄彩虹, 2020, 二元选择模型:Probit还是Logit?, Blog No.235.
- 黄欣怡, 2020, Stata:多元Logit模型详解(mlogit), Blog No.443.
- 黄熹, 2021, 秒懂小罗肥归:logit与mlogit详解, Blog No.573.
- 专题:Stata命令
- 连享会, 2020, Stata新命令:面板-LogitFE-ProbitFE, Blog No.341.
- 专题:交乘项-调节-中
- 祁本章, 2021, Logit-Probit中的交乘项及边际效应图示, Blog No.575.
- 专题:面板数据
- 郭盼亭, 2022, Stata:面板Logit的边际效应和处理效应估计-mfelogit, Blog No.1127.


资源共享
- 连享会资料 ……
- 在线视频:lianxh-class.cn
- Stata 33 讲,100 万+ 播放,Stata 入门必备,公开课
- 直击面板数据模型,10 万+ 播放,白话面板模型,公开课
- … more …
- 论文复现和数据
- 主题分类
- 热门推文

尊敬的老师 / 亲爱的同学们:
连享会致力于不断优化和丰富课程内容,以确保每位学员都能获得最有价值的学习体验。为了更精准地满足您的学习需求,我们诚挚地邀请您参与到我们的课程规划中来。
请您在下面的问卷中,分享您 感兴趣的学习主题或您希望深入了解的知识领域 。您的每一条建议都是我们宝贵的资源,将直接影响到我们课程的改进和创新。
我们期待您的反馈,因为您的参与和支持是我们不断前进的动力。感谢您抽出宝贵时间,与我们共同塑造更加精彩的学习旅程!https://www.wjx.cn/vm/YgPfdsJ.aspx# 再次感谢大家宝贵的意见!

关于我们
- Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。more……
- 扫码加入连享会微信群,提问交流更方便
