Stata: Logit 模型简介
作者:杨柳 (西北大学) || 连玉君 (中山大学)
Stata 连享会: 知乎 | 简书 | 码云Stata连享会 精彩推文1 || 精彩推文2
1. 引言
在实证研究中,我们会经常遇到被解释变量为 “是/否” 或者 “某事件发生/未发生”,此时,被解释变量只有 两种 取值,对应的数字编码可记为 0 或 1,称为二值变量
或 0-1
变量。例如,我们想研究以下问题:
什么因素会导致患胃癌(患胃癌 = 1;未患胃癌 = 0)?
具有哪些特征的中小企业会破产违约还贷(违约 = 1;未违约 = 0)?
哪些消费者倾向于购买 iphone(购买 iphone = 1;未购买 iphone = 0)?
北京实施限行政策后哪些家庭会购买第二辆小汽车(购买第二辆车 = 1;未购买第二辆车= 0)?
在这些情况下,采用线性回归模型研究被解释变量的影响因素是 不合适的 (可参见 Stata 连享会 推文 二元选择模型:probit 还是 logit?),需要使用 概率模型,其中最常用的是 二元 Logit 模型
。接下来,小编就带大家一起来学习 二元 Logit 模型
。
2. 二元 Logit 模型
2.1 (0-1) 分布
对于某一个样本i ,由于被解释变量
显然,若
易于证明,
2.2 Logit 变换
线性变换
为了使上述模型更富有弹性,我们假设概率 线性概率模型
,采用普通最小二乘法估计即可。其 主要缺陷 在于:由于等式左边的
Logit 变换
因此,我们必须对概率
第一步,我们依据概率
来定义 胜算比 (odds)
:即
=1 的概率 与 =0 的概率 1- 的比值。显然,胜算比可以取任意非负值,如此便可消除上限约束。
第二步,取对数以计算 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 反向得到概率值 (通常称为 antilogit )。由上式可解得:
进一步将被解释变量
其中,
综合上面的介绍,可以看出当被解释变量是
二值变量
时:(1) 模型的条件均值必须限定于 0 和 1 之间;(2) 干扰项服从均值为 0,方差为的分布,而非正态分布,且其分布受所分析样本的具体情况的影响;(3) 分析线性模型的基本准则同样适用于分析 Logit 模型。
2.4 估计结果的解释与举例
系数的含义
在 Logistic 模型 (4) 式中,系数
假设第 j 个解释变量
结合 (7) 式和 (8) 式,可以得到奇比 (odds ratio)
[^Note1]:
[^Note1]: 为了表述的方便,(9) 式中省略了下标 i。
因此,胜算比 (odds)
是原来的
在某些情况下,我们还需要分析 胜算比 (odds)
是原来的
举例
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.
Stata 还提供了另一条命令:
logistic
,可以得到完全相同的结果,命令如下(回归结果与上面相同,故省略):
. logistic foreign mpg weight, or
回归结果显示,mpg 与 weight 系数对应的 奇比均小于 1,表明当车辆的 mpg 与 weight 增加时,胜算比减小了,说明 该车辆是进口车的概率将减小。
2.5 边际效应分析
从上面的例子中可以看到,虽然我们能从解释变量的系数值判断该车辆是进口车的概率值的变化情况,但我们仍然不能直观地看出概率值变化的具体数值。在实证分析中,我们往往需要计算出来解释变量的变化将对这辆车是进口车的概率的变化带来的边际影响值,此时,我们需要使用 margins
命令来计算边际效应。
接下来,小编向大家介绍实证分析中常用的两种边际效应:(1) 平均边际效应。 即先分别计算在每个样本观测值上的边际效应,然后进行简单算术平均得到平均边际效应。(2) 样本均值处的边际效应。 即先分别计算各自变量的样本均值,然后计算在这一点处的边际效应。
(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) 样本均值处的边际效应
我们可以使用 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. 二元 Logit 模型在实证分析中的应用举例
在 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
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 二元 Logit 模型建立与结果分析
(1) 基本模型
文献中建立的 二元 Logit 模型 如下所示:
式中,
(2) 是否在工作日至少使用小汽车方式进行一次出行
基于二元 Logit 模型公式(10) ,将因变量中的
样本 1:居住在 受限区域 且 家庭中拥有一辆小汽车 的 5123 名驾驶员
样本 2:居住在 非受限区域 且 家庭中拥有一辆小汽车 的 3874 名驾驶员
图中报告的结果是 平均边际效应值;括号内数字为 聚类标准误,以 驾驶员的家庭所在的交通小区 作为聚类的单元。从回归结果可以看到,限行政策使受限区域的驾驶员在工作日至少使用小汽车方式出行一次的概率
显著降低了 8.1%-15.9%
。
为了进一步说明限行政策的边际效果在不同组别的驾驶员之间的区别,文献中按照性别
、机动/固定的工作时间
、高/低收入
、居住在长安街以北/以南地区
、是否有孩子
对位于 受限区域且家庭中拥有一辆小汽车 的 5123 名驾驶员样本进行了 分组回归,结果如下图所示:
图中报告的结果是各组的 平均边际效应值、至少使用小汽车方式出行一次的样本均值 与 调查当日被限行时至少使用小汽车方式出行一次的平均概率的下降情况;括号内数字为 聚类标准误,以 驾驶员的家庭所在的交通小区 作为聚类的单元。从回归结果可以看到,女性
、有机动工作时间
与高收入
的驾驶员在 调查当日被限行时 至少使用小汽车方式出行一次的平均概率比 未限行时 的平均概率的 减小幅度 较大,分别为 27.3%、24% 与 18%
。
(3) 对限行政策的适应 / 调整行为
文献基于二元 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),因此得出该结论时我们需要谨慎些。
(4) 稳健性检验
文献中对 出行方式选择 的回归结果还进行了一系列的 稳健性检验,包括以下方法:
使用 OLS 回归方程 代替二元 Logit 模型;
使用 不同的类聚标准误(以驾驶员为聚类单元、以出行起点 (Origin) 所在的交通小区为聚类单元、以出行终点 (Destination) 所在的交通小区为聚类单元、以出行起点与终点的 OD 点对所在交通小区为聚类单元),得到了回归结果与上述结果相同;
实施 安慰剂检验,得到的回归结果不显著;
对样本 增加了权重,得到的回归结果变化不大。
参考文献
钟经樊,连玉君,计量分析与 STATA 应用第十五章 Logistic 模型,版本 2.0,2010.6
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
关于我们
【Stata 连享会(公众号:StataChina)】由中山大学连玉君老师团队创办,旨在定期与大家分享 Stata 应用的各种经验和技巧。
公众号推文同步发布于 CSDN-Stata连享会 、简书-Stata连享会 和 知乎-连玉君Stata专栏。可以在上述网站中搜索关键词
Stata
或Stata连享会
后关注我们。点击推文底部【阅读原文】可以查看推文中的链接并下载相关资料。
Stata连享会 精彩推文1 || 精彩推文2
联系我们
欢迎赐稿: 欢迎将您的文章或笔记投稿至
Stata连享会(公众号: StataChina)
,我们会保留您的署名;录用稿件达五篇
以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。意见和资料: 欢迎您的宝贵意见,您也可以来信索取推文中提及的程序和数据。
招募英才: 欢迎加入我们的团队,一起学习 Stata。合作编辑或撰写稿件五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
联系邮件: StataChina@163.com
往期精彩推文