楼主: zdlspace
5997 6

[程序分享] 滚动计算:rangestat vs. asrol 你更喜欢哪一个? [推广有奖]

  • 1关注
  • 83粉丝

已卖:1037份资源

学科带头人

93%

还不是VIP/贵宾

-

威望
2
论坛币
5234 个
通用积分
8133.7812
学术水平
520 点
热心指数
536 点
信用等级
509 点
经验
52340 点
帖子
1681
精华
0
在线时间
2717 小时
注册时间
2013-7-21
最后登录
2025-11-22

楼主
zdlspace 学生认证  发表于 2021-1-26 15:20:37 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
在处理滚动计算问题时,最常用的两个命令是rangestat和asrol,事实上在今天之前,我很少用asrol,用rangestat命令比较多。因为一直以来,asrol滚动窗口期不够灵活,只能输入滚动多少期,如win(year 5)表示滚动五期。但就在今天2021.1.26日,asrol的作者Attaullah Shah更新了最新版本Version 5.2,自此asrol也实现了像rangestat一样的灵活滚动期。但是asrol和rangestat命令还是有细微差别。下面来比较一下两者的区别:
  1. net install asrol, from(http://fintechprofessor.com) replace   //安装最新版asrol
复制代码


  1.     webuse grunfeld,clear
  2.     bys company: asrol invest, stat(mean) win(year -4 0)
  3.     rangestat (mean) invest,by(company) interval(year,-4,0)
  4.     list company year invest invest_mean4 invest_mean in 1/10,sepby(year) noobs
  5.          +-------------------------------------------------+
  6.   | company   year   invest   invest_~4   invest_~n |
  7.   |-------------------------------------------------|
  8.   |       1   1935    317.6   317.60001   317.60001 |
  9.   |-------------------------------------------------|
  10.   |       1   1936    391.8       354.7       354.7 |
  11.   |-------------------------------------------------|
  12.   |       1   1937    410.6   373.33333   373.33333 |
  13.   |-------------------------------------------------|
  14.   |       1   1938    257.7     344.425     344.425 |
  15.   |-------------------------------------------------|
  16.   |       1   1939    330.8     347.725       341.7 |
  17.   |-------------------------------------------------|
  18.   |       1   1940    461.2     365.075      370.42 |
  19.   |-------------------------------------------------|
  20.   |       1   1941      512     390.425      394.46 |
  21.   |-------------------------------------------------|
  22.   |       1   1942      448         438      401.94 |
  23.   |-------------------------------------------------|
  24.   |       1   1943    499.6       480.2      450.32 |
  25.   |-------------------------------------------------|
  26.   |       1   1944    547.5     501.775      493.66 |
  27.   +-------------------------------------------------+
复制代码

可以发现如果对于两个命令,你输入相同的窗口期,interval(year,-4,0)以及win(year -4 0),结果是不一样的,asrol的作者说他们是把当期作为-1期,所以他们的-4期相当于rangestat 的-3期,所以如果你要得到与rangestat一样的结果,你的窗口期左端点永远要比rangestat大一期。实际上我感觉rangestat的窗口期定义更符合我们的直觉,滞后1期就是-1,滞后2期就是-2。

  1.     webuse grunfeld,clear
  2.     bys company: asrol invest, stat(mean) win(year -4 0)
  3.     rangestat (mean) invest,by(company) interval(year,-3,0)
  4.     list company year invest invest_mean4 invest_mean in 1/10,sepby(year) noobs
  5.   +-------------------------------------------------+
  6.   | company   year   invest   invest_~4   invest_~n |
  7.   |-------------------------------------------------|
  8.   |       1   1935    317.6   317.60001   317.60001 |
  9.   |-------------------------------------------------|
  10.   |       1   1936    391.8       354.7       354.7 |
  11.   |-------------------------------------------------|
  12.   |       1   1937    410.6   373.33333   373.33333 |
  13.   |-------------------------------------------------|
  14.   |       1   1938    257.7     344.425     344.425 |
  15.   |-------------------------------------------------|
  16.   |       1   1939    330.8     347.725     347.725 |
  17.   |-------------------------------------------------|
  18.   |       1   1940    461.2     365.075     365.075 |
  19.   |-------------------------------------------------|
  20.   |       1   1941      512     390.425     390.425 |
  21.   |-------------------------------------------------|
  22.   |       1   1942      448         438         438 |
  23.   |-------------------------------------------------|
  24.   |       1   1943    499.6       480.2       480.2 |
  25.   |-------------------------------------------------|
  26.   |       1   1944    547.5     501.775     501.775 |
  27.   +-------------------------------------------------+

  28.     webuse grunfeld,clear
  29.     bys company: asrol invest, stat(mean) win(year -4 -1)
  30.     rangestat (mean) invest,by(company) interval(year,-3,-1)
  31.     list company year invest mean_4_invest invest_mean in 1/10,sepby(year) noobs
  32.         +-------------------------------------------------+
  33.   | company   year   invest   mean_4_~t   invest_~n |
  34.   |-------------------------------------------------|
  35.   |       1   1935    317.6           .           . |
  36.   |-------------------------------------------------|
  37.   |       1   1936    391.8   317.60001   317.60001 |
  38.   |-------------------------------------------------|
  39.   |       1   1937    410.6       354.7       354.7 |
  40.   |-------------------------------------------------|
  41.   |       1   1938    257.7   373.33333   373.33333 |
  42.   |-------------------------------------------------|
  43.   |       1   1939    330.8   353.36667   353.36667 |
  44.   |-------------------------------------------------|
  45.   |       1   1940    461.2   333.03334   333.03334 |
  46.   |-------------------------------------------------|
  47.   |       1   1941      512       349.9       349.9 |
  48.   |-------------------------------------------------|
  49.   |       1   1942      448   434.66667   434.66667 |
  50.   |-------------------------------------------------|
  51.   |       1   1943    499.6   473.73334   473.73334 |
  52.   |-------------------------------------------------|
  53.   |       1   1944    547.5   486.53334   486.53334 |
  54.   +-------------------------------------------------+

  55.         
  56.     webuse grunfeld,clear
  57.     bys company: asrol invest, stat(mean) win(year -4 4)
  58.     rangestat (mean) invest,by(company) interval(year,-3,4)
  59.     list company year invest mean_4_invest invest_mean in 1/10,sepby(year) noobs
  60.          +-------------------------------------------------+
  61.   | company   year   invest   mean_4_~t   invest_~n |
  62.   |-------------------------------------------------|
  63.   |       1   1935    317.6       341.7       341.7 |
  64.   |-------------------------------------------------|
  65.   |       1   1936    391.8   361.61667   361.61667 |
  66.   |-------------------------------------------------|
  67.   |       1   1937    410.6       383.1       383.1 |
  68.   |-------------------------------------------------|
  69.   |       1   1938    257.7    391.2125    391.2125 |
  70.   |-------------------------------------------------|
  71.   |       1   1939    330.8    413.9625    413.9625 |
  72.   |-------------------------------------------------|
  73.   |       1   1940    461.2     433.425     433.425 |
  74.   |-------------------------------------------------|
  75.   |       1   1941      512      452.25      452.25 |
  76.   |-------------------------------------------------|
  77.   |       1   1942      448      506.05      506.05 |
  78.   |-------------------------------------------------|
  79.   |       1   1943    499.6    535.8125    535.8125 |
  80.   |-------------------------------------------------|
  81.   |       1   1944    547.5    544.3125    544.3125 |
  82.   +-------------------------------------------------+
复制代码




关于rangestat以及asrol,你更喜欢哪一个呢?我个人更喜欢rangestat,你呢?可以在下方留言讨论哦!
二维码

扫码加我 拉你入群

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

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

关键词:range estat ASR Est ROL

已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Sunknownay + 3 + 3 + 3 鼓励积极发帖讨论

总评分: 学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

Raymond
Stata 17.0, MP(4)

沙发
黃河泉 在职认证  发表于 2021-1-26 16:32:16
Me, too (好像两个指令的作者有一些"恩怨",呵呵).

藤椅
zdlspace 学生认证  发表于 2021-1-26 16:37:11
黃河泉 发表于 2021-1-26 16:32
Me, too (好像两个指令的作者有一些"恩怨",呵呵).
黄老师,我总觉得asrol的区间设置有点怪怪的,不太符合我们的直觉,win(year -4 0)居然指的是滞后3期到当期,把我都绕晕了,还是rangestat符合我们的思维习惯,滞后多少期就填写多少期,用起来比较舒服。

板凳
jzdbez127425 发表于 2021-2-2 10:38:45
你好,请问在用日度数据算expected shortfall时怎么使用rangestat或asrol命令?我在每个月末利用过去一年的日度数据算出var,接着需要得到每个滚动回归中小于对应var的收益率均值,不知道如何增加if条件。
计算var使用的命令如下:
  1. bysort stkcd: asrol dret,  window(date1 365)  stat(median) perc( 0.01) gen(var01) min(200)
  2. bysort stkcd: asrol dret,  window(date1 365)  stat(median) perc( 0.05) gen(var05) min(200)
复制代码

报纸
zdlspace 学生认证  发表于 2021-2-2 11:53:23
听不懂你的意思,什么叫每个滚动回归中小于对应var的收益率均值

地板
jzdbez127425 发表于 2021-2-2 17:51:02
zdlspace 发表于 2021-2-2 11:53
听不懂你的意思,什么叫每个滚动回归中小于对应var的收益率均值
expeted shortfall的定义就是小于var的所有数据求均值,我希望每次都能在asreg的时候算一个均值作为条件筛选回归数据。

7
ZDXXX 发表于 2021-9-26 11:47:33
有无rangestat指令单独的呢?

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

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