1. 简介
在实证研究中,我们会经常遇到被解释变量为 “是/否” 或者 “某事件发生/未发生”,此时,被解释变量只有 两种 取值,对应的数字编码可记为 0 或 1,称为二值变量或 0-1 变量。例如,我们想研究以下问题:
- 什么因素会导致患胃癌(患胃癌 = 1;未患胃癌 = 0)?
- 具有哪些特征的中小企业会破产违约还贷(违约 = 1;未违约 = 0)?
- 哪些消费者倾向于购买 iphone(购买 iphone = 1;未购买 iphone = 0)?
- 北京实施限行政策后哪些家庭会购买第二辆小汽车(购买第二辆车 = 1;未购买第二辆车= 0)?
2. 二元 Logit 模型
对于某一个样本 ,由于被解释变量 的取值为 0 或者 1 ,我们可以将 视为随机变量 的实现值: 取 1 的概率为 取 0 的概率为 。随机变量 服从参数为 的 (0-1) 分布, 的分布律为
显然, 若 ,则 的概率为 ; 若 ,则 的概率为 。 易于证明, 的期望和方差分别为:
可见, 的期望和方差都决定于 。任何影响概率的因素不但会影响观察值的均值,也会影响其方差。这就表明线性回 归模型无法用于分析二值变量,因为线性回归模型假设方差是固定不变的。
为了使上述模型更富有弹性,我们假设概率 受一系列变量的影响,设定为 。一个非常直觉的想法是把二者之间的关 系设定为线性函数:
其中, 个为系数向量。该模型通常称为线性概率模型,采用普通最小二乘法估计即可。其主要缺陷在于: 由于等式左边 的 表示概率,所以必须介于 0 和 1 之间,而右边的线性组合项则可能取任何值,所以在不对模型做严格约束的情况 下,我们很难保证模型的预测值介于合理的范围内。
因此,我们必须对概率 进行变换以消除对其取值范围的约束,继而把变换后的数值设定为解释变量 的线性函数。处 理过程包括两个步骤。
第一步,我们依据概率 来定义 胜算比 (odds) :
即 的概率 与 的概率 的比值。显然,胜算比可以取任意非负值,如此便可消除上限约束。
第二步,取对数以计算 logit 或 log-odds:
这样我们就可以去除下限约束。因为,随着概率 趋近于 0 , logit 将趋近于 ; 而当概率 趋近于 logit 将趋 近于 。因此,通过以上变换, 将概率 的取值范围从 映射至整个实数轴。显然,如果概率为 ,胜算比为 1 ,相应的 log-odds 为 0 。 log-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%。
详细内容参见连享会推文
相关推文
Note:产生如下推文列表的 Stata 命令为:
. lianxh logit
. songbl logit
安装最新版 lianxh/ songbl 命令:
. ssc install lianxh, replace
. ssc install songbl, replace
- 专题:Stata 命令
- Stata 新命令:面板-LogitFE-ProbitFE
- 专题:交乘项-调节
- Logit-Probit 中的交乘项及边际效应图示
- 专题:Probit-Logit
- Stata:面板混合选择模型-cmxtmixlogit
- Logit-Probit:非线性模型中交互项的边际效应解读
- 秒懂小罗肥归:logit 与 mlogit 详解
- reg2logit:用 OLS 估计 Logit 模型参数
- feologit:固定效应有序 Logit 模型
- Stata:多元 Logit 模型详解 (mlogit)
- Stata:Logit 模型一文读懂
- 详解 Logit/Probit 模型中的 completely determined 问题
- Stata:Logit 模型评介
- 二元选择模型:Probit 还是 Logit?
- Stata:何时使用线性概率模型而非 Logit?
- Stata:嵌套 Logit 模型 (Nested Logit)
|