本文作者:闫宇聪,中南财经政法大学金融学院 本文编辑:陈梦华 技术总编:李婷婷

引言

logit模型是我们进行微观计量研究时所用到的最主流的模型之一。本次Stata17中新增了两个与logit模型有关的命令——xtmlogit(面板多项logit模型)和ziologit(零膨胀有序logit模型)。xtmlogit在往期推文中已经为大家详细介绍了,那么今天小编就带领大家一起来学习一下ziologit命令。那么各位科研老司机们,我们出发吧!

为什么要使用ziologit?

在使用ziologit命令之前,我们必须要了解我们为什么要使用ziologit。在传统的有序logit模型中,一个零值可能代表着样本不具备某个特征,而剩余的非零值代表该特征水平的增加。 然而,在某些情况下,数据中观察到的零值比传统有序logit模型预期的要多。这些零值有些是因为个体没有这种特质,有些是因为个体有这种特质,但在数据收集期间并未表现出来。 下面,我们列举两个非常简单的例子来说明一下。

1.在一项关于酒精消费的研究中,有些人报告说他们从不喝酒,所以没有酒精消费,而另一些人虽然喝酒,但是在研究调查期间没有喝酒,因此也没有酒精消费。

2.有一项旨在缩小肿瘤的临床治疗试验,一共有没有改善、部分缓解或完全缓解三种可能的结果。没有改善可以分为两种情况:第一是治疗对肿瘤没有效果,第二是治疗对肿瘤有效果,但在数据测量时没有缩小。

在上述的两个例子中,传统的有序logit是不能识别出出现零值的两种原因的,但是ziologit可以识别,因此当我们面临样本中较多零值且出现零值的原因有两类时,可以选择使用零膨胀有序logit模型来代替传统的有序logit模型。

ziologit基本语法

ziologit命令的基本语法如下:

ziologit depvar [indepvars] [if] [in] [weight], ///inflate(varlist[, noconstant offset(varname)]|_cons) [options]

depvar 是被解释变量, [indepvars] 是解释变量, [if] 是条件语句, [in] 表示范围, [weight] 表示权重。 inflate() 是必选项,确定多余零值的logit模型的膨胀方程。此外,还可以使用vce()报告不同类型的标准误,使用level()以百分比形式指定置信区间的置信水平(默认为level(95)),使用collinear保留共线的变量等。

以烟草消费数据为例

为了让大家更好地了解和掌握ziologit命令,本文将通过一个非常简单的例子——探究收入与烟草消费之间的关系,来为大家详细展示ziologit命令的用法。

  • 下载数据并观察


clear allwebuse tobaccocodebook tobacco

打开网易新闻 查看精彩图片

通过对被解释变量烟草消费的观察,我们可以发现,样本总数为15000,而烟草消费为0的样本数为9469,烟草消费为0的情况分为两类:第一类是这些人本来就不吸烟,第二类是这些人吸烟,但是在数据收集期内并没有吸烟,所以烟草消费为0。因此在这种情况下,我们可以使用ziologit模型进行分析。

  • 模型及结果分析


ziologit tobacco education income age i.female, ///inflate(education income i.parent i.religion) vce(r)

打开网易新闻 查看精彩图片

我们可以看到使用ziologit命令回归的结果分为两个部分,其中第一个部分(tobacco)是传统的有序logit模型的回归结果,而第二部分(inflate)则是判断一个香烟消费者是否是一个吸烟者的模型。我们使用受教育水平、收入水平、年龄以及性别来作为烟草消费的解释变量,使用受教育水平、收入水平、父母是否吸烟以及香烟消费者的宗教信仰是否支持他吸烟作为香烟消费者是否吸烟的解释变量。由于logit模型的系数其经济含义理解起来相对较为困难,因此我们使用or选项去报告优势比(odds ratio)。

  • 显示优势比


ziologit, or

打开网易新闻 查看精彩图片

