全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
6233 13
2015-04-07
我的是2001-2012的IPO面板数据,需要按发行市值排序将股票平均分为0,1,2三组,如果是这样,应该用egen aa=cut(size), group(3)即可;但由于年度跨度较大,不同年份IPO的股票市值不具可比性,我希望能按股票在其发行年份的发行市值排序并分组,即发行市值在该年(其所在IPO年份)所有新股中排前1/3的股票分在0组,后1/3的股票分在2组,其余在1组,于是写了如下简单程序:

gen size_group=1
forvalues ipoyear=2001/2012{
egen pct1=pctile(iposize),p(66.7)
egen pct3=pctile(iposize),p(33.3)
replace size_group=0if iposize>pct1
replace size_group=1 if iposize<pct3
drop pct1
drop pct3
}

结果在第一次循环中,程序就把所有年份股票都一次性分好组了,之后的循环貌似都没作用,(如下),初学stata,不知道这是为什么,可以请高手帮解答下吗?谢了!
(2129 real changes made)
(2509 real changes made)
(0 real changes made)
(0 real changes made)
(0 real changes made)
...
...

二维码

扫码加我 拉你入群

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

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

全部回复
2015-4-8 08:50:21
楼主,您好。

我觉得可以不用循环语句呢

“发行市值在概念所有股票中排前1/3的股票分在0组,”概念所有  是什么意思?

您提供样本dta吧,不要太多观测值,能体现你数据特征就行,尽量简洁。
二维码

扫码加我 拉你入群

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

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

2015-4-8 10:25:39
SpencerMeng 发表于 2015-4-8 08:50
楼主,您好。

我觉得可以不用循环语句呢
谢谢版主的回复!
不好意思,打错字了,“概念”应是“该年”。数据结构与所希望得到的分组示意如下:
stock        ipoyear        iposize   group  
6001        2001                 100              0
6002        2001                 200              1
6003        2001                 300              2
6004        2010                 400              1
6005        2010                 300              0
6006        2010                 500              2
昨天受您另一个回帖里的命令启发,我模仿着写了一个简单的命令bys ipoyear: egen group=cut(size), group(3),担报错egen ... cut() may not be combined with by。多谢了!
二维码

扫码加我 拉你入群

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

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

2015-4-8 11:47:10
seanj_cn 发表于 2015-4-8 10:25
谢谢版主的回复!
不好意思,打错字了,“概念”应是“该年”。数据结构与所希望得到的分组示意如下:
...
与楼主共同学习。

我有个疑问,比如2001年10只股票中有一半都是相同的iposize,用cut就不能分组了,cut是平均分组。

分组时还涉及到某一年10只iposize怎么分三组呢?

是不是先针对每年的iposize进行求1/3处和2/3处的分位数值,然后在用命令将小于1/3的iposize 编码为0,中间的为1,大于2/3的编码为2。

不知楼主怎么看?
二维码

扫码加我 拉你入群

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

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

2015-4-8 16:35:28
SpencerMeng 发表于 2015-4-8 11:47
与楼主共同学习。

我有的疑问,比如2001年10只股票中有一半都是相同的iposize,用cut就不能分组了,cu ...
我之前就是用“求分位数后再编组”的思路写了个简单的程序(见楼顶),但是会出现上面描述的问题,可以请版主帮我看看可以怎么改正吗?谢谢版主!
二维码

扫码加我 拉你入群

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

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

2015-4-8 18:34:03
seanj_cn 发表于 2015-4-8 16:35
我之前就是用“求分位数后再编组”的思路写了个简单的程序(见楼顶),但是会出现上面描述的问题,可以请版 ...
你看看下面的代码如何:
复制代码
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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