楼主: lice94
6477 12

[面板数据求助] 用面板数据计算累计收益率的时候,如何略过非交易日的影响? [推广有奖]

  • 0关注
  • 2粉丝

本科生

66%

还不是VIP/贵宾

-

威望
0
论坛币
2 个
通用积分
1.0153
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
945 点
帖子
67
精华
0
在线时间
89 小时
注册时间
2018-3-19
最后登录
2019-4-16

楼主
lice94 学生认证  发表于 2018-6-3 21:37:18 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
比如说我想要计算某日前后3天的累计收益率:[-1,1];使用的程序是这样的:
xtset id date
gen ar=(f1.pr-l1.pr)/l1.pr
pr是股票价格。
但问题是,使用这个程序,遇到非交易日,会认为数据缺失。
比如某年1月8~9号是非交易日,这样1月7日的累计收益计算应当将1月6日和1月10日视作前后3天的事件窗,但是上面的程序会认为1月7日后面一天的数据缺失,从而无法计算7日的累计收益。
请问这种情况应当如何解决?
二维码

扫码加我 拉你入群

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

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

关键词:累计收益率 累计收益 数据缺失 如何解决 股票价格

沙发
黃河泉 在职认证  发表于 2018-6-4 06:18:09
你若要问程序,永远附上资料;若要附上资料,永远用 dataex 印出资料;先 ssc install dataex (并见说明),将原始 Stata 资料中具有”代表性”的一部分资料列出,以供有意回答者实验之用,并能提供具体操作指令。并请参考 http://www.jianshu.com/p/9870080fe769,  https://bbs.pinggu.org/thread-5048204-1-1.html, 与 https://bbs.pinggu.org/thread-5917273-1-1.html

藤椅
lice94 学生认证  发表于 2018-6-4 07:44:03
黃河泉 发表于 2018-6-4 06:18
你若要问程序,永远附上资料;若要附上资料,永远用 dataex 印出资料;先 ssc install dataex (并见说明), ...
id           date             sp
.................
001        20100106      2
001        20100107      2.1
001        20100110      2.3
.................
002        20100106      4.1
002        20100107      4.2
002        20100110      4.3
.................
如上所示面板数据,sp是当日收盘价,其中1月8日、9日不开盘。
xtset id date
增加一个累计收益ar,程序为:
gen ar=(f1.sp-l1.sp)/l1.sp
计算的是事件区间为[-1,1]的累计收益率,但是这样一来,程序会默认一月八日、一月九日为缺失值,从而导致7日和10日的ar值缺失。
请问这样一来,若想要得到忽略非交易日的ar值,应当如何编程呢?

板凳
黃河泉 在职认证  发表于 2018-6-4 08:30:51
lice94 发表于 2018-6-4 07:44
id           date             sp
.................
001        20100106      2
请按照我上面建议!

