楼主: vincent829
10411 54

[其他] 如何定位是在哪个group [推广有奖]

  • 0关注
  • 0粉丝

硕士生

0%

还不是VIP/贵宾

-

威望
0
论坛币
515 个
通用积分
0.1673
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1736 点
帖子
99
精华
0
在线时间
108 小时
注册时间
2005-10-6
最后登录
2013-9-25

楼主
vincent829 发表于 2009-7-3 17:44:02 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我有个benchmark,按照每一年市场价值的大小,分成10等份,每份的公司数目相同
现在我要把sample里面的公司,按照每年的市场价值,决定放入哪个组里面。
我怎么定位某个公司某年在哪个group呢?

比如说A公司81年上市,我根据81底(也就是82年初)的市场价值,需要定位A公司在81年的10个portfolio中处于第几个
现在每个portfolio每年的市场价值和group的标记(从1到10)都已构架好,注意,portfolio的构成每年都更新。
我的目的是新建一个变量,表示出每年这个公司根据市场价值属于哪个group里面(1到10里面的一个整数)
我有很多公司,不可能手动完成

这个比较繁琐,还请大家耐心,多谢了

原来没有把问题讲清楚,现在附加了数据。
其实问题比我在论坛上说的复杂。
比如说当id=6855时,年份和月份是从1981年的9月份开始,但是在1981年时,MV是缺失的。因为公司那年刚刚上市。MV从1982年才available,而且是每一年年初update,表示的是每一年年初的MV。那些缺失值需要用年末的数据代替,也就是第一个available MV代替,比如说id=6855时,前四个观测值需要用24(1982年年初MV)代替。这个问题对于那些开始年份不等于1的所有公司都存在。
除此以外关键问题,我以id=6855作为例子,还得知道24在81年的portfolio中,处于哪个group(1到10的一个整数)。portfolio的MV和划分的group数据我都有。但是我不知道如何给你发附件。
sheet1是sample的数据,sheet2是1981年portfolio的构成和分组情况(其实portfolio从1981到2007都有)。
二维码

扫码加我 拉你入群

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

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

关键词:Group 如何定位 Portfolio Available benchmark 如何 价值 新建

回帖推荐

sungmoo 发表于17楼  查看完整内容

上面的命令组中,sheet1中各公司的非1981年的mv并没有按sheet2标记group号。

sungmoo 发表于16楼  查看完整内容

*调整一下:只对sheet1中1981年各公司的mv按sheet2标记group号。不知是否符合想法? use sheet1,clear keep in 1/382 *替换缺失值 sort id year month loc n=_N forv i=1/`n'{ egen n=count(mv) if n==_N { continue,break } by id: replace mv=mv[_n+1] if mv==.&mv[_n+1]

sungmoo 发表于14楼  查看完整内容

egen n=count(mv) if n==_N { continue,break *用来:一旦完成任务,即跳出循环

vincent829 发表于12楼  查看完整内容

sungmoo提供的程序如下,希望对大家有帮助,但是我的数据有超过50K,按照原命令,得执行超过50k次。 use sheet1,clear keep in 1/382 *替换缺失值 sort id year month loc n=_N forv i=1/`n'{ egen n=count(mv) if n==_N { continue,break } by id: replace mv=mv[_n+1] if mv==.&mv[_n+1]

sungmoo 发表于29楼  查看完整内容

*这两个命令是有区别的 by id: g s=sum(mv) by id: egen n=sum(mv)

sungmoo 发表于26楼  查看完整内容

*去掉无available值替代的缺失值 sort id year month by id: g s=sum(mv) by id: egen n=sum(mv) drop if s==n&mv==. drop s n

sungmoo 发表于24楼  查看完整内容

有些公司在有些年份没有available mv可以代替。 (全年缺失,且无后续年)

sungmoo 发表于23楼  查看完整内容

知道问题出在哪里了:有些公司有些年份的mv缺失,但其没有后续年份的mv,所以这时不知mv该取何值。 比如,id==10683,year==2005,全年mv缺失,又没有后续年份。

本帖被以下文库推荐

沙发
sungmoo 发表于 2009-7-3 18:17:33
把benchmark与sample各自的数据结构介绍一下?

藤椅
vincent829 发表于 2009-7-3 18:43:57
sample的id实际上是benchmark(population)的一部分。
sample有id(标识),year(年份),month(月份),mv(市场价值),return(月收益率)这几个变量,mv在1年是不变的。
population有id(标识),year(年份),group(组数)mv(市场价值)
我已经把这两个数据库按照id和year merge了。
如果你敢兴趣,我可以内信你一些数据

板凳
denver 发表于 2009-7-4 22:25:36
貌似在按照Fama的文章做

报纸
wzzand 发表于 2009-7-5 01:43:35
这个group需要使用循环命令,可以从这个角度思考一下

地板
sungmoo 发表于 2009-7-5 07:54:19
见email

7
vincent829 发表于 2009-7-5 09:20:06
denver 发表于 2009-7-4 22:25
貌似在按照Fama的文章做
是做size control portfolio作为benchmark的abnormal return,和构建SMB,HML前期工作一样,后面的不太一样

8
vincent829 发表于 2009-7-5 09:20:35
sungmoo 发表于 2009-7-5 07:54
见email
谢谢,我现在check

9
voodoo 发表于 2009-7-5 10:40:48
sungmoo 发表于 2009-7-5 07:54
见email
能否把程序贴出来,我们学学。。。
巫毒上传,必属佳品!
坛友下载,三思后行!

10
voodoo 发表于 2009-7-5 10:57:19
vincent829 发表于 2009-7-3 18:43
sample的id实际上是benchmark(population)的一部分。
sample有id(标识),year(年份),month(月份),mv(市场价值),return(月收益率)这几个变量,mv在1年是不变的。
population有id(标识),year(年份),group(组数)mv(市场价值)
我已经把这两个数据库按照id和year merge了。
按照你这种说法,你不是在population中已经对每一id都求得group了嘛,剩下的工作不过是将sample所需的id(及group)从population中提取出来即可。此外,population中的mv指的又是什么呢?
还是我理解错了?
巫毒上传,必属佳品!
坛友下载,三思后行!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-5 17:12