1 logit和probit的模型形式
logit模型:
probit模型:
其中,被解释变量y是只能取0和1的二分类变量。
2 logit和probit模型应用
2.1 数据
在多元线性回归的例子中,一些工业企业被“ST”了,那么,企业被“ST”的影响因素有哪些呢?
为了对上述问题进行研究,首先,需要增加一个变量ST,如果企业被ST了,就设1,否则,设为0。然后采用logit或者probit模型研究企业被ST的影响因素。
2.2 录入数据
打开数据编辑窗口,将数据从Excel中复制到Stata,注意粘贴时选择“将第一行作为变量名”
2.3 变量转换
将变量修改为英文名:
rename 成立年 year
rename 员工总数 labor
rename 资产总计 asset
rename 资产负债率 debt
rename 流动比率 liquit
rename 总资产周转率 turnover
生成lnage和lnlabor变量:
g lnage=ln(2020-year)
g lnlabor=ln(labor)
根据“证券简称”变量生产ST(0,1)变量:
g code=subinstr(证券简称,"*","",.) //将“证券简称”*ST...中的*号删除,并生成新变量code
g ST=0
replace ST=1 if substr(code,1,2)=="ST" //如果code变量前两个字符是ST,则ST变量的值修改为1
2.4 估计logit模型
logit命令估计:
logit ST liquit turnover lnage lnlabor
logit模型的系数,只能根据正负符号判断对被解释变量的影响方向,影响的程度无法直接得出。需要计算出odds ratio(发生比之比)来解释;OR大于1,说明发生概率上升;OR小于1,说明发生概率下降。
对于LIQUIT的系数-0.31400048,其OR值为,即OR约等于0.73,表面LIQUIT增加一单位,可以使企业被ST的概率下降(1-0.73=0.27)。
logistic命令估计:
logistic ST liquit turnover lnage lnlabor
logistic命令可以直接给出系数的OR值
2.5 logit模型中加入虚拟变量
根据企业规模分为大型中型和小型企业。设置两个虚拟变量D1和D2,当为大型企业时D1=1、D2=0;当为中型企业时,D2=1、D1=0;当为小型企业时,D1=D2=0.
生成虚拟变量:
g d1=0
g d2=0
replace d1=1 if 企业规模=="大型"
replace d2=1 if 企业规模=="中型"
创建虚拟变量和liquit变量的交互项:
g d1liquit=d1*liquit
g d2liquit=d2*liquit
logit回归:
logit ST d1 d2 liquit turnover lnage lnlabor
logit ST liquit d1liquit d2liquit turnover lnage lnlabor
估计结果显示,d1和d2变量系数的P值均大于0.1,不显著,表明大型企业、中型企业、小型企业,在其他条件相同的情况下被ST的概率不存在差别。
D1LIQUIT变量系数的P值小于0.1,表明D1LIQUIT变量显著。其系数为-0.6143838,对应的OR约等于0.54,因而提高流动比率,大型企业被ST的概率比小型企业多降低(1-0.54=0.46)。D1LIQUIT变量则不显著,说明因而提高流动比率,中型企业被ST的概率降低幅度与小型企业不存在差别。
2.6 估计probit模型
probit命令估计:
probit ST liquit turnover lnage lnlabor
在估计结果显示,probit和logit模型估计系数的显著性一致,但是系数值确不一样。
probit模型无法计算OR(发生比之比),解释较为困难。对于LIQUIT变量,其系数为-0.1069226,表示企业流动比率增加1单位,企业被ST的概率密度函数下降0.1069226。
3 logit和probit模型变换
在某些情况下,可以把多元线性回归模型的被解释变量转换为二分类变量,从而可以用logit和probit模型进行估计。
例如,在多元线性回归例子中,被解释变量为ROE,观察数据发现很多企业的ROE为负数。那么可以对ROE变量进行转换,如果ROE值为负数,就设为1;如果ROE值为正数,则设为0。这样可以研究企业ROE为负(企业亏损)的影响因素。
3.1 生成roe0变量,当roe大于0时roe0=0,否则roe0=1
生成roe0变量:
g roe0=0
replace roe0=1 if roe<0
3.2 logit模型估计
logit命令估计:
logit roe1 liquit turnover lnage lnlabor
采用logit命令回归时发现一直在迭代,不收敛,说明模型或者数据质量有问题。需要修改模型形式,或者对数据质量进行检查。这里我们将turnover变量去掉,重新进行估计。如果有些研究中理论上不允许对模型形式进行修改,那么可以试一下probit估计,probit估计可能会收敛!
修改模型形式后的logit命令估计:
logit roe1 liquit lnage lnlabor
模型中去掉turnover变量后可以进行估计,估计结果显示LIQUIT、LNAGE、LNLABOR三个解释变量系数的P值均小于0.1,因而四个变量都显著,都对企业ROE是否为负有影响。
probit命令估计:
probit roe1 liquit turnover lnage lnlabor
probit模型可以正确估计。估计结果显示,LIQUIT、TURNOVER、LNAGE、LNLABOR四个解释变量系数的P值均小于0.1,因而四个变量都显著,都对企业ROE是否为负有影响。