公式:Et/Pt-1=(λ0+λ1 Sizet+λ2Levt+λ3 MBt)+DRt(κ0+
κ1 Sizet+κ2 Levt+κ3 MBt)+R(μ0+μ1Sizet+μ2Levt+μ3 MBt)+DRt*Rt(ν0+ν1 Sizet+ν2 Levt+ν3MBt)
其中,E表示每股收益;P表示每股市值;R表示从t年5月至t + 1 年4月购进并持有的股票年回报率;DR为虚拟变量,当R为负时,DR取1,否则为0;SIZE是所有者权益的自然对数;LEV为负债比率,定义为(长期负债+短期负债) /所有者权益;MB是市价与账面价值的比率,模型(1) 得出的ν0到ν3对公司来说是常数,但随年份而改变,然后,我们用以下公式计算每家公司每年的C_ Score:
C_ Scoret=ν0+ν1 Sizet+ν2 Levt+ν3 MBt
我是用的循环语句
bysort stkcd (year): gen group_id = _n
gen Cscore=.
forvalues i=1(1)6{
reg Y size1 lev1 MTB R1 SR1 DR1 MR1 LR1 DRR1 SDRR1 MDRR1 LDRR1 SDR1 LDR1 MDR1 if group_id==`i',nocons
gen b_DRR1=_b[DRR1] if group_id==`i'
gen b_SDRR1=_b[SDRR1] if group_id==`i'
gen b_MDRR1=_b[MDRR1] if group_id==`i'
gen b_LDRR1=_b[LDRR1] if group_id==`i'
replace Cscore=b_DRR1+ b_SDRR1*size1+b_MDRR1*lev1+b_LDRR1*MTB if group_id==`i'
drop b_SDRR1
drop b_MDRR1
drop b_LDRR1
}
老是错误提示b_DRR1 already defined
我觉得原因可能是
由于DRR=DR*R,SDRR=size*DRR,LDRR=lev*DRR等,所以变量间存在严重共线性,由此总是会在回归中被omitted,如何解决这一问题呢?