暮雪寒泉:【专栏-02】⼆元Logit模型和Probit模型及其Stata实现
上⼀篇⽂章介绍了边际效应的计算公式,并且提到针对连续变量和离散变量需要通过不同的计算公式进⾏计算。针对连续变量,⽐较好理解,边际效应就是对概率进⾏求偏导;⽽针对离散变量,边际效应实际上是求0-1变量的相对概率变化,理解较为抽象。 因此,本⽂主要介绍针对离散变量的三种边际效⽤的计算⽅法。
. sum ins female age hstatusg hhincome educyear married chronic adl
末日预言电影
Variable | Obs Mean Std. Dev. Min Max
-------------+---------------------------------------------------------
ins | 3,206 .3870867 .4871597 0 1
female | 3,206 .477854 .4995872 0 1
age | 3,206 66.91391 3.675794 52 86
hstatusg | 3,206 .7046163 .4562862 0 1
hhincome | 3,206 45.26391 64.33936 0 1312.124
-------------+---------------------------------------------------------
educyear | 3,206 11.89863 3.304611 0 17
married | 3,206 .7330006 .442461 0 1
chronic | 3,206 2.063319 1.416434 0 8
adl | 3,206 .301622 .8253646 0 5
下⾯考察性别和家庭收⼊对是否购买私⼈保险的影响。
. logit ins female hhincome
Logistic regression Number of obs = 3,206
LR chi2(2) = 96.76
Prob > chi2 = 0.0000
firerate
Log likelihood = -2091.3891 Pudo R2 = 0.0226
------------------------------------------------------------------------------
ins | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
female | -.2489791 .0744336 -3.34 0.001 -.3948663 -.103092
hhincome | .0064795 .0008627 7.51 0.000 .0047887 .0081703
_cons | -.631263 .0650628 -9.70 0.000 -.7587838 -.5037422
------------------------------------------------------------------------------
然后计算 female在样本均值处的边际效应:
. margins,dydx(female) atmeans
Conditional marginal effects Number of obs = 3,206
out of memory是什么意思
Model VCE : OIM
Expression : Pr(ins), predict()
dy/ : female
at : female = .477854 (mean)
hhincome = 45.26391 (mean)
------------------------------------------------------------------------------
| Delta-method
| dy/dx Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
female | -.0591054 .0176569 -3.35 0.001 -.0937122 -.0244985
------------------------------------------------------------------------------
结果解释:当所有样本中的家庭收⼊取均值(hhincome = 45.26391)时,⼥性购买私⼈保险的概率⽐男性低5.9%。尽管Stata提供了简单的命令计算边际效应,但为了让读者更深⼊理解样本均值处的边际效应的计算过程,笔者⾃⼰写了⼏⾏代码,⾃⼰实现样本均值处的边际效应计算:
*为了不改变原始数据,⽣成female和hhincome的新变量
clonevar x_female = female
clonevar mean_hinc = hhincome
*进⾏Logit模型回归
quiet logit ins x_female mean_hinc
*为计算female的MEM,将mean_hinc设置为均值
replace mean_hinc=45.26391
paradoxical frog*计算当家庭收⼊取均值时,⼥性购买私⼈保险的概率
replace x_female=0
predict prex_male
*计算当家庭收⼊取均值时,男性购买私⼈保险的概率
replace x_female=1
predict prex_female
*⼥性购买私⼈保险的概率减去男性购买私⼈保险的概率即为MEM
gen mem_female = prex_female-prex_male
*显⽰female变量在样本均值处的边际效应
sum mem_female
Variable | Obs Mean Std. Dev. Min Max
-------------+---------------------------------------------------------
mem_female | 3,206 -.0589674 0 -.0589674 -.0589674
奥巴马胜选演讲上述计算结果显⽰,⾃⼰写的命令计算出的样本处的边际效应值跟⽤Stata官⽅命令求出的值⼀致。 通过上⾯的计算过程我们可以发现⼀个问题,如果我们要求出hhincome的MEM,则要求female变量取均值( 0.477854),但是对于0-1变量⽽⾔取均值没有任何意义。因此,在实际应⽤中MEM并不常⽤,⽽更多的情况是计算AME(所有样本的平均边际效应)。
1.2 所有样本的平均边际效应(AME)
AME,即为所有样本的平均边际效应。当需要计算0-1变量 的AME时,则只需要保持Logit模型中的其他变量取值不变,然后计算 和
的差值,然后求差值的均值,即为所有样本的平均效应。同样以 female为例,计算所有样本的平均边际效应:
. quiet logit ins female hhincome
. margins,dydx(female)
Average marginal effects Number of obs = 3,206
Model VCE : OIM
Expression : Pr(ins), predict()
dy/ : female
------------------------------------------------------------------------------
| Delta-method
| dy/dx Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
female | -.0573215 .0170242 -3.37 0.001 -.0906883 -.0239546
结果解释:当保持其他变量的取值不变时(hhincome取值固定),⼥性购买私⼈保险的概率⽐男性低5.7%。同样地,为了让读者更深⼊理解所有样本的平均边际效应计算过程,笔者⾃⼰写了⼏⾏代码,⾃⼰实现所有样本的平均边际效应计算:
clonevar new_female = female
quiet logit ins new_female hhincome,nolog
replace new_female=0
predict pred_male
replace new_female=1
predict pred_female
gen ame_female = pred_female - pred_male
sum ame_female
. sum ame_female
Variable | Obs Mean Std. Dev. Min Max
-------------+---------------------------------------------------------
ame_female | 3,206 -.0574888 .0041 -.0621645 -.0001078
同样地,计算结果与Stata官⽅命令计算的结果⼀致。在实际应⽤中,AME最为常⽤,因为它的边际效应结果解释与线性回归模型的结果解释⽅式基本相同。
1.3 在特定取值处的边际效应(MER)
MER,即为在特定取值处的边际效应,可以将样本均值处的边际效应(MEM)理解为MER的⼀种特例。当需要计算0-1变量
的MER时,则只需要将Logit模型中的其他变量取值为某个固定值,然后计算inuit
和 的差值,即为在特定取值处的边际效应。根据前⾯的描述性统计可知, hhincome的取值区间为[0,1312.124],如果想考察 hhincome取值为
200,500,800,1100时 female的边际效应,则可以通过下⾯的命令实现:
. quiet logit ins female hhincome
影视特效
. margins,dydx(female) at(hhincome=(200 500 800 1100))clubhou是啥>现在是什么时间
Average marginal effects Number of obs = 3,206
Model VCE : OIM
Expression : Pr(ins), predict()
dy/ : female
1._at : hhincome = 200
2._at : hhincome = 500
3._at : hhincome = 800
4._at : hhincome = 1100
------------------------------------------------------------------------------
| Delta-method
| dy/dx Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
female |
_at |
1 | -.0576555 .017537 -3.29 0.001 -.0920274 -.0232837
devo
2 | -.0176886 .0084582 -2.09 0.037 -.034266
3 -.001111
3 | -.0029092 .0021555 -1.35 0.177 -.0071339 .0013155
4 | -.0004312 .0004262 -1.01 0.312 -.0012666 .0004042
------------------------------------------------------------------------------
结果解释:当家庭收⼊为200时,⼥性购买私⼈保险的概率⽐男性低5.8%;⽽当家庭收⼊为500时,⼥性购买私⼈保险的概率仅⽐男性低1.8%,表明当家庭收⼊不同时,不同性别的⼈群购买私⼈保险的概率是不同的。为了更直观地展⽰性别在不同家庭收⼊阶层的边际效⽤,可以通过如下命令实现:
. marginsplot,noci