全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
5044 7
2015-09-16

公式: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表示从t5月至t + 1 4月购进并持有的股票年回报率;DR为虚拟变量,当R为负时,DR1,否则为0SIZE是所有者权益的自然对数;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,如何解决这一问题呢?


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-9-16 14:39:53
在循环中,你定义如下语句:
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'
也就是说在每一轮循环中都要生成上述变量。
第一轮循环可以顺利执行,但当第二轮循环时,由于 b_DRR1变量已经定义,在数据集中存在,所以无法再生成此变量,故程序错误,提示,b_DRR1 already defined。你应该在循环程序最后加上drop  b_DRR1
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-9-17 10:35:19
谢谢,我去试下
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-9-17 10:40:13
嗯嗯,果然是这个问题,非常感谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-7-12 15:10:36
shaheluyue 发表于 2015-9-17 10:40
嗯嗯,果然是这个问题,非常感谢
你好,请问你的程序forvalues i=1(1)6{,这里面的6是什么意思?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-2-18 01:43:19
你好,请问可以详细问哈你吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群