全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
24899 22
2015-03-04
悬赏 30 个论坛币 已解决
数据处理中遇到一个难题。是这样子的,我需要计算年度股票收益率的值,要用每年5月开始的(1+月股票收益率连乘)一直到次年的4月来计算年度股票收益率,不知道应该用什么循环语句或者是直接来做这个,还有一个问题是,下载的数据并不是每年都能保证是12个月都有的,是不是先要剔除不满足12个月数据的公司,要不然循环过程是不是会出问题,那如何剔除不满足十二个月的公司呢
数据如下:
stkcd月股票收益率yearmonth

1

0.043142

2001

5

1

-0.054938

2001

6

1

-0.096669

2001

7

1

-0.080983

2001

8

1

0.003147

2001

9

1

0.083137

2001

10

1

-0.02824

2001

11

1

-0.087183

2001

12

1

-0.140408

2002

1

1

-0.036087

2002

2

1

0.0867

2002

3

1

0.042611

2002

4

1

-0.029565

2002

5

1

0.344086

2002

6

1

0.010667

2002

7

1

0.025983

2002

8

1

-0.105844

2002

9

1

-0.05955

2002

10

1

-0.065637

2002

11









最佳答案

yangyuzhou 查看完整内容

首先要剔除可能出现的缺月份现象,除去最初的一年只有8个月和最后的一年只有4个月之外,其他的每年应该都有12个月,那么闲对这部分应该12个月都存在的年份进行筛选: 因为12个月份数字相加是78,这样便看出哪些年出了问题。然后删除掉这些年相关的月份。记得从上一个5月开始删除。 而最开始的8个月和最后的4个月肉眼之间可以筛选。 然后求年收益率,设月收益率的变量名为month_re 按照月收益率对年收益率的求法,我认为最后年收 ...
二维码

扫码加我 拉你入群

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

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

全部回复
2015-3-4 21:26:09
首先要剔除可能出现的缺月份现象,除去最初的一年只有8个月和最后的一年只有4个月之外,其他的每年应该都有12个月,那么闲对这部分应该12个月都存在的年份进行筛选:
复制代码
因为12个月份数字相加是78,这样便看出哪些年出了问题。然后删除掉这些年相关的月份。记得从上一个5月开始删除。
而最开始的8个月和最后的4个月肉眼之间可以筛选。
然后求年收益率,设月收益率的变量名为month_re
复制代码
按照月收益率对年收益率的求法,我认为最后年收益率还要减去1,如果不是这样你再将最后一步调整一下吧。


二维码

扫码加我 拉你入群

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

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

2015-3-5 10:59:34
yangyuzhou 发表于 2015-3-5 01:22
首先要剔除可能出现的缺月份现象,除去最初的一年只有8个月和最后的一年只有4个月之外,其他的每年应该都有 ...
你好,谢谢你的热心解答呢,我还有点不是太清楚的是,如果某一个ID2003不满足12月,那要如何剔除从去年五月份开始的数据呢
二维码

扫码加我 拉你入群

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

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

2015-3-5 11:03:25
索索~ 发表于 2015-3-5 10:59
你好,谢谢你的热心解答呢,我还有点不是太清楚的是,如果某一个ID2003不满足12月,那要如何剔除从去年五 ...
我的笨办法就是既然已经知道哪一年出了问题,直接在数据表中找到对应的行数删除掉就行了
二维码

扫码加我 拉你入群

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

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

2015-3-5 12:12:15
yangyuzhou 发表于 2015-3-5 11:03
我的笨办法就是既然已经知道哪一年出了问题,直接在数据表中找到对应的行数删除掉就行了
倒是可以,就是数据挺多的,这样做也可以,希望能有大神给出一个直接的循环语句呢
二维码

扫码加我 拉你入群

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

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

2017-6-11 15:46:57
yangyuzhou 发表于 2015-3-4 21:26
首先要剔除可能出现的缺月份现象,除去最初的一年只有8个月和最后的一年只有4个月之外,其他的每年应该都有 ...
你好,

by id , sort : egen lnyear_re = sum(lnmonth_re)
gen year_re = exp(lnyear_re) - 1
算的是从1月到12月,并不是今年5月到明年4月,不知道是否是我理解错了
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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