Logit模型的理解首先要区分理解 概率(probability)、发生比/几率(odds)、发生比之比/优势比(odds ratio)之间的区别。
设想有一个二分变量Y记录了人们对一项决议的意见,Y=1表示支持某项决议,Y=0表示反对这项决议,对于人群总体来说,Y的均值用 μ 表示, μ 值就是支持的人占总人数的比例,也就是支持该决议的概率 P,而发生比 odds = P/(1-P),其含义是支持该决议的概率是反对该决议的倍数,odds=1时,支持和反对的概率相等,概率也可以由发生比反推得到。odds ratio 则指的是发生比之比,OR =[P1/(1-P1)]/[P2/(1-P2)]。logistic回归的结果一般用发生比 odds 来解释。
Logistic 模型的一般形式是:logit(p) = α+β1*X1+β2*X2+β3*X3+.....+βk*Xk,描述了Y的对数发生比随X的取值变化而变化。这与传统的线性回归模型的形式很像,但是又存在着重要的差别。
直观地理解这种差异:将两种模型都视为广义线性模型的特殊形式。广义线性模型由三个部分组成:随机部分、系统部分和连接部分。
随机部分指的是变量Y以及Y的概率分布,传统线性模型Y是连续变量并假设其服从正态分布。在经典logistic回归中,Y是一个二分变量并服从二项式分布。
系统部分指的是解释变量以及这些解释变量如何组合在一起构成了解释方程,在传统线性模型和logistic回归中都是这样:α+β1*X1+β2*X2+β3*X3+.....+βk*Xk,这个表达通常被称为线性预测(linear predictor),而x与其他解释变量还可以结合(如相乘交互),因此可以做出其实非线性的预测。
连接部分说明了Y的均值 μ =E(Y)如何与线性预测相联系。
其实说白了就是,随机部分规定了 Y,系统部分规定了 X,而连接部分就是用一个连接函数(link function)将 X 与 Y连了起来,也就是我们经常看到的回归方程,它所反映的是 x 的变化带来的 Y 的均值的变化。
对Logit模型系数解释的一个总的原则是:方向看系数,大小看exp(系数),不管自变量是连续变量还是虚拟变量 or 其他。
假设我们要研究人们对一项法案的态度,自变量为性别和政治态度,政治态度是一个取值从-3到3的变量,测量受访者更倾向于保守主义还是自由主义,越小越保守,越大越自由;性别是虚拟变量,1是男性,0是女性。因变量是对该法案的态度,是一个二分变量,0表示反对,1表示支持。如果我们用P来表示因变量支持的概率,假设得到回归方程如下:
Logit(P)=1.555-1.712*性别-0.513*政治态度
该模型等同于:Ln(P/(1-P))=1.555-1.712*性别-0.513*政治态度
这里的截距项是有意义的,表示持中立态度的女性支持法案的对数发生比是1.555,用公式来表示也就是 Ln(P/(1-P))=1.555,两边取对数即可得到 P/(1-P)=exp(1.555)=4.735,这时就方便解释了,即政治态度持中立的女性支持法案的概率是反对该法案的概率的4.735倍。
男性:logit(P) = 1.555-1.712*1-0.513*0 = -0.157
女性:logit(P) = 1.555-1.712*0-0.513*0 = 1.555
如果我们想求得男性支持的几率与女性支持的几率之间的差异,其方法与传统线性模型一致。在传统线性模型中,我们要对比男性比女性增加或是减少了多少,通常会选择使用减法直接相减,求出 Δy,在Logit模型中我们仍然选择这一求差异的办法,又稍稍有一点点不一样,那么在这里就是:[男性logit(P)] - [女性logit(P)] = exp[Logit(P)男性] /exp[logit(P)女性]=0.1805,最终得到:odds男性/odds女性,实际上0.1805就是性别的系数取指数exp(-1.712)得到的,我们称这一比率为odds ratio优势比,它是男性的支持几率(odds)比上女性的支持几率(odds)之比,是发生比之比,一般logit的系数我们就到此为止,不再继续往下算了。优势比所反映的是在支持该法案这件事上,无论受访者的政治态度是什么,男性的性别优势比始终保持0.1805,即男性支持该法案的几率是女性支持该法案几率的0.1805倍,大约是女性的1/5,之所以算到优势比这里为止,是因为随着其他控制变量(如这里的政治态度)的变化,男性与女性的发生比都会发生改变,但是优势比却不会改变(Note:当模型含有交互项时就不一样了)。
观察可以看到实际上随着自变量的变化,y 的发生比预测值也随着发生系统变化的趋势。
乘积因子(multiplicative factor):乘积因子指的是连续变量的优势比,只要我们将某个连续变量取两个相邻递减的数值,分别计算他们的发生比,然后计算优势比,就能得到这个 “乘积因子”。当自变量是定序/连续变量时,其Logistic系数的指数就是一个乘积因子,在保持其他条件不变的情况下,该自变量每增加一个单位,预期发生比就等于原值乘以该乘积因子。如果乘积因子为1说明该自变量的变化对因变量没有影响,>1则会增加提高预测发生比,反之亦然。
要对Logit模型的系数取指数(Exponential),即取反对数之后,才方便我们进行解释。x每增加一个单位,y发生的几率就是之前的exp(b)倍,一个乘积因子倍。在社会科学的研究报告中,大多都以发生比和优势比的形式出现。
1:影响的正负方向看系数的正负,影响的大小看exp(b)
2:如果exp(b)大于1(系数大于0),假设是1.5,则x增加一个单位后,y发生的几率(odds)是原来的1.5倍,或者说比原来增加了50%
3:如果exp(b)小于1(系数小于0),假设是0.5,则x每增加一个单位,y发生的几率(odds)是原来的0.5倍,或者说比原来减少了50%
在stata中,logistic回归的命令为 logit 和 logistic
logit y x
logistic y x /* logistic 与 logit 命令不同的是可以直接输出 exp(b) */
有时对自变量进行代数转换的意义:如果我们对自变量在某个取值上对应的发生比感兴趣,我们可以将该自变量增加或者减去该值,构造一个新变量,让新变量的 0 值等于原自变量的特定取值,然后用logistic进行回归,将得到的截距项求指数,就是我们感兴趣的取值对应的预测发生比(这样主要是还可以得到相应的置信区间)。