我正在使用Stata,我有6年的每日回报,用于个人在其投资组合中持有的股票 . 我想将每日回报汇总到每月投资组合回报 . 在某些情况下,个人可能在投资组合中持有多个股票 . 我正在努力编写代码来做到这一点 .
对于视觉,我的数据如下所示:
我希望结果看起来像这样:
如果个人2的1996年12月份的投资组合回报计算如下: 0.3 * 0.0031 + 0.7 * 0.0076 = 0.00625
.
我试过 collapse
这样的命令
collapse Return, by (ID Year Month)
但这并不能提供我在Excel中计算出的相同回报 .
我可以使用所有日期进行加权投资组合回报
bysort ID year month: egen wt_return = stock_weight * monthly_return
但这给了我每日回报 . 我的麻烦是将它们汇总到相应月份的一个回报中 .
至于细节,我想计算每月投资组合回报作为 1 + the weighted daily returns
的产品 . 作为最后的手段,本月的平均回报可能有效 .
1 回答
您不是显示库存权重,而是显示所需的示例数据 . 您的变量
Monthly Return
不可重现 . 发布时,您应该花时间验证您的问题是否清晰 . 公众应该清楚地看到它,而不仅仅是对你 .我没有费心检查你的计算是否正确,但下面是我理解你想要的 . 该过程只是计算加权回报,然后通过
person year month
组添加它们 . (我假设股票权重每天适用于股票,这是您的示例数据所暗示的 . )如果你想要
collapse
求和,那么你必须用(sum)
指出它(虽然我不清楚这是否是你想要的) . 默认情况下,它计算平均值 . 请仔细阅读help collapse
.