楼主: jianlamhua
51157 62

[数据管理求助] 由月回报率算出年回报率时,数据如何处理? (连乘运算、连乘函数)   [推广有奖]

31
vincent829 发表于 2009-7-9 16:16:29
voodoo 发表于 2009-7-9 13:15
vincent829 发表于 2009-7-9 10:32
28# voodoo

我试过了,这样的命令R和r观测值都是一样的
我是在做了long-term performance
怎么会一样呢?
// 生成模拟数据
set obs 10
gen code = _n
expand 10
bysort code: gen year = _n + 1998
expand 12
bysort code year: gen month = _n
gen r = 0.1 * rnormal()

// main
sort code year month
by code: gen R=exp(sum(ln(1+r)))-1

// list to check
list in 1/12, clean
是我错了,我原来用了2个variable在by 后面,你也研究long-term performance吗?其实这个程序就是求BHAR的,如果碰到收益率缺失值r,在当中(既不是头几个月,也不是最后几个月),一般怎么处理呢?我用的是用0来替代,因为否则没法计算compound return

32
voodoo 发表于 2009-7-9 20:11:49
vincent829 发表于 2009-7-9 16:16
其实这个程序就是求BHAR的,如果碰到收益率缺失值r,在当中(既不是头几个月,也不是最后几个月),一般怎么处理呢?我用的是用0来替代,因为否则没法计算compound return
我向用0替代缺失值应该是可行的。by code: gen R=exp(sum(ln(1+r)))-1中的sum()函数在计算ln(1+r)的running sum时将缺失值视同0(r缺失→ln(1+r)缺失→sum()将缺失值视为0),故不替代也没有关系——两者结果是一样的。
巫毒上传,必属佳品!
坛友下载,三思后行!

33
管理考研 发表于 2011-8-13 07:36:56
sungmoo 发表于 2009-5-3 17:30
   g year=substr(month,1,4)g t=r+1sort code year monthby code year: replace t=(1+r)*t[_n-1 ...
大侠  请问我这个应该怎么编程啊  就是先把每个月的实际收益率加上1,再把36个月的加上1的实际收益率连乘    如果方便  能不能留下你的QQ   方便交流下啊  最近在做论文  紧急求助啊

34
swj0128 发表于 2011-8-18 13:14:37
学习了,很重要

35
richardflying 发表于 2011-8-18 21:09:15
收获啦!谢谢

36
七吻 发表于 2012-4-8 09:13:05
求问一下,STATA中连乘函数安装不上啊?非常急用,求助啊!万分感谢啦!
优等的心 不必华丽 但必须坚固

37
水蓝色qing 发表于 2012-4-15 11:00:11
遇到同样的问题,来学习一下~

38
wjf_615 发表于 2012-5-4 10:06:57
sungmoo 发表于 2009-5-4 00:00
以下是引用jianlamhua在2009-5-3 23:39:00的发言:所以计算年回报率时,其包含的期间是当年5月至次年4月g y ...
版主,那如果是要计算未来第二年和未来第三年的超额回报,那该如何编程呢?我想了半天没弄明白,期望版主能给予解答谢谢了!

39
tiaotiao2 学生认证  发表于 2012-5-10 22:14:32
sungmoo 发表于 2009-5-3 17:30
   g year=substr(month,1,4)g t=r+1sort code year monthby code year: replace t=(1+r)*t[_n-1 ...
感谢,方法很有用!!!

40
hikaru1066 发表于 2012-9-27 14:25:10
感謝分享
最近正在學寫這個程式^^

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

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