楼主: sushuiasushui
1881 3

[时间序列问题] 不同时间序列下Lead operator的使用问题 [推广有奖]

  • 9关注
  • 0粉丝

已卖:13份资源

硕士生

26%

还不是VIP/贵宾

-

威望
0
论坛币
610 个
通用积分
22.9838
学术水平
0 点
热心指数
2 点
信用等级
0 点
经验
1348 点
帖子
91
精华
0
在线时间
159 小时
注册时间
2011-12-16
最后登录
2019-7-16

楼主
sushuiasushui 发表于 2016-3-1 08:23:04 |AI写论文
100论坛币
我有两组股票数据fundamentals 和marketdata,定义新变量分别是以year和date(如1989m1)为时间序列。
即fundamentals:
xtset gvkey year
sort gvkey year
var1=...
var2=...
marketdata:
xtset gvkey date
sort gvkey date
g r = (prccm-l.prccm)/prccm //get the monthly raw return,prccm is the monthly close stock price

之后我需要将两组数据合并:
use marketdata.dta,clear
sort gvkey year
merge m:1 gvkey year using fundamentals.dta, force
keep if _merge==3
得出一个新的数据表,现在我需要按十分位分组,并求每组对应的下一年的平均股票收益,如表:


deciles yearmonthly returnmean return mean return t+1
1 1996 0.01 0.15 0.35
1 1996 0.02 0.15 0.35
1 1997 0.03 0.35 0.05
1 1997
0.04 0.35 0.05
1 1998 0.05 0.05 .
2 1996 0.06 0.07 0.09
2 1996 0.07 0.07 0.09
2 1996 0.08 0.07 0.09
2 1997 0.09 0.09 .
mean return是每组每年对应的平均月收益,如何生成新的一组变量,使其等于每组下一年对应的平均月收益呢?即上述表中的mean return t+1

我写的是:
bysort deciles: egen mr = mean(r)
xtset deciles year
sort deciles year
g mr_t1 = F.mr
//using lead-operator to generate the mean return t+1 for each decile
但是输出结果是
repeated time values within panel, 估计是因为在合并两组数据前,我已经对fundamentals里的数据定义了以年为时间序列,不可以重复定义。
请问如何得到表中的mean return t+1呢?





关键词:operator Perato Opera 时间序列 Lead monthly return 数据表 close price

沙发
sushuiasushui 发表于 2016-3-1 17:39:13 来自手机
没人知道吗?求版主现身...

藤椅
sushuiasushui 发表于 2016-3-1 19:07:17 来自手机

板凳
sushuiasushui 发表于 2016-3-2 07:57:35 来自手机

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

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