目录
一、文献综述
二元离散选择模型作为一种重要的统计分析工具,在众多领域都发挥着关键作用。
在经济学领域,Manski(1975)最早对离散选择模型进行了深入研究,为后续的理论发展奠定了基础。Heckman(1979)进一步拓展了离散选择模型在劳动力市场的应用,研究个体的就业决策问题。近年来,许多学者利用二元离散选择模型分析消费者行为。例如,Train(2009)运用该模型研究消费者在不同交通方式之间的选择,探讨影响消费者决策的因素,如价格、时间成本和便利性等。在研究消费者对新产品的购买决策时,二元离散选择模型可以帮助企业了解消费者的偏好和需求,从而制定更有效的营销策略。如 Ailawadi 等(2014)通过该模型分析了消费者对某类快速消费品的购买意愿,发现品牌形象、价格和促销活动等因素对购买决策有显著影响。
在社会学领域,二元离散选择模型也被广泛应用于研究社会行为和决策。例如,Sampson 等(1997)利用该模型分析个体的社区参与行为,研究社会环境和个人特征对社区参与的影响。在教育领域,二元离散选择模型可以用来研究学生是否选择继续深造的决策,考虑因素包括家庭背景、学业成绩和就业前景等。如 Card(1999)对教育回报进行了深入研究,其中部分内容涉及到学生在教育阶段的决策问题,运用二元离散选择模型分析了影响学生继续接受高等教育的因素。
在医学领域,二元离散选择模型常用于疾病诊断和治疗决策的研究。例如,Hosmer 等(2013)运用该模型预测患者是否患有某种疾病,通过分析患者的临床症状、实验室检查结果和个人史等因素,提高疾病诊断的准确性。在评估治疗效果方面,二元离散选择模型可以帮助医生和患者选择最适合的治疗方案。如 Rothman 等(2008)利用该模型评估不同治疗方法对某种疾病的疗效,考虑因素包括治疗成本、副作用和治愈率等。
二、理论原理
二元离散选择模型主要用于分析具有两种可能结果的决策问题。在这种模型中,因变量只能取两个值,通常用 0 和 1 表示。例如,个人是否购买汽车、是否拥有住房、是否参与劳动力市场等问题都可以用二元离散选择模型进行分析。
无论是 Logit 模型还是 Probit 模型,它们的目的都是通过解释变量来预测事件发生的概率。在实际应用中,选择哪种模型取决于具体的问题和数据特点。一般来说,如果数据符合逻辑分布的假设,那么 Logit 模型可能更合适;如果数据符合标准正态分布的假设,那么 Probit 模型可能更合适。
此外,二元离散选择模型还可以进行一些扩展,例如:
- 加入交互项:可以考虑解释变量之间的交互作用,以更好地捕捉变量之间的复杂关系。
- 考虑异质性:不同的个体可能具有不同的决策行为,因此可以引入个体特定的随机效应来考虑异质性。
- 动态模型:可以考虑决策的动态过程,例如个体在不同时间点的决策可能受到过去决策的影响。
三、实证模型
假设我们要研究个人是否选择购买新能源汽车的决定因素。我们选取以下解释变量:
- 收入水平(income_level):分为低、中、高三个等级,分别用数字 1、2、3 表示。较高的收入水平可能意味着消费者有更强的经济实力购买新能源汽车。
- 教育程度(education):受教育年限。一般来说,受教育程度较高的消费者可能对环保和新技术有更深入的认识,从而更倾向于购买新能源汽车。
- 家庭人口数(family_size):家庭人口数量可能影响对汽车空间和实用性的需求,进而影响购买新能源汽车的决策。
- 对环保的关注度(environmental_concern):通过问卷调查获得,分为低、中、高三个等级,分别用数字 1、2、3 表示。对环保关注度高的消费者更有可能选择新能源汽车。
- 所在城市的充电桩设施完善程度(charging_infrastructure):分为差、一般、好三个等级,分别用数字 1、2、3 表示。完善的充电桩设施可以提高新能源汽车的使用便利性,增加消费者的购买意愿。
四、稳健性检验
为了检验模型的稳健性,我们可以采取以下方法:
- 改变模型的分布假设:分别使用 logit 模型和 probit 模型进行估计,比较结果的一致性。如果两种模型的估计结果在系数的符号、大小和显著性水平上基本一致,说明模型具有一定的稳健性。
- 增加或减少解释变量:观察模型结果的变化。例如,我们可以尝试加入一些新的解释变量,如消费者的年龄、性别等,或者去除一些解释变量,看模型的结果是否发生较大变化。如果模型结果相对稳定,说明模型对解释变量的选择不是特别敏感,具有一定的稳健性。
- 分样本估计:将样本分为不同的子样本,如男性和女性、不同年龄组、不同收入组等,分别进行估计,检查结果的稳定性。如果在不同子样本中的估计结果基本一致,说明模型在不同群体中具有较好的适用性和稳健性。
五、程序代码及解释
- 导入数据
use "new_energy_car_data.dta", clear
解释:使用use
命令导入名为 “new_energy_car_data.dta” 的数据文件,并清除当前内存中的数据。
- 描述性统计
summarize income_level education family_size environmental_concern charging_infrastructure own_new_car
解释:使用summarize
命令对变量income_level
、education
、family_size
、environmental_concern
、charging_infrastructure
和own_new_car
进行描述性统计,包括均值、标准差、最小值、最大值等。
- 估计 logit 模型
logit own_new_car income_level education family_size environmental_concern charging_infrastructure
解释:使用logit
命令估计 logit 模型,以own_new_car
为因变量,income_level
、education
、family_size
、environmental_concern
和charging_infrastructure
为自变量。
- 估计 probit 模型
probit own_new_car income_level education family_size environmental_concern charging_infrastructure
解释:使用probit
命令估计 probit 模型,变量设置与 logit 模型相同。
- 查看 logit 模型结果
estimates table
解释:使用estimates table
命令查看 logit 模型的估计结果,包括系数、标准误差、z 值、p 值等。
- 查看 probit 模型结果
estimates table, probit
解释:使用estimates table
命令并指定probit
选项,查看 probit 模型的估计结果。
- 稳健性检验:改变解释变量
- 加入年龄和性别变量
logit own_new_car income_level education family_size environmental_concern charging_infrastructure age gender
解释:在 logit 模型中增加解释变量age
和gender
,观察结果的变化。其中age
为连续变量表示年龄,gender
为虚拟变量,例如男性为 1,女性为 0。
- 去除一个解释变量进行稳健性检验
logit own_new_car income_level education family_size environmental_concern charging_infrastructure
// 假设去除家庭人口数变量进行稳健性检验
logit own_new_car income_level education environmental_concern charging_infrastructure
解释:先估计包含所有解释变量的 logit 模型,然后去除一个解释变量(这里假设去除family_size
),再次估计 logit 模型,比较两次结果的变化。
- 分样本估计
- 按性别分样本估计
logit own_new_car income_level education family_size environmental_concern charging_infrastructure if gender == 1
logit own_new_car income_level education family_size environmental_concern charging_infrastructure if gender == 0
解释:分别对男性和女性样本进行 logit 模型估计,通过比较不同性别子样本的估计结果,检查模型在不同群体中的稳定性。
- 按收入水平分样本估计
// 假设按收入水平分为低、中、高三个子样本
logit own_new_car income_level education family_size environmental_concern charging_infrastructure if income_level == 1
logit own_new_car income_level education family_size environmental_concern charging_infrastructure if income_level == 2
logit own_new_car income_level education family_size environmental_concern charging_infrastructure if income_level == 3
解释:分别对不同收入水平的子样本进行 logit 模型估计,观察模型在不同收入群体中的表现。
- 计算边际效应
- 对于 logit 模型
margins, dydx(*)
解释:使用margins
命令计算 logit 模型中各个解释变量的边际效应。dydx(*)
表示计算所有解释变量的边际效应。
- 对于 probit 模型
margins, dydx(*) atmeans
probit_margins
解释:首先使用margins
命令并加上atmeans
选项计算 probit 模型在均值处的边际效应,然后使用probit_margins
命令进一步分析 probit 模型的边际效应。