楼主: chenxiao403
8634 5

[一般统计问题] 求助,关于收益率和两年标准差的计算问题! [推广有奖]

  • 0关注
  • 15粉丝

上帝,请赐予我平静, 去接受我无法改变的。 给予我勇气, 去

教授

32%

还不是VIP/贵宾

-

威望
0
论坛币
1742 个
通用积分
2.4388
学术水平
14 点
热心指数
17 点
信用等级
8 点
经验
52517 点
帖子
499
精华
0
在线时间
2057 小时
注册时间
2013-6-18
最后登录
2024-5-12

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

这份数据的原始数据只有date ri month id

我需要计算一家公司连续两年内的收益率标准差,ri是股价

首先我需要得到公司每个月的收益率序列,我采取了如下命令

gen year=year(date)

gen time=year*100+month

xtset id time

bysort id :gen RI=(ri-l.ri)/l.ri

问题1:得到的收益率数据有大量缺漏值是由于月度数据的年份没有连接上而导致的,比如199512月的和19961月的那个缺漏值。请问应该怎么处理?我使用bysort id: gen lr=l.ri也会出现同样的问题。

10.18.1.png

问题2:我需要得到当前年度和上一年度公司月度收益的标准差,请问应该使用什么命令实现?

例如1995年需要得到1994年和1995年公司月度收益的标准差。

数据形式如下:

2.png





二维码

扫码加我 拉你入群

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

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

关键词:计算问题 收益率 标准差 bysort month 收益率 标准差

上帝,请赐予我平静, 去接受我无法改变的。 给予我勇气, 去改变我能改变的;
沙发
chenxiao403 发表于 2015-10-19 09:15:40 来自手机 |只看作者 |坛友微信交流群
问题一已经解决了……我用bysort id:gen t=_n,然后xtset id t就不会出现这种情况了,求大神回答问题二……

使用道具

藤椅
chenxiao403 发表于 2015-10-19 17:01:27 |只看作者 |坛友微信交流群
已经解决了,还是连帮主牛逼,我按照这个帖子的答复照葫芦画瓢搞定了:https://bbs.pinggu.org/thread-1290989-1-1.html
qui{
    cap drop vc*
    egen vc = sd(RI) if year>1979&year<1982,by(id) //生成1980-1981年的标准差
      replace vc =0 if year!=1981 // 当年份不为1981年时取值为0
    egen vc1= sd(RI) if year>1980&year<1983,by(id)
      replace vc1 =0 if year!=1982
    egen vc2= sd(RI) if year>1981&year<1984,by(id)
      replace vc2 =0 if year!=1983
    egen vc3 = sd(RI) if year>1982&year<1985,by(id)
      replace vc3 =0 if year!=1984
    egen vc4= sd(RI) if year>1983&year<1986,by(id)
      replace vc4 =0 if year!=1985
    egen vc5= sd(RI) if year>1984&year<1987,by(id)
      replace vc5 =0 if year!=1986
    egen vc6 = sd(RI) if year>1985&year<1988,by(id)
      replace vc6 =0 if year!=1987
    egen vc7= sd(RI) if year>1986&year<1989,by(id)
      replace vc7 =0 if year!=1988
    egen vc8= sd(RI) if year>1987&year<1990,by(id)
      replace vc8 =0 if year!=1989
    egen vc9 = sd(RI) if year>1988&year<1991,by(id)
      replace vc9 =0 if year!=1990
    egen vc10= sd(RI) if year>1989&year<1992,by(id)
      replace vc10 =0 if year!=1991
    egen vc11= sd(RI) if year>1990&year<1993,by(id)
      replace vc11 =0 if year!=1992
    egen vc12 = sd(RI) if year>1991&year<1994,by(id)
      replace vc12 =0 if year!=1993
    egen vc13= sd(RI) if year>1992&year<1995,by(id)
      replace vc13 =0 if year!=1994
    egen vc14= sd(RI) if year>1993&year<1996,by(id)
      replace vc14 =0 if year!=1995
    egen vc15 = sd(RI) if year>1994&year<1997,by(id)
      replace vc15 =0 if year!=1996
    egen vc16= sd(RI) if year>1995&year<1998,by(id)
      replace vc16 =0 if year!=1997
    egen vc17= sd(RI) if year>1996&year<1999,by(id)
      replace vc17 =0 if year!=1998
    egen vc18 = sd(RI) if year>1997&year<2000,by(id)
      replace vc18 =0 if year!=1999
    egen vc19= sd(RI) if year>1998&year<2001,by(id)
      replace vc19 =0 if year!=2000
    egen vc20= sd(RI) if year>1999&year<2002,by(id)
      replace vc20 =0 if year!=2001
    egen vc21= sd(RI) if year>2000&year<2003,by(id)
      replace vc21 =0 if year!=2002
    egen vc22= sd(RI) if year>2001&year<2004,by(id)
      replace vc22 =0 if year!=2003
    egen vc23= sd(RI) if year>2002&year<2005,by(id)
      replace vc23 =0 if year!=2004
    egen vc24= sd(RI) if year>2003&year<2006,by(id)
      replace vc24 =0 if year!=2005
    egen vc25= sd(RI) if year>2004&year<2007,by(id)
      replace vc25 =0 if year!=2006
    egen vc26= sd(RI) if year>2005&year<2008,by(id)
      replace vc26 =0 if year!=2007
    egen vc27= sd(RI) if year>2006&year<2009,by(id)
      replace vc27 =0 if year!=2008
    egen vc28= sd(RI) if year>2007&year<2010,by(id)
      replace vc28 =0 if year!=2009
    egen vc29= sd(RI) if year>2008&year<2011,by(id)
      replace vc29 =0 if year!=2010
    egen vc30= sd(RI) if year>2009&year<2012,by(id)
      replace vc30 =0 if year!=2011
    egen vc31= sd(RI) if year>2010&year<2013,by(id)
      replace vc31 =0 if year!=2012
    egen vc32= sd(RI) if year>2011&year<2014,by(id)
      replace vc32 =0 if year!=2013

    replace vc = vc+vc1+vc2+vc3+vc4+vc5+vc6+vc7+vc8+vc9+vc10+vc11 ///
        +vc12+vc13+vc14+vc15+vc16+vc17+vc18+vc19+vc20+vc21+vc22+vc23+vc24+ ///
        vc25+vc26+vc27+vc28+vc29+vc30+vc31+vc32
    drop vc1-vc32
    label var vc "RI两年标准差"
   }


bysort id: egen Tmin = min(year) //生成一个公司出现的最小年

replace vc=. if year== Tmin  //将第一年的公司收益率标准差替换为空值

使用道具

板凳
eva_1023 发表于 2019-3-21 20:53:26 |只看作者 |坛友微信交流群
year为什么要加感叹号

使用道具

报纸
黃河泉 在职认证  发表于 2019-3-22 08:15:32 |只看作者 |坛友微信交流群
chenxiao403 发表于 2015-10-19 17:01
已经解决了,还是连帮主牛逼,我按照这个帖子的答复照葫芦画瓢搞定了:https://bbs.pinggu.org/thread-12909 ...
这样做太辛苦了,呵呵!用 ssc install rangestat,一行指令足够矣!

使用道具

地板
AngeliaHan 学生认证  发表于 2020-5-22 22:22:59 |只看作者 |坛友微信交流群
eva_1023 发表于 2019-3-21 20:53
year为什么要加感叹号
!=是不等于的意思

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-13 17:44