报纸
lice94 学生认证  发表于 2018-6-4 10:39:07
黃河泉 发表于 2018-6-4 08:30
请按照我上面建议!
----------------------- copy starting from the next line -----------------------
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input long id float(date sp ar)
  4. 1 16440 6.52            .
  5. 1 16441 6.46            0
  6. 1 16442 6.52   .007739968
  7. 1 16443 6.51            .
  8. 1 16446 6.59            .
  9. 1 16447    .  -.009104695
  10. 1 16448 6.53            .
  11. 1 16449 6.57  -.004594213
  12. 1 16450  6.5            .
  13. 1 16453 6.25            .
  14. 1 16454 6.22  -.014400024
  15. 1 16455 6.16   -.03376199
  16. 1 16456 6.01    .04058442
  17. 1 16457 6.41            .
  18. 1 16460 6.47            .
  19. 1 16461 6.31  -.026275055
  20. 1 16462  6.3  -.026941376
  21. 1 16463 6.14   -.02063494
  22. 1 16464 6.17            .
  23. 1 16467 6.06            .
  24. 1 16468 6.09    .05610564
  25. 1 16469  6.4    .03612476
  26. 1 16470 6.31    .03124997
  27. 1 16471  6.6            .
  28. 1 16483 6.59            .
  29. 1 16484 6.56   .001517413
  30. 1 16485  6.6            .
  31. 1 16488 6.71            .
  32. 1 16489 6.74  -.005961246
  33. 1 16490 6.67  -.016320424
  34. 1 16491 6.63 -.0044977823
  35. 1 16492 6.64            .
  36. 1 16495 6.48            .
  37. 1 16496  6.4  -.015432084
  38. 1 16497 6.38   .006249994
  39. 1 16498 6.44  -.003134793
  40. 1 16499 6.36            .
  41. 1 16502 6.24            .
  42. 1 16503 6.35   .008012852
  43. 1 16504 6.29   -.02992127
  44. 1 16505 6.16   -.02702704
  45. 1 16506 6.12            .
  46. 1 16509 6.08            .
  47. 1 16510 5.99   -.02467107
  48. 1 16511 5.93  -.003338895
  49. 1 16512 5.97            0
  50. 1 16513 5.93            .
  51. 1 16516 5.94            .
  52. 1 16517 5.54   -.09764308
  53. 1 16518 5.36  -.025270734
  54. 1 16519  5.4    .00746268
  55. 1 16520  5.4            .
  56. 1 16523  5.3            .
  57. 1 16524  5.3    -.0377359
  58. 1 16525  5.1   -.01698116
  59. 1 16526 5.21    .09803922
  60. 1 16527  5.6            .
  61. 1 16530 5.42            .
  62. 1 16531 5.49    .03505536
  63. 1 16532 5.61    .12386163
  64. 1 16533 6.17    .21033865
  65. 1 16534 6.79            .
  66. 1 16537 6.94            .
  67. 1 16538 6.64  -.008645525
  68. 1 16539 6.88   -.00602409
  69. 1 16540  6.6  -.036337208
  70. 1 16541 6.63            .
  71. 1 16544 6.43            .
  72. 1 16545 6.75   .031104244
  73. 1 16546 6.63            .
  74. 1 16547    .   -.09803922
  75. 1 16548 5.98            .
  76. 1 16551 5.79            .
  77. 1 16552 6.05   -.01208984
  78. 1 16553 5.72  -.028099185
  79. 1 16554 5.88     .0839161
  80. 1 16555  6.2            .
  81. 1 16565 6.09            .
  82. 1 16566 6.31   .016420346
  83. 1 16567 6.19  -.019017415
  84. 1 16568 6.19  -.027463663
  85. 1 16569 6.02            .
  86. 1 16572  5.9            .
  87. 1 16573 6.06    .04067793
  88. 1 16574 6.14    .02310229
  89. 1 16575  6.2    .01140068
  90. 1 16576 6.21            .
  91. 1 16579 5.96            .
  92. 1 16580 6.16   .035234906
  93. 1 16581 6.17   -.00324675
  94. 1 16582 6.14  -.003241488
  95. 1 16583 6.15            .
  96. 1 16586  6.1            .
  97. 1 16587 6.01   -.02459018
  98. 1 16588 5.95   -.03826955
  99. 1 16589 5.78   -.02016805
  100. 1 16590 5.83            .
  101. 1 16593 5.94            .
  102. 1 16594 5.94    .09259254
  103. 1 16595 6.49    .09090909
  104. end
  105. format %td date
复制代码

------------------ copy up to and including the previous line ------------------
上面是我截取下来的一小段数据,date是日度数据,sp是股价,ar是事件窗为[-1,1]的累计收益,有许多缺失值。