由优势比的结果我们可以看出,年收入增加1万美元会使吸烟的几率变为原来的0.89倍(几率降低11%),但在吸烟者中,年收入增加1万美元会使他们增加烟草消费的几率变为原来的3.71倍(几率增加271%)。这表明较富裕的人不太可能吸烟,但如果他们决定吸烟,他们往往会抽更多的烟。

  • 收入水平与香烟消费的关系(结合margins命令)

接下来我们着重研究一下收入水平与香烟消费的关系。例如,我们想了解年收入为0美元、5万美元、10万美元、15万美元和20万美元时香烟的消费情况,我们可以使用 margins 命令估计每种香烟消费水平的预期概率。

margins, at(income=(0(5)20))

打开网易新闻 查看精彩图片

我们发现,predict的1、2、3、4分别代表着烟草消费水平的四个等级,at的1、2、3、4、5分别代表着收入的五个水平。但是上述结果显然看起来并不直观,因此我们可以使用 marginsplot 命令将结果可视化。

marginsplot, legend(order(5 "0 cigarettes" 6 "1–7 cigarettes/day" ///7 "8–12 cigarettes/day" 8 ">12 cigarettes/day"))

打开网易新闻 查看精彩图片

通过可视化的图表我们可以看到,消费0支烟的概率随着年收入的增加而降低,直至10万美元;然后,概率又逐渐增大。当年收入为10万美元时,消费香烟的香烟消费者中,每天消费1-7支的可能性最高,而当年收入为20万美元时,每天消费大于12支的可能性最高。

  • 收入与是否吸烟之间的关系

除此之外,我们还可以研究收入与是否吸烟之间的关系。我们将 predict(ps) 选项添加到 margins 中,可以对收入与是否吸烟的预测概率进行估计。

quietly margins, predict(ps) at(income=(0(5)20))marginsplot

打开网易新闻 查看精彩图片

通过结果我们可以看到,当收入为零时,五分之四的受访者很可能吸烟。随着收入的增加,成为吸烟者的可能性降低,只有三分之一左右的受访者在年收入为20万美元时容易吸烟。这可能是因为收入较高的人具有较强的健康意识,因此更不容易吸烟。

  • 在吸烟者中,收入水平与香烟消费的关系

接下来,我们研究在吸烟者中,收入水平与香烟消费的关系。通过在选项 predict 中指定pcond1和五个收入水平,我们计算了每个收入水平上烟草消费的概率,并用 marginsplot 作图。

quietly margins, predict(pcond1 outcome(0)) predict(pcond1 outcome(1)) ///predict(pcond1 outcome(2)) predict(pcond1 outcome(3)) at(income=(0(5)20))marginsplot, legend(order(5 "0 cigarettes" 6 "1–7 cigarettes/day" ///7 "8–12 cigarettes/day" 8 ">12 cigarettes/day"))

打开网易新闻 查看精彩图片

通过结果我们可以看到,当年收入为零时,超过一半的易吸烟人群报告说他们的香烟消费量为零。随着收入的增加,零消费的概率下降。年收入越高,易吸烟人群的香烟消费量就越高,这也意味着成为重度吸烟者的可能性越高。这表明,在易吸烟人群中,香烟是一种正常商品,因为当收入增加时,香烟的需求就会增加。

从这个例子我们可以看出,收入对香烟消费的影响是多方面的。ziologit命令可以推测人们是否容易吸烟,以及香烟消费的强度,从而更好地了解影响香烟消费行为的因素。以上就是本次Stata17新增命令ziologit的基本用法。下期我们将继续介绍Stata17的其他新功能。盆友们、火鸡们,我们下期见!

打开网易新闻 查看精彩图片

欢迎大家点赞、评论、转发哟~

一年一度的“Stata洞察数据科学研讨”如约而至,全程免费,欢迎大家扫描下方二维码报名

7月16日 我们不见不散

打开网易新闻 查看精彩图片

文章精选