本文介绍了根据STATA中的其他两个变量为变量分配排名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个纵向数据,变量为:firm idevent dateabnormal return,其中event date是每家公司的收购公告日期,abnormal return是每家公司在5天窗口(-2,+2)内的事件公告收益。在这里,每个样本公司在预定义的时间段内进行多次收购。

例如,我有200家公司,每家公司在1999-2011年期间都有多个异常回报-观察值。因此,每家公司在此期间至少有两次这样的观察,计算超过两次这样的事件日期。

我需要为每家公司的异常回报分配一个排名,以便按照事件日期的顺序对后续交易(在公司首次收购之后)进行排名。因此,我想创建一个新的rank变量,并使用它来进一步分析公司在第一个异常收益之后的每个后续异常收益中的增减。

请建议如何在Stata中执行此操作或使用哪些代码?我尝试使用:

bysort firm_id event_date: egen rank = rank(abnormal_return), 

但我没有得到我想要的。

注:a)在我的样本中,很少有公司在同一事件日期执行超过1笔交易(例如,2笔),因此这两笔交易具有完全相同的异常回报;B)异常收益可以是正的,也可以是负的,小数点后6/7位,例如,负的异常收益为-0.0365089;正的异常收益为0.0416888。

很抱歉,我已经在Statist上发布了这个问题,我本应该在帖子中提到这个问题,但不知何故,由于急于获得反馈,我错过了它-真诚的道歉。

(更新)我终于设法分享了我的DTA快照的Dropbox链接。文件。

https://www.dropbox.com/s/w501upimdgwvzyz/Rank.dta?dl=0

我现在的问题(Statist尚未回答&;我正尝试在此基础上进行分析,因此在此重新发布):

如果我看的是3年的窗口,即,我需要根据后续交易是在第一笔交易后的3年内进行的基础上对异常回报进行重新排序。例如,我的DTA中的一家公司。Id=13的文件分别在2000、2001、2005和2006年有4笔交易。第一笔交易发生在2000年。2005年的第三笔收购距离2000年的Focus交易已经有3年多的时间了,因此不应该从2000年的第一笔交易开始计算或排名,相反,2005年将是该公司未来3年的第一笔新交易。因此,在本例中,我将不得不按office_id对交易进行排名,13分别为0(2000)、1(2001);0(2005)、1(2006)。

有人能帮忙在这里重新编码吗?

推荐答案

您在评论中指出,您想要的是

sort firm_id event_date 
by firm_id : gen rank = _n 
bysort firm_id event_date : replace rank = rank[1] 

可以浓缩为

bysort firm_id (event_date): gen rank = _n 
by firm_id event_date: replace rank = rank[1] 

这篇关于根据STATA中的其他两个变量为变量分配排名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-01 14:16