地板
lice94 学生认证  发表于 2018-6-4 10:41:46
----------------------- copy starting from the next line -----------------------
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input long id float(date sp ar)
  4. 1 16440 6.52            .
  5. 1 16441 6.46            0
  6. 1 16442 6.52   .007739968
  7. 1 16443 6.51            .
  8. 1 16446 6.59            .
  9. 1 16447    .  -.009104695
  10. 1 16448 6.53            .
  11. 1 16449 6.57  -.004594213
  12. 1 16450  6.5            .
  13. 1 16453 6.25            .
  14. 1 16454 6.22  -.014400024
  15. 1 16455 6.16   -.03376199
  16. 1 16456 6.01    .04058442
  17. 1 16457 6.41            .
  18. 1 16460 6.47            .
  19. 1 16461 6.31  -.026275055
  20. 1 16462  6.3  -.026941376
  21. 1 16463 6.14   -.02063494
  22. 1 16464 6.17            .
  23. 1 16467 6.06            .
  24. 1 16468 6.09    .05610564
  25. 1 16469  6.4    .03612476
  26. 1 16470 6.31    .03124997
  27. 1 16471  6.6            .
  28. 1 16483 6.59            .
  29. 1 16484 6.56   .001517413
  30. 1 16485  6.6            .
  31. 1 16488 6.71            .
  32. 1 16489 6.74  -.005961246
  33. 1 16490 6.67  -.016320424
  34. 1 16491 6.63 -.0044977823
  35. 1 16492 6.64            .
  36. 1 16495 6.48            .
  37. 1 16496  6.4  -.015432084
  38. 1 16497 6.38   .006249994
  39. 1 16498 6.44  -.003134793
  40. 1 16499 6.36            .
  41. 1 16502 6.24            .
  42. 1 16503 6.35   .008012852
  43. 1 16504 6.29   -.02992127
  44. 1 16505 6.16   -.02702704
  45. 1 16506 6.12            .
  46. 1 16509 6.08            .
  47. 1 16510 5.99   -.02467107
  48. 1 16511 5.93  -.003338895
  49. 1 16512 5.97            0
  50. 1 16513 5.93            .
  51. 1 16516 5.94            .
  52. 1 16517 5.54   -.09764308
  53. 1 16518 5.36  -.025270734
  54. 1 16519  5.4    .00746268
  55. 1 16520  5.4            .
  56. 1 16523  5.3            .
  57. 1 16524  5.3    -.0377359
  58. 1 16525  5.1   -.01698116
  59. 1 16526 5.21    .09803922
  60. 1 16527  5.6            .
  61. 1 16530 5.42            .
  62. 1 16531 5.49    .03505536
  63. 1 16532 5.61    .12386163
  64. 1 16533 6.17    .21033865
  65. 1 16534 6.79            .
  66. 1 16537 6.94            .
  67. 1 16538 6.64  -.008645525
  68. 1 16539 6.88   -.00602409
  69. 1 16540  6.6  -.036337208
  70. 1 16541 6.63            .
  71. 1 16544 6.43            .
  72. 1 16545 6.75   .031104244
  73. 1 16546 6.63            .
  74. 1 16547    .   -.09803922
  75. 1 16548 5.98            .
  76. 1 16551 5.79            .
  77. 1 16552 6.05   -.01208984
  78. 1 16553 5.72  -.028099185
  79. 1 16554 5.88     .0839161
  80. 1 16555  6.2            .
  81. 1 16565 6.09            .
  82. 1 16566 6.31   .016420346
  83. 1 16567 6.19  -.019017415
  84. 1 16568 6.19  -.027463663
  85. 1 16569 6.02            .
  86. 1 16572  5.9            .
  87. 1 16573 6.06    .04067793
  88. 1 16574 6.14    .02310229
  89. 1 16575  6.2    .01140068
  90. 1 16576 6.21            .
  91. 1 16579 5.96            .
  92. 1 16580 6.16   .035234906
  93. 1 16581 6.17   -.00324675
  94. 1 16582 6.14  -.003241488
  95. 1 16583 6.15            .
  96. 1 16586  6.1            .
  97. 1 16587 6.01   -.02459018
  98. 1 16588 5.95   -.03826955
  99. 1 16589 5.78   -.02016805
  100. 1 16590 5.83            .
  101. 1 16593 5.94            .
  102. 1 16594 5.94    .09259254
  103. 1 16595 6.49    .09090909
  104. end
  105. format %td date
复制代码

------------------ copy up to and including the previous line ------------------

7
黃河泉 在职认证  发表于 2018-6-4 10:46:15
lice94 发表于 2018-6-4 10:39
----------------------- copy starting from the next line -----------------------
------------------ ...
1. 谢谢。 2. 几个问题要澄清一下: ar 若为 . 表示其为非交易日(所以我可以将他们先 drop 掉吗?)你举的例子,1/7 并无交易,为何要计算累计收益?

8
lice94 学生认证  发表于 2018-6-4 11:00:26
黃河泉 发表于 2018-6-4 10:46
1. 谢谢。 2. 几个问题要澄清一下: ar 若为 . 表示其为非交易日(所以我可以将他们先 drop 掉吗?)你举 ...
1.谢谢黄老师。
2.sp是股价;ar是我想要计算值,表示某日前后3天的累计收益,时间区间为[-1,1];之所以为.,基本是因为当日的前一天或后一天为非交易日,而我使用的程序是:
gen ar=(f1.sp-l1.sp)/l1.sp
本意是想要得到前后3天的交易日的累计收益,但因为面板数据不会主动分辨哪些是非交易日,会把非交易日也算进来,导致错误地认为sp在某日缺失(实际上那一天是非交易日),从而造成了ar的缺失

9
lice94 学生认证  发表于 2018-6-4 11:00:53
黃河泉 发表于 2018-6-4 10:46
1. 谢谢。 2. 几个问题要澄清一下: ar 若为 . 表示其为非交易日(所以我可以将他们先 drop 掉吗?)你举 ...
表达能力有限,不知这样说您能否明白

10
黃河泉 在职认证  发表于 2018-6-4 11:19:10
lice94 发表于 2018-6-4 11:00
1.谢谢黄老师。
2.sp是股价;ar是我想要计算值,表示某日前后3天的累计收益,时间区间为[-1,1];之所以为 ...
请先安装 ssc install rangestat, 并试试
  1. drop if sp == .
  2. bys id (date): gen t = _n

  3. xtset id t

  4. gen lsp = log(sp)
  5. gen r = 100*D.lsp  
  6. rangestat (sum) r (count) r, interval(t -1 1) by(id)
  7. * replace r_sum = . if r_count < 3
复制代码
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
lice94 + 1 + 1 + 1 + 1 精彩帖子

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

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-31 09:56