温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
编译:张雪娇 (中山大学)
邮箱:hzhangxuejiao@163.com
目录
前期相关推文
原文:Logit 模型评介: Logit 模型的好处
Source 1: In Defense of Logit-Part 1
Source 2: In Defense of Logit-Part 2
在最近的一篇 博文 中,Paul von Hippel 对他之前关于线性概率模型的论点进行了扩展,他认为:在很多情况下,线性概率模型(通过普通最小二乘估计)比 Logit 回归模型更可取。并且在他发表的两篇文章中,von Hippel 提出了以下三个要点:
虽然我同意他的这些观点但是在绝大多数实际应用中,我依旧更喜欢使用Logit回归。在我2015年4月的文章中,我讨论了逻辑回归的一些特性,正因为这些特性使得它比其他非线性替代方法(如 probit 或互补对数)更具吸引力。但我没有将逻辑模型与线性概率模型进行比较。下面是我对 von Hippel 论点的看法,以及我为什么更喜欢 Logit 回归的原因。
线性回归采用的最小二乘估计确实比逻辑回归的极大似然估计要快。然而考虑到当今计算机的能力,即使有一百万或更多的观测值,这种运算差异对于一个二元 Logit 回归来都是是不显著的。正如 von Hippel 所指出的,只有当你用随机效应、固定效应,空间或纵向相关性来估算一个模型时,差异才真正变得重要。
如果你正在进行有放回的重复抽样,多元运算或者你正在对一群混合变量使用某种强度变数筛选方法有时当结合 K-折交叉验证 时,速度才会很重要。在这类应用中,使用线性回归进行前期工作可能非常有用。但有一个风险是线性回归可能会发现 Logit 模型中并不需要的相互作用(或其他非线性影响作用)。(具体参见下面不变性的部分)
即使你真的不喜欢优势比,Logit 模型在预测概率方面也有一个众所周知的优势。正如 von Hippel 提醒我们的,当你用 1-0 结果估计线性回归时,预测值可能大于1或小于0,这显然意味着它们不能被解释为概率。即使绝大多数例子中模型给出的预测概率都在他建议的0.20到0.80的范围内,但这种超出 1-0 边界的情况经常也发生。
然而在许多应用中,这不是一个问题,因为你真正感兴趣的并不是这些概率。而是获得有效的概率预测。例如,你想给骨质疏松的症患者一个未来五年髋部骨折概率的估计,你不会想告诉他们是 1.05 。即使线性概率模型只产生有界预测,概率也可以用 logistic 进行更精确地估计。
von Hippel 说,对大多数研究人员来说,概率差异比优势比更直观,这无疑是正确的。但从某种程度上来看这仅仅是因为我们最习惯拿概率作为衡量某件事发生可能性的一个指标。 在 von Hippel 的例子中,“困难”来自于将几率到概率的转换。但概率本身并没有什么神圣的。几率是对事件发生概率的合理度量,我相信只要稍加训练,大多数人都能习惯几率测度。
以下是我对某一年患感冒的可能性的思考。如果几率是2,这意味着对于所有没感冒的人里就会有2个人感冒。如果几率增加到4,意味着所有不感冒的人中有4个人会感冒,这是几率的两倍,也就是说,优势比为2。另一方面,如果几率是1/3,那么每三个不感冒的人中就有一个人感冒。如果我们把几率翻两番,那么每3个不感冒的人中就有4个人感冒。更一般地说,与没有发生事件的个人相比,如果事件发生的几率增加了某个确定的百分比,那么个人对事件发生的数量预期也将增加该百分比。
几率的一个主要吸引力是它促进了乘法比较,这是因为优势比是没有上限的。如果我在下一次总统选举中投票的概率是.6,那么你的投票概率是我的两倍是不可能的。但是你的投票几率很容易是我的2、4或10倍。即使你非常喜欢概率,一旦你估计了一个 Logit 回归模型,你就可以很容易地得到用概率表示的效果估计。Stata 通过它的“页边距”命令可以特别容易的实现这一点,我将在下一节中演示这一点。
归根结底,我最喜欢 Logit 模型的原因是,对于二分法结果,有充分的理由期望优势比在时间、空间和总体上比线性回归的系数更稳定。这就是为什么对于连续的概率进行预测时,我们知道线性概率模型不可能是产生二分结果机制的“真实”描述。这是因为线性模型的外延推断会产生大于1或小于0的概率。真正的关系一定是S形曲线,虽然不一定是 Logit 关系但会是类似 Logit 的关系。
由于线性概率模型不考虑曲率,线性最小二乘法产生的斜率将取决于大部分数据在曲线上的位置。在 1 或 0 附近有一个较小的斜率,在 0.50 附近有一个较大的斜率。但是即使基本的机制保持不变,事件发生的总概率在不同情况下也会有很大的变化。
这一问题也适用于进行分类预测。考虑一个二分法的 y 和一个二分法的预测因子 x ,它们之间的关系完全可以用一个 2 x 2 的频率计数表来描述。众所周知,对该表的任何行或任何列乘以一个大于零的常数,优势比不变。因此,任何一个变量的边际分布都可以在不改变优势比的情况下发生实质性变化。这不是“两个比例之间的差异”的情况,这相当于 Y 对 x 回归 的 OLS 系数。
对于产生了二分结果的线性回归来说,它很可能为线性回归中的交互作用不是“真实的”,或者逻辑回归中不需要这种交互作用提供证据。下面是一个使用 国家健康和营养检查研究 (NHANES) 数据的例子。数据集可以在 Stata 网站上搜索到,命令为 findit nhanes
。最终共收集到包含有主要变量在内的 10335 个完整数据案例。
首先估计了以 diabetes(编码 1 或 0)为因变量的一个 Logit 回归模型。预测因素包括 age (以年计)和两个虚拟(指标)变量,black 和 female。模型还包括了black * age的交互项。
用于估计模型的 Stata 代码如下:
webuse nhanes2f, clear
logistic diabetes black female age black#c.age
结果如下:
------------------------------------------------------------------------------
diabetes | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
black | 3.318733 1.825189 2.18 0.029 1.129381 9.752231
female | 1.165212 .1098623 1.62 0.105 .9686107 1.401718
age | 1.063009 .0044723 14.52 0.000 1.054279 1.071811
black#c.age | .9918406 .0090871 -0.89 0.371 .9741892 1.009812
_cons | .0014978 .0003971 -24.53 0.000 .0008909 .0025183
------------------------------------------------------------------------------
如果考虑到相互作用的高p值(.371),显然没有证据显示变量 black 会随着 age 变化。
用于估计模型的 Stata 代码如下:
reg diabetes black female age black#c.age
新结果为:
------------------------------------------------------------------------------
diabetes | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
black | -.0215031 .0191527 -1.12 0.262 -.0590461 .0160399
female | .0069338 .004152 1.67 0.095 -.0012049 .0150725
age | .0020176 .0001276 15.82 0.000 .0017675 .0022676
black#c.age | .0012962 .0003883 3.34 0.001 .0005351 .0020573
_cons | -.0553238 .0068085 -8.13 0.000 -.0686697 -.0419779
------------------------------------------------------------------------------
现在我们有了强有力的证据来证明交互作用,特别是 black 对高年龄的人的影响更大。black 的隐含系数从 20 岁时的 0.004(样本中的最低年龄)增加到 74 岁时的 0.074(样本中的最高年龄)。这个巨大增长充分说明 black 对高年龄的人的影响作用并不仅仅是由于样本量大导致的。
依旧延用之前 NHANES 数据集。(数据集在 Stata 网站上是公开,可以在 Stata 会话中直接从 Internet 进行访问)。
i.varname
首先以 diabetes(编码 1 或 0)为因变量进行 Logit 回归,预测因素包括 age(以年计)和两个虚拟(指标)变量,black 和 female 。
webuse nhanes2f, clear
logistic diabetes i.black i.female age
i.black
i.female
前面的i的作用是向 Stata 声明把这些作为分类(因子)变量。通常情况下,这种方法对于二元回归因子是没有必要的,但重点是这种声明方法是计算边际效应的最佳方式。------------------------------------------------------------------------------
diabetes | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
1.black | 2.050133 .2599694 5.66 0.000 1.598985 2.62857
1.female | 1.167141 .1100592 1.64 0.101 .9701892 1.404074
age | 1.061269 .003962 15.93 0.000 1.053532 1.069063
_cons | .0016525 .000392 -27.00 0.000 .0010381 .0026307
------------------------------------------------------------------------------
margins
现在假设我们想估计每个变量对糖尿病发生概率的影响,而不是糖尿病发生概率的影响。
margins, dydx(black female age)
margins
是用于边际均值、预测边际和边际效应的测度命令------------------------------------------------------------------------------
| Delta-method
| dy/dx Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
1.black | .0400922 .0087055 4.61 0.000 .0230297 .0571547
1.female | .0067987 .0041282 1.65 0.100 -.0012924 .0148898
age | .0026287 .0001869 14.06 0.000 .0022623 .0029951
------------------------------------------------------------------------------
margins
用于估计模型的 Stata 代码如下:
margins, dydx(black female age) atmeans
1.平均值的边际效应(MEM):保持其他两个预测因子的平均值不变,对 black计算当black=1和black=0时预测概率之间的差异。
------------------------------------------------------------------------------
| Delta-method
| dy/dx Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
1.black | .0290993 .0066198 4.40 0.000 .0161246 .0420739
1.female | .0047259 .0028785 1.64 0.101 -.0009158 .0103677
age | .0018234 .0000877 20.80 0.000 .0016516 .0019953
------------------------------------------------------------------------------
1.黑人的MEM明显小于其AME。这是模型本身具有的非线性结果,特别是在概率尺度(AME)上的平均值通常不会产生与 Logit 尺度(MEM)上的平均值相同。
2.逻辑模型的非线性表明,我们应该考虑不同条件下的边际效应。Williams(others)将其称为代表值的边际效应。
margins
margins, dydx(black) at(age=(20 35 50 65))
margins, dydx(black) at(age=(20 35 50 65))
1._at : age = 20
2._at : age = 35
3._at : age = 50
4._at : age = 65
------------------------------------------------------------------------------
| Delta-method
| dy/dx Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
1.black |
_at |
1 | .0060899 .0016303 3.74 0.000 .0028946 .0092852
2 | .0144831 .0035013 4.14 0.000 .0076207 .0213455
3 | .0332459 .0074944 4.44 0.000 .018557 .0479347
4 | .0704719 .015273 4.61 0.000 .0405374 .1004065
------------------------------------------------------------------------------
结论:
20岁时黑人的 AME 很小(0.006),但65岁时变大(0.070)。但是这不应该被认为是一种交互作用,因为模型表明在所有年龄段对数概率(logit)的影响是相同的。
依据 Von Hippel 的建议,我们绘制对数概率与预测概率范围的关系图,并检查图是否近似线性,再对数据进行回归。
Stata 代码如下:
predict yhat
sum yhat
注意:
predict
预测命令生成d的预测概率将其存储在变量 yhat 中
sum
命令为 yhat 生成描述性统计信息,包括最小值和最大值。这里,最小值为0.005,最大值为0.244。
Stata 代码如下:
twoway function y=ln(x/(1-x)), range(.005 .244) ///
xtitle("Probability") ytitle("Log odds")
sum yhat
图形如下:
显然,此时图像呈现的对数概率与预测概率范围的关系与线性关系有很大的偏离。
Stata 代码如下:
reg diabetes black female age, robust
注意:
回归结果如下:
------------------------------------------------------------------------------
| Robust
diabetes | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
black | .0383148 .008328 4.60 0.000 .0219902 .0546393
female | .0068601 .0041382 1.66 0.097 -.0012515 .0149716
age | .0021575 .0001214 17.76 0.000 .0019194 .0023955
_cons | -.0619671 .0049469 -12.53 0.000 -.0716639 -.0522703
------------------------------------------------------------------------------
注意:
margin
命令结合起来,可以让你获得最佳的估计效果。这种结合的方式下得到的模型可能比单纯的线性回归模型更加准确。因为它产生的预测概率总是落在允许的范围内,并且该模型的参数即使在变化的条件下也会趋于稳定。
连享会-直播课 上线了!
http://lianxh.duanshu.com
免费公开课:
直击面板数据模型 - 连玉君,时长:1小时40分钟 Stata 33 讲 - 连玉君, 每讲 15 分钟. 部分直播课 课程资料下载 (PPT,dofiles等)
支持回看,所有课程可以随时购买观看。
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 ⭐ | DSGE, 因果推断, 空间计量等 | |
⭕ Stata数据清洗 | 游万海 | 直播, 2 小时,已上线 |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会学习群-常见问题解答汇总:
✨ https://gitee.com/arlionn/WD