温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装命令如下:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
⛳ Stata 系列推文:
黄熹 (汕头大学)
邮箱: 1085300826@qq.com
目录
被解释变量为离散变量的模型被称为离散选择模型。若作进一步区分则有:
针对离散选择模型,考虑到被解释变量的连续性性态得不到满足,故常常不用 OLS 进行回归 (拿到一笔数据,迫不及待地想初步一览相关性的情况除外)。针对离散选择模型,实证工作中可根据被解释变量的分布函数,依情况采用 Logit, Probit, mlogit, mprobit, ologit, oprobit, negatibe binomial, zero-inflated negative binomial, poisson, zero-inflated poisson 等模型进行回归。
由于 Probit 模型的解释不如 Logit 模型直观,因此相对 Logit 模型而言,其使用范围和频数还是相当有限的。Logit 模型在实证研究中已被广泛使用,且其理论与实际的契合度也受到了学界的高度认可。
虽然本文的出发点是介绍文献中出现频数亦日渐高企的 mlogit 模型,但是鉴于不少读者对 Logit 模型的解读存在偏差,且 Logit 模型是 mlogit 模型的源起,因此在本文中,我力求以精简的语言、从 Stata 应用与模型解读的角度出发,将先行介绍 mlogit 模型的鼻祖—— Logit 模型,而后再对 mlogit 模型进行阐释。
本文将 Logit 和 mlogit 统称为 小罗。
将企业仅有的两种战略选择作为因变量,y=1 (并购) 和 y=0 (不并购)。现金流充裕程度、财务杠杆、第一大股东持股比例、行业成长性等因素都会影响企业的并购决策,将这一系列解释变量记为向量
由于
零条件均值满足时,有
该函数被称为连接函数 (link function) ,其选择具有很大的灵活性,直接目的便是:在限定因变量在 [0,1] 区间的前提下,更合理地将因变量与自变量之间的非线性关系刻画出来。此时,如果选取的分布函数
对于这种非线性模型,可先求出该分布的概率密度和似然函数,进而利用最大似然估计法 (MLE) 和数值计算可得到
从 2.1 我们知道, Logit 模型的边际效应就是逻辑分布函数对
可见,OLS 下的回归系数在这里已然变味。该模型的边际效应是一个随解释变量而变的变量,
为了便于说明,记
通过对数转换可得
即
本例采用 Stata16 自带的数据集进行实操。这是一份 1988 年美国妇女工资的资料,包含 2246 笔观察值,共 17 个变量。本例将虚拟变量是否已婚(married)作为因变量,将连续变量年龄(age)、工资(wage)、工作时数(hours)、受教育年限(grade) 以及类别变量种族(race)、职业(occupation)这 6 个变量作为自变量。
Logit 回归假设数据服从伯努利分布,并运用梯度下降法来求解参数,因此 Stata 默认汇报迭代 (Iteration) 过程。如果附加选项 nolog ,则表示不要再汇报迭代过程了,结果如下表所示。
sysuse nlsw88, clear //调入1988年美国妇女工资的资料
logit married age wage hours grade race occupation, nolog
Logistic regression Number of obs = 2,231
LR chi2(6) = 136.05
Prob > chi2 = 0.0000
Log likelihood = -1384.9936 Pseudo R2 = 0.0468
----------------------------------------------------------------------
married | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+--------------------------------------------------------
age | -0.023 0.015 -1.52 0.129 -0.052 0.007
wage | -0.014 0.008 -1.70 0.090 -0.031 0.002
hours | -0.030 0.005 -6.20 0.000 -0.039 -0.020
grade | 0.007 0.019 0.38 0.700 -0.031 0.045
race | -0.859 0.095 -9.01 0.000 -1.046 -0.672
occupation | 0.019 0.014 1.40 0.161 -0.008 0.047
_cons | 3.649 0.693 5.27 0.000 2.291 5.007
----------------------------------------------------------------------
以上结果虽然汇报的是回归系数而非几率比,但是,以对数几率比的角度来进行模型解读将会更加清晰和严谨。应时刻记住的是:这些回归系数并不是边际效应。
分析如下:工资每增加 1 美元,对数几率比
其实,对解释变量的系数可以有一个更为直观的解释:即,如果系数为负,则表示被解释变量取1的可能性越小。如:wage 越大,married 取 1 的可能性越小,即工资越高,越不可能结婚。
同时,Logit 模型也可能出现异方差问题。在执行上述命令之后附加选项 r,则 Stata 会自动计算稳健标准误。由以下结果可知,稳健标准误与普通标准误十分接近,因此可大致判断不存在模型设定偏误的问题。
. logit married age wage hours grade race occupation, r nolog
. est store v1
. logit married age wage hours grade race occupation, nolog
. est store v2
. esttab v1 v2, compress
------------------------------------
(1) (2)
married married
------------------------------------
married
age -0.0227 -0.0227
(-1.51) (-1.52)
wage -0.0142 -0.0142
(-1.67) (-1.70)
hours -0.0297*** -0.0297***
(-6.34) (-6.20)
grade 0.00746 0.00746
(0.38) (0.38)
race -0.859*** -0.859***
(-8.46) (-9.01)
occupation 0.0194 0.0194
(1.45) (1.40)
_cons 3.649*** 3.649***
(5.22) (5.27)
------------------------------------
N 2231 2231
------------------------------------
t statistics in parentheses
* p<0.05, ** p<0.01, *** p<0.001
做完基本的 Logit 回归之后,我们可以输入 margins 命令并附加选项 dydx() 来得到平均边际效应。与 OLS 回归结果相比可知,Logit 回归的平均边际效应与 OLS 回归得到的系数估计值非常接近 (见下表)。
. logit married age wage hours grade race occupation, nolog
. margins, dydx(*)
Average marginal effects Number of obs = 2,231
Model VCE : OIM
Expression : Pr(married), predict()
dy/dx w.r.t. : age wage hours grade race occupation
-----------------------------------------------------------------------
| Delta-method
| dy/dx Std. Err. z P>|z| [95% Conf. Interval]
-----------+-----------------------------------------------------------
age | -0.005 0.003 -1.52 0.129 -0.011 0.001
wage | -0.003 0.002 -1.70 0.089 -0.007 0.000
hours | -0.006 0.001 -6.39 0.000 -0.008 -0.004
grade | 0.002 0.004 0.38 0.700 -0.007 0.010
race | -0.185 0.019 -9.69 0.000 -0.223 -0.148
occupation | 0.004 0.003 1.40 0.161 -0.002 0.010
-----------------------------------------------------------------------
. reg married age wage hours grade race occupation
Source | SS df MS Number of obs = 2,231
-----------+-------------------------------- F(6, 2224) = 23.59
Model | 30.6144372 6 5.10240619 Prob > F = 0.0000
Residual | 481.093317 2,224 .216318938 R-squared = 0.0598
-----------+-------------------------------- Adj R-squared = 0.0573
Total | 511.707754 2,230 .229465361 Root MSE = .4651
----------------------------------------------------------------------
married | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+--------------------------------------------------------
age | -0.005 0.003 -1.51 0.131 -0.011 0.001
wage | -0.003 0.002 -1.69 0.091 -0.007 0.001
hours | -0.006 0.001 -6.24 0.000 -0.008 -0.004
grade | 0.001 0.004 0.32 0.746 -0.007 0.010
race | -0.197 0.021 -9.36 0.000 -0.239 -0.156
occupation | 0.004 0.003 1.36 0.174 -0.002 0.010
_cons | 1.297 0.148 8.79 0.000 1.007 1.586
----------------------------------------------------------------------
以下命令附加了选项 or,表示汇报几率比 (的变化倍数) 而非系数。
. logit married age wage hours grade race occupation, or
Iteration 0: log likelihood = -1453.0162
Iteration 1: log likelihood = -1385.5972
Iteration 2: log likelihood = -1384.994
Iteration 3: log likelihood = -1384.9936
Iteration 4: log likelihood = -1384.9936
Logistic regression Number of obs = 2,231
LR chi2(6) = 136.05
Prob > chi2 = 0.0000
Log likelihood = -1384.9936 Pseudo R2 = 0.0468
------------------------------------------------------------------------
married | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval]
-----------+------------------------------------------------------------
age | 0.978 0.015 -1.52 0.129 0.949 1.007
wage | 0.986 0.008 -1.70 0.090 0.970 1.002
hours | 0.971 0.005 -6.20 0.000 0.962 0.980
grade | 1.007 0.020 0.38 0.700 0.970 1.046
race | 0.423 0.040 -9.01 0.000 0.351 0.510
occupation | 1.020 0.014 1.40 0.161 0.992 1.048
_cons | 38.447 26.642 5.27 0.000 9.886 149.522
------------------------------------------------------------------------
Note: _cons estimates baseline odds.
简单来看,几率比越大,表示结婚概率越大 (不考虑显著性水平的情况下)。具体来说,在控制其他变量不变的情况下:年龄每增加一岁,妇女结婚的几率比放大 0.978 倍;工资每上涨一美元,妇女结婚的几率比放大 0.986 倍;依此类推。
个人在多于两个选项中进行选择,以使效用最大化。
多项选择的应用包括交通工具的选择、职业的选择、参议员的选择以及竞标企业的选择,不一而足。值得注意的是,上述这些选择集合都是无序的,因此 mlogit 模型其实是无序选项集的模型 (与此相反,如果是针对基数效用、QS 世界大学排名、债券信用评级等有序量表,则应考虑有序选择的 ologit 模型)。
多元 Logit 模型可视为对被解释变量中各类选择行为两两配对后构成的多个二元 Logit 模型实施联合估计 (两两配对,形成多个二元 Logit 模型)。
mlogit 模型可以随机效用模型作为引子进行切入。假设一个消费者
需要说明的是,二项式 Logit 模型为
可见,当
易知,当我们将第一组选定为基准组时,
Logit 模型估计的关键在于选定基准组,所有系数均是相对于基准组来进行估计的。与 Logit 模型类似,本文从胜算比的角度出发来对模型参数进行阐释。
假设基准组为第
当基准组为第一组时,第
依此类推,当基准组为第
本例采用 Long and Feese (2006) 提供的数据集进行实操。此数据集来自 1982 年的一项调查问卷,问卷将受访者分为服务人员 (menial)、蓝领 (blue collar)、工匠 (craft)、白领 (white collar) 和专业人士 (professional) 共 5 类;解释变量包括虚拟变量是否白人 white、连续变量受教育年限 ed 以及工龄 exper ,其均只依赖于个体,不随组别而变。
. use "nomocc2.dta", clear
*label define oc 1 "佣人" 2 "蓝领" 3 "手工艺者" 4 "白领" 5 "专业人士"
*label value occ oc //添加变量标签
. des /*变量的基本信息*/
Contains data from nomocc2.dta
obs: 337 1982 General Social Survey
vars: 4 15 Jan 2001 15:24
(_dta has notes)
-----------------------------------------------------------------------
storage display value
variable name type format label variable label
-----------------------------------------------------------------------
occ byte %10.0g occlbl Occupation
white byte %10.0g Race: 1=white 0=nonwhite
ed byte %10.0g Years of education
exper byte %10.0g Years of work experience
-----------------------------------------------------------------------
Sorted by: occ
. sum /*变量的基本统计量*/
Variable | Obs Mean Std. Dev. Min Max
-------------+---------------------------------------------------------
occ | 337 3.397626 1.367913 1 5
white | 337 .9169139 .2764227 0 1
ed | 337 13.09496 2.946427 3 20
exper | 337 20.50148 13.95936 2 66
. mlogit occ ed exper white, nolog //进行多元 Logit 回归
Multinomial logistic regression Number of obs = 337
LR chi2(12) = 166.09
Prob > chi2 = 0.0000
Log likelihood = -426.80048 Pseudo R2 = 0.1629
---------------------------------------------------------------------------
occ | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+-------------------------------------------------------------
Menial |
ed | -0.779 0.115 -6.79 0.000 -1.004 -0.554
exper | -0.036 0.018 -1.98 0.048 -0.071 -0.000
white | -1.774 0.755 -2.35 0.019 -3.254 -0.294
_cons | 11.518 1.849 6.23 0.000 7.894 15.143
-------------+-------------------------------------------------------------
BlueCol |
ed | -0.878 0.101 -8.74 0.000 -1.075 -0.681
exper | -0.031 0.014 -2.15 0.032 -0.059 -0.003
white | -0.538 0.800 -0.67 0.501 -2.105 1.029
_cons | 12.260 1.668 7.35 0.000 8.990 15.529
-------------+-------------------------------------------------------------
Craft |
ed | -0.685 0.089 -7.67 0.000 -0.860 -0.510
exper | -0.008 0.013 -0.63 0.531 -0.033 0.017
white | -1.302 0.647 -2.01 0.044 -2.571 -0.033
_cons | 10.427 1.518 6.87 0.000 7.452 13.402
-------------+-------------------------------------------------------------
WhiteCol |
ed | -0.426 0.092 -4.62 0.000 -0.606 -0.245
exper | -0.001 0.014 -0.07 0.941 -0.029 0.027
white | -0.203 0.869 -0.23 0.815 -1.907 1.501
_cons | 5.280 1.684 3.14 0.002 1.979 8.580
-------------+-------------------------------------------------------------
Prof | (base outcome)
---------------------------------------------------------------------------
由上表可知:严格来说,受教育年限每增加一年,服务业、蓝领、工匠、白领这四个组别相对于专业人士组的胜算比将分别放大
直觉上来说,给定其他变量,受教育年限越长,越不可能选择除专业人士以外的 4 种职业,且均高度显著;在 5% 的显著性水平上,工龄越长,越不可能选择服务业或蓝领;在 5% 的显著性水平上,白人更不可能选择服务业或工匠;依此类推。
. mlogit occ ed exper white, base(2) nolog
//设定第二组为基准组;如果不指定,则默认以观察值最多的组别作为参照组
Multinomial logistic regression Number of obs = 337
LR chi2(12) = 166.09
Prob > chi2 = 0.0000
Log likelihood = -426.80048 Pseudo R2 = 0.1629
-------------------------------------------------------------------------
occ | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+-----------------------------------------------------------
Menial |
ed | 0.099 0.102 0.97 0.331 -0.101 0.300
exper | -0.005 0.017 -0.27 0.786 -0.039 0.029
white | -1.237 0.724 -1.71 0.088 -2.656 0.183
_cons | -0.741 1.520 -0.49 0.626 -3.719 2.237
-------------+-----------------------------------------------------------
BlueCol | (base outcome)
-------------+-----------------------------------------------------------
Craft |
ed | 0.193 0.077 2.49 0.013 0.041 0.345
exper | 0.023 0.013 1.83 0.067 -0.002 0.048
white | -0.764 0.632 -1.21 0.227 -2.004 0.475
_cons | -1.833 1.186 -1.55 0.122 -4.157 0.492
-------------+-----------------------------------------------------------
WhiteCol |
ed | 0.453 0.102 4.43 0.000 0.252 0.653
exper | 0.030 0.015 1.95 0.051 -0.000 0.060
white | 0.335 0.934 0.36 0.720 -1.496 2.165
_cons | -6.980 1.714 -4.07 0.000 -10.340 -3.620
-------------+-----------------------------------------------------------
Prof |
ed | 0.878 0.101 8.74 0.000 0.681 1.075
exper | 0.031 0.014 2.15 0.032 0.003 0.059
white | 0.538 0.800 0.67 0.501 -1.029 2.105
_cons | -12.260 1.668 -7.35 0.000 -15.529 -8.990
-------------------------------------------------------------------------
由上表可知,系数估计值会随着参照组的不同选择而变化。
. mlogit occ ed exper white // qui 表示让 Stata 闭嘴,不要把结果呈现在屏幕上
. listcoef white //锁定为白人,表中所列指标均是针对白人而言
mlogit (N=337): Factor Change in the Odds of occ
Variable: white (sd=.27642268)
Odds comparing |
Alternative 1 |
to Alternative 2 | b z P>|z| e^b e^bStdX
------------------+---------------------------------------------
Menial -BlueCol | -1.23650 -1.707 0.088 0.2904 0.7105
Menial -Craft | -0.47234 -0.782 0.434 0.6235 0.8776
Menial -WhiteCol | -1.57139 -1.741 0.082 0.2078 0.6477
Menial -Prof | -1.77431 -2.350 0.019 0.1696 0.6123
BlueCol -Menial | 1.23650 1.707 0.088 3.4436 1.4075
BlueCol -Craft | 0.76416 1.208 0.227 2.1472 1.2352
BlueCol -WhiteCol | -0.33488 -0.359 0.720 0.7154 0.9116
BlueCol -Prof | -0.53780 -0.673 0.501 0.5840 0.8619
Craft -Menial | 0.47234 0.782 0.434 1.6037 1.1395
Craft -BlueCol | -0.76416 -1.208 0.227 0.4657 0.8096
Craft -WhiteCol | -1.09904 -1.343 0.179 0.3332 0.7380
Craft -Prof | -1.30196 -2.011 0.044 0.2720 0.6978
WhiteCol-Menial | 1.57139 1.741 0.082 4.8133 1.5440
WhiteCol-BlueCol | 0.33488 0.359 0.720 1.3978 1.0970
WhiteCol-Craft | 1.09904 1.343 0.179 3.0013 1.3550
WhiteCol-Prof | -0.20292 -0.233 0.815 0.8163 0.9455
Prof -Menial | 1.77431 2.350 0.019 5.8962 1.6331
Prof -BlueCol | 0.53780 0.673 0.501 1.7122 1.1603
Prof -Craft | 1.30196 2.011 0.044 3.6765 1.4332
Prof -WhiteCol | 0.20292 0.233 0.815 1.2250 1.0577
----------------------------------------------------------------
. listcoef, pvalue(0.05) // 该命令用于仅列出显著的配对 (结果略)
其中,factor change 表示胜算比变化,即
. mlogit occ ed exper white
. fitstat
Measures of Fit for mlogit of occ
Log-Lik Intercept Only: -509.844 Log-Lik Full Model: -426.800
D(321): 853.601 LR(12): 166.087
Prob > LR: 0.000
McFadden's R2: 0.163 McFadden's Adj R2: 0.131
ML (Cox-Snell) R2: 0.389 Cragg-Uhler(Nagelkerke) R2: 0.409
Count R2: 0.501 Adj Count R2: 0.253
AIC: 2.628 AIC*n: 885.601
BIC: -1014.646 BIC': -96.246
BIC used by Stata: 946.722 AIC used by Stata: 885.601
fitstat 的结果主要是采用信息准则来评判拟合优度 (CI 越小则表明模型拟合得越好,由于 BIC 的惩罚力度较大,八成以上的文献都是选择 BIC;事实上,BIC 通常也确实优于 AIC)。由上表汇报的 CI 指标可初步判断,模型总体上来说拟合得很好。
IIA 假定 (无关选择独立性假设) 是 mlogit 模型的前提。因此从理论的角度来说,使用 mlogit 模型之前必须检验该假定是否得到满足。除进行常规的 Hausman 检验之外,还可以附加 Small - Hsiao 检验。
*-Hausman test of IIA
. mlogit occ ed exper white,base(5)
. est store mFull
. mlogit occ ed exper white if occ!=1
. est store mRist
. hausman mRist mFull, alleq constant
. mlogit occ ed exper white
. mlogtest, hausman
*-Small-Hsiao test of IIA
. mlogit occ ed exper white
. mlogtest, smhsiao base
. mlogit occ ed exper white
set seed 13579
. mlogtest, smhsiao
. mlogit occ ed exper white
set seed 1357911
. mlogtest, smhsiao
mlogit 模型和 mprobit 模型实际上来说并无多大差别,只是 mprobit 需要计算多重积分,计算耗时更长,而且无法从胜算比的角度来直观地解释模型,因此在实证分析中学者多采用 mlogit 模型。且应注意:mlogit 和 mprobit 的系数估计值并不具有可比性,真正可比的是两个模型的预测概率值。
对于因变量是离散变量的情况,之所以不使用 OLS 而使用小罗 ( Logit 或 mlogit ) ,是因为线性概率模型不考虑曲率,线性最小二乘法产生的斜率将取决于大部分数据在曲线上的位置,而小罗能更好地描述数据的分布情况,且将预测值的范围锁定在 [0,1] 之间;
进一步,小罗利用了对数转换,以几率比 (事件发生概率和不发生概率的比值) 代替概率值,站在“几率比”这一新的视角来对模型结果进行解读,促进了乘法比较,简单清晰地描述出了模型中原本复杂的非线性关系 (如 S 形关系) ,增加了可解释性。综上,小罗因其特有的优势和基本无害的计量方法,在学界和实务界 (如券商、医疗等) 备受推崇。
但需要注意的是,mlogit 模型采用 MLE 进行估计,且具有联立方程的特征,因此对大样本的要求比 Logit 模型更高 (当然,小罗回归均是采用 MLE 来进行估计的)。
Note:产生如下推文列表的 Stata 命令为:
lianxh logit probit 线性概率 二元选择
安装最新版lianxh
命令:
ssc install lianxh, replace
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh