全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
3563 3
2019-08-20
悬赏 88 个论坛币 未解决
是这样的,我想用carhart 四因子模型计算预期的异常回报。总共事件有160347个,交易日的数据总规有九百多万条,现在已经得到了估计的回归系数。我写了下面的命令,但是运行速度十分缓慢,求改进方法。因为数据很多,本想dataex一个例子的,但是发现不论怎么做都不具有代表性,所以只能口头描述:在九百多条交易日的数据中,有十六万条的event=_n,其他event都为缺失,只有event不为缺失时,此观测值的带有回归系数b_x,其他均为缺失。但是其他数据所有观测值完整。命令如下:

sort Stkcd date2
forvalue i=1/160347 {
qui sum date2 if event==`i'
local t=`r(mean)'  //得出事件时间
qui sum Stkcd if event==`i'
local id=`r(mean)'    //得出事件影响的企业id
qui sum n if event==`i'                                                   
local nn=`r(mean)'   //定位到行数
forvalue j=1/90{
gen v=1+b_mkt_rf[`nn']*mkt_rf[`nn'+`j']+ b_smb[`nn']*smb[`nn'+`j']+ b_hml[`nn']*hml[`nn'+`j']+ b_umd[`nn']*umd[`nn'+`j']+cons[`nn']  //求出异常回报率,其中b_是由事前窗口得出的回归系数,没有b的是1-90天的值
qui sum v
local w=`w'*`r(mean)' //连乘求出bhar
drop v
}
replace k=`w' if event==1  //将结果填入k
display " finish `i' "
}


拜托各位大神帮忙看看了!

二维码

扫码加我 拉你入群

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

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

全部回复
2019-8-20 16:41:34
1、慢只要能执行,没有错误,就可以了
2、想改进,还是需要部分数据,别人才能知道数据结构,才能尝试改进
比如只截取出前5个event的数据,别人也能知道你的是什么
才能改进
二维码

扫码加我 拉你入群

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

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

2019-8-20 19:46:08
蓝色 发表于 2019-8-20 16:41
1、慢只要能执行,没有错误,就可以了
2、想改进,还是需要部分数据,别人才能知道数据结构,才能尝试改进 ...
谢谢老师,可能是我的电脑太差了,我换个机器尝试一下!
二维码

扫码加我 拉你入群

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

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

2022-11-4 14:37:41
楼主,我觉得你可以这样算AR:在循环里面reg+predict来估计正常收益,你现在的代码太繁琐了,电脑负担太大了,自然就会慢下来了
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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