Stata:Logit模型一文读懂

发布时间:2020-09-20 阅读 21719

Stata 连享会   主页 || 视频 || 推文

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

课程详情 https://gitee.com/arlionn/Course   |   lianxh.cn

课程主页 https://gitee.com/arlionn/Course

作者: 杨柳 (西北大学) || 连玉君 (中山大学)


目录


1. 简介

在实证研究中,我们会经常遇到被解释变量为 “是/否” 或者 “某事件发生/未发生”,此时,被解释变量只有 两种 取值,对应的数字编码可记为 01,称为二值变量0-1 变量。例如,我们想研究以下问题:

  • 什么因素会导致患胃癌(患胃癌 = 1;未患胃癌 = 0)?
  • 具有哪些特征的中小企业会破产违约还贷(违约 = 1;未违约 = 0)?
  • 哪些消费者倾向于购买 iphone(购买 iphone = 1;未购买 iphone = 0)?
  • 北京实施限行政策后哪些家庭会购买第二辆小汽车(购买第二辆车 = 1;未购买第二辆车= 0)?

在这些情况下,采用线性回归模型研究被解释变量的影响因素是 不合适的 (可参见 连享会推文 二元选择模型:probit 还是 logit?(微信版),需要使用 概率模型,其中最常用的是二元 Logit 模型。

2. 二元 Logit 模型

2.1 0/1 分布

对于某一个样本 i,由于被解释变量 yi 的取值为 0 或者 1,我们可以将 yi 视为随机变量 Yi 的实现值:Yi 取 1 的概率为 πiYi 取 0 的概率为 1πi随机变量 Yi 服从参数为 πi 的 (0-1) 分布Yi 的分布律为

显然,若 yi=1,则 Yi 的概率为 πi;若 yi=0,则Yi 的概率为 1πi

易于证明,Yi期望方差分别为:

可见,Yi 的期望和方差都决定于 πi任何影响概率的因素不但会影响观察值的均值,也会影响其方差。 这就表明线性回归模型无法用于分析二值变量,因为线性回归模型 假设方差是固定不变的

2.2 Logit 变换

线性变换

为了使上述模型更富有弹性,我们假设概率 πi 受一系列变量的影响,设定为 xi 。一个非常直觉的想法是把二者之间的关系设定为线性函数:

其中, β 为系数向量。该模型通常称为线性概率模型,采用普通最小二乘法估计即可。其 主要缺陷 在于:由于等式左边的 πi 表示概率,所以必须介于 0 和 1 之间,而右边的线性组合项则可能取任何值,所以在不对模型做严格约束的情况下,我们很难保证模型的预测值介于合理的范围内。

Logit 变换

因此,我们必须对概率 πi 进行变换以消除对其取值范围的约束,继而把变换后的数值设定为解释变量 xi 的线性函数。处理过程包括两个步骤。

第一步,我们依据概率 πi 来定义胜算比 (odds)

即 yi=1 的概率 πi 与 yi=0 的概率 1πi 的比值。显然,胜算比可以取任意非负值,如此便可消除上限约束。

第二步,取对数以计算 logit 或 log-odds

这样我们就可以去除下限约束。因为,随着概率 πi 趋近于 0,logit 将趋近于  ; 而当概率 πi 趋近于1 ,logit 将趋近于 + 。因此,通过以上变换,logit(Ωi) 将概率 πi 的取值范围从 (0, 1) 映射至整个实数轴。显然,如果概率为 0.5,胜算比为1,相应的 log-odds 为 0。log-odds 为负表示概率小于0.5,反之则表示概率大于0.5。

2.3 Logistic 模型

在完成了上述变换后,我们就可以定义 Logistic 回归模型了,此时我们假设概率 πi 的 logit 变换(而非概率 πi 本身)服从线性模型,即

其中,xi 为解释变量构成的向量,β 为系数向量。

由于 logit 变换是一一对应的,所以我们可以通过求取逆对数由 logit 反向得到概率值 (通常称为 antilogit)。由上式可解得:

进一步将被解释变量 yi 表示为:

其中,εi 为随机干扰项,有两个可能的取值:

  • 若 yi=1,则 εi=1π(xi),相应的概率为 π(xi)
  • 若 yi=0,则 εi=π(xi),相应的概率为 1π(xi)

因此,εi 服从均值为 0,方差为 π(xi)[1π(xi)] 的分布。

综合所述,可以看出当被解释变量是二值变量时:

  • 模型的条件均值必须限定于 0 和 1 之间;
  • 干扰项服从均值为 0,方差为 π(xi)[1π(xi)] 的分布,而非正态分布,且其分布受所分析样本的具体情况的影响;
  • 分析线性模型的基本准则同样适用于分析 Logit 模型。

2.4 估计结果的解释与举例

系数的含义

在 Logistic 模型 (4) 式中,系数 βj 的含义可解释如下:

在其他变量不变的情况下,第 j 个变量 xj 变动一个单位,ln(Ωi) 的值将变动 βj 个单位。

问题在于,ln(Ωi) 变动 βj 个单位的经济含义很难解释。不过,我们可以对 (4) 式两边 同时进行指数运算,得到第 i 个观察值对应的胜算比:

假设第 j 个解释变量 xj 增加 1 个单位,则胜算比变为:

结合 (7) 式和 (8) 式,可以得到 胜算比 (odds ratio) (为了表述的方便,此处省略了下标 i):

[^Note1]: 为了表述的方便,(9) 式中省略了下标 i

因此,exp(βj) 的含义 可以解释为:

在其他变量不变的情况下,若xj 增加 1 个单位,则胜算比是原来的 exp(βj) 倍。

  • 若 exp(βj)>1,则表示在其他变量不变的情况下,xj 增加 1 个单位时, 胜算比增大了,此时对应的 βj>0
  • 若 exp(βj)<1,则表示在其他变量不变的情况下,xj 增加 1 个单位时, 胜算比减小了,此时对应的 βj<0

在某些情况下,我们还需要分析 xj 变动 1 个标准差 产生的影响: 在控制其他变量不变的情况下,若 xj 增加 1 个标准差,则 胜算比 (odds) 是原来的  exp(βj×sj) 倍。

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
--------------------------------------------------------------------------

回归结果显示,mpgweight 的系数值均显著为负,表明当控制其他变量不变时,mpgweight 变量的值分别增加 1 个单位时, 胜算比 (odds) 将分别变为原来的 exp(0.1685)=0.8448 与 exp(0.0039)=0.9961 倍,表明 该车辆是进口车的概率将变小

要获得这个变化的倍数值,即 胜算比,只需在 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 命令附加 dydxatmeans 选项来进行计算。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 模型 如下所示:

式中,Pi,t 为驾驶员 i 的第 t次出行使用小汽车方式的概率; Restricti 为虚拟变量,代表调查当日驾驶员的小汽车是否被限行;AdjacentRestricti 为虚拟变量,代表调查日是否与驾驶员的小汽车被限行的日子相邻; zt 为代表一系列反映出行特征的协变量,例如出行目的、出行距离/时耗等;xi 代表一系列反映驾驶员特征的协变量,例如性别、年龄、职业、收入、家庭距离地铁站的距离、家庭是否位于市中心的东城区或西城区、家庭是否位于长安街以北的地区等。

B. 是否在工作日至少使用小汽车方式进行一次出行

基于二元 Logit 模型公式(10) ,将因变量中的 Pi 定义为 驾驶员 i 在工作日至少使用小汽车方式出行一次的概率,选择 两类驾驶员 样本进行回归分析,分别为以下两类,回归结果如下图所示:

  • 样本 1:居住在 受限区域家庭中拥有一辆小汽车 的 5123 名驾驶员
  • 样本 2:居住在 非受限区域家庭中拥有一辆小汽车 的 3874 名驾驶员
图1 限行政策对驾驶员在工作日至少使用小汽车方式出行一次的边际效果.png
图1 限行政策对驾驶员在工作日至少使用小汽车方式出行一次的边际效果.png

图中报告的结果是 平均边际效应值;括号内数字为 聚类标准误,以 驾驶员的家庭所在的交通小区 作为聚类的单元。从回归结果可以看到,限行政策使受限区域的驾驶员在工作日至少使用小汽车方式出行一次的概率显著降低了 8.1%-15.9%

为了进一步说明限行政策的边际效果在不同组别的驾驶员之间的区别,文献中按照性别机动/固定的工作时间高/低收入居住在长安街以北/以南地区是否有孩子对位于 受限区域且家庭中拥有一辆小汽车 的 5123 名驾驶员样本进行了 分组回归,结果如下图所示:

图2 限行政策分组回归的边际效果.png
图2 限行政策分组回归的边际效果.png

图中报告的结果是各组的 平均边际效应值至少使用小汽车方式出行一次的样本均值调查当日被限行时至少使用小汽车方式出行一次的平均概率的下降情况;括号内数字为 聚类标准误,以 驾驶员的家庭所在的交通小区 作为聚类的单元。从回归结果可以看到,女性有机动工作时间高收入的驾驶员在 调查当日被限行时 至少使用小汽车方式出行一次的平均概率比 未限行时 的平均概率的 减小幅度 较大,分别为 27.3%、24% 与 18%

C. 对限行政策的适应 / 调整行为

文献基于二元 Logit 模型公式 (10) ,将因变量中的 Pi,t 定义为 小汽车出行的概率,使用了 四组样本 进行回归分析,结果如下图所示:

图3 限行政策对选择小汽车出行方式的边际效果.png
图3 限行政策对选择小汽车出行方式的边际效果.png

从上图 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. 参考文献

相关课程

连享会-直播课 上线了!
http://lianxh.duanshu.com

免费公开课:


课程一览

支持回看,所有课程可以随时购买观看。

专题 嘉宾 直播/回看视频
最新专题 DSGE, 因果推断, 空间计量等
Stata数据清洗 游万海 直播, 2 小时,已上线
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]

Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。


关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。直播间 有很多视频课程,可以随时观看。
  • 连享会-主页知乎专栏,300+ 推文,实证分析不再抓狂。
  • 公众号推文分类: 计量专题 | 分类推文 | 资源工具。推文分成 内生性 | 空间计量 | 时序面板 | 结果输出 | 交乘调节 五类,主流方法介绍一目了然:DID, RDD, IV, GMM, FE, Probit 等。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会主页  lianxh.cn
连享会主页 lianxh.cn

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会学习群-常见问题解答汇总:
https://gitee.com/arlionn/WD