全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
3524 2
2020-12-01
各位坛友好!我现在要计算“累计超额报酬率 ”,即用公司t 年 5 月份至 t + 1 年 4 月份的个股月回报率减去同期市场月回报率,然后再进行年度累计 。下图中Ri考虑现金红利再投资的个股月报酬率,Rm表示市场报酬率,采用流通市值加权的市场月回报率,AR=Ri-Rm,数据都有了,但是那个累加的过程怎么用stata实现啊,也就是怎么按公司把AR从t年的5月一直加到t+1的4月?
1606797107(1).jpg



附件列表
1606796594(1).jpg

原图尺寸 33.6 KB

1606796594(1).jpg

二维码

扫码加我 拉你入群

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

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

全部回复
2021-12-6 18:11:21
我想请问以下,你是怎么把市场收益率和个股的对应到一起的呀?我第一步就卡死了呜呜呜。
二维码

扫码加我 拉你入群

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

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

2025-1-17 15:32:02
在Stata中计算累计超额报酬率(Cumulative Abnormal Return, CAR)可以通过以下步骤进行:

假设你已经有了个股月回报率(Ri)和市场月回报率(Rm),并计算出了异常回报率(AR=Ri-Rm)。

1. **确定日期范围**:首先,你需要确保数据按照公司和时间顺序排列。使用`sort company_date`命令对你的数据按公司和日期排序(这里的`company_date`是你的时间变量)。

2. **筛选月份**:你可能需要创建一个变量来标识哪些记录属于t年的5月到t+1年的4月。例如,你可以使用`generate month_in_range = (month >= 5 & month <= 12) | ((year == year + 1) & (month >= 1 & month <= 4))`(这里假设你有月份和年份的变量)。但是更推荐的方法是直接使用日期范围来筛选,比如创建一个时间变量,然后用条件选择。

3. **计算累计超额回报率**:接下来,对于每个公司,在指定的时间段内对AR进行累加。这可以通过使用`egen`命令实现:
   ```
   bysort company_date (date): egen CAR = total(AR) if month_in_range
   ```

但是这个命令的`if`条件会覆盖所有的累积值,所以更好的方法是先筛选数据集(例如,使用`keep if month_in_range == 1`),然后进行累加:
   ```
   bysort company: egen CAR = total(AR)
   ```

4. **恢复原始数据**:如果你在第三步中对数据进行了筛选,记得在完成计算后,将数据集恢复到原始状态,使用`restore`.

5. **注意事项**:确保你的日期变量是Stata识别的正确格式。如果它不是,可以使用`format date %td`或相应的命令将其转换为正确的日期格式。

请注意,在实际操作中,你可能需要根据自己的具体数据结构调整上述代码中的字段名和逻辑条件。

以上步骤将帮助你在Stata中计算出累计超额报酬率(CAR)。如果你的数据集非常大或者有复杂的结构,可能还需要进一步调整这些指令以适应你的具体情况。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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