楼主: zs694461601
4557 8

[原创博文] sas分组计算的问题 [推广有奖]

  • 4关注
  • 11粉丝

已卖:2378份资源

副教授

70%

还不是VIP/贵宾

-

威望
0
论坛币
11884 个
通用积分
15.2258
学术水平
15 点
热心指数
23 点
信用等级
11 点
经验
86183 点
帖子
350
精华
0
在线时间
1359 小时
注册时间
2010-1-4
最后登录
2022-1-27

楼主
zs694461601 发表于 2012-3-16 11:00:21 |AI写论文
100论坛币
以下是部分数据示例,大致格式是这样的:

Permno

group

weight1

weight2

return1

return2

return3

return4

10001

1

0.1

0.2

0.2

0.18

0.28

0.18

10002

1

0.3

0.4

0.11

0.21

0.22

0.12

10003

1

0.2

0.3

0.29

0.12

0.22

0.22

10004

1

0.4

0.1

0.17

0.02

0.09

0.231

10034

2

0.27

0.02

0.17

0.138

0.238

0.181

10045

2

0.26

0.18

0.28

0.241

0.23

0.123

10039

2

0.26

0.3

0.12

0.112

0.232

0.224

10029

2

0.16

0.2

0.12

0.012

0.049

0.234

10030

2

0.05

0.3

0.21

0.28

0.18

0.2

10020

3

0.35

0.34

0.01

0.22

0.12

0.1

10239

3

0.25

0.33

0.12

0.22

0.22

0.2

10298

3

0.4

0.33

0.13

0.1        

0.22

0.23

数据量大,以上是表格的一部分

期望得到的结果:
根据group分的三组,weight1和weight2是权重,return1到return4是收益,分别计算每组的加权收益的和,即每组使用weight1可以得到四个加权收益的和,使用weight2也可得到四个加权收益的和。同时还需要得到每组等权收益的和。
按照以上的方法我需要每组输出12个值。该怎么编程呢?
谢谢。

最佳答案

xinxin880603 查看完整内容

proc means data=sasuser.hlnewzhret1926; var _19270730 _19270831 _19270930 _19271031 _19271130 _19271231 _19280131 _19280229 _19280331 _19280430 _19280531 _19280630 syret19277 mvret19277 syret19278 mvret19278 syret19279 mvret19279 syret192710 mvret192710 syret192711 mvret192711 syret192712 mvret192712 syret192801 mvret192801 syret192802 mvret192802 syret192803 mvret192803 syret192804 mvret1928 ...
关键词:RETURN Weight Eight weigh Group

回帖推荐

xinxin880603 发表于8楼  查看完整内容

proc means data=sasuser.hlnewzhret1926; var _19270730 _19270831 _19270930 _19271031 _19271130 _19271231 _19280131 _19280229 _19280331 _19280430 _19280531 _19280630 syret19277 mvret19277 syret19278 mvret19278 syret19279 mvret19279 syret192710 mvret192710 syret192711 mvret192711 syret192712 mvret192712 syret192801 mvret192801 syret192802 mvret192802 syret192803 mvret192803 syret192804 mvret1928 ...
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
qiuye1987116 + 1 + 1 + 1 good
xinxin880603 + 1 + 1 + 1 观点有启发

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

沙发
xinxin880603 发表于 2012-3-16 11:00:22
proc means data=sasuser.hlnewzhret1926;
    var _19270730 _19270831 _19270930 _19271031 _19271130 _19271231 _19280131 _19280229 _19280331 _19280430 _19280531 _19280630 syret19277 mvret19277 syret19278 mvret19278 syret19279 mvret19279 syret192710 mvret192710 syret192711 mvret192711 syret192712 mvret192712 syret192801 mvret192801 syret192802 mvret192802 syret192803 mvret192803 syret192804 mvret192804 syret192805 mvret192805 syret192806 mvret192806;
        by group;
        output out=sasuser.hlmonzhreturn1926 mean= sum=/autoname;
        run;

藤椅
zs694461601 发表于 2012-3-16 11:04:12
有描述的不清楚的大家说一下,
只有艺术和科学能提高人,直到神圣的高度
http://blog.csdn.net/QUANT_zhang

板凳
zs694461601 发表于 2012-3-16 11:19:03
求助啊,帮帮我,感激不尽啊,
只有艺术和科学能提高人,直到神圣的高度
http://blog.csdn.net/QUANT_zhang

报纸
baoaibaobao 发表于 2012-3-16 11:41:44
我不学经济,对加权收益不知道理解的是否正确,你试试下面的代码吧!weight3是平均加权!
  1. data have;
  2. input Permno group  weight1 weight2  return1  return2   return3  return4;
  3. cards;
  4. 10001        1        0.1        0.2        0.2        0.18        0.28        0.18
  5. 10002        1        0.3        0.4        0.11        0.21        0.22        0.12
  6. 10003        1        0.2        0.3        0.29        0.12        0.22        0.22
  7. 10004        1        0.4        0.1        0.17        0.02        0.09        0.231
  8. 10034        2        0.27        0.02        0.17        0.138        0.238        0.181
  9. 10045        2        0.26        0.18        0.28        0.241        0.23        0.123
  10. 10039        2        0.26        0.3        0.12        0.112        0.232        0.224
  11. 10029        2        0.16        0.2        0.12        0.012        0.049        0.234
  12. 10030        2        0.05        0.3        0.21        0.28        0.18        0.2
  13. 10020        3        0.35        0.34        0.01        0.22        0.12        0.1
  14. 10239        3        0.25        0.33        0.12        0.22        0.22        0.2
  15. 10298        3        0.4        0.33        0.13        0.1 0.22        0.23
  16. ;
  17. %macro want;
  18. proc sql;
  19.      create table have1 as
  20.           select *,1/count(group) as weight3
  21.           from have group by group;
  22.      create table want as
  23.           select distinct group
  24.                %do i=1 %to 3;
  25.                     %do ii=1 %to 4;
  26.                          ,sum(weight&i*return&ii) as w&i.r&ii. format=6.4
  27.                    %end;
  28.                %end;
  29.           from have1 group by group;
  30. quit;
  31. %mend;
  32. %want;
复制代码


地板
zs694461601 发表于 2012-3-16 20:06:43
baoaibaobao 发表于 2012-3-16 11:41
我不学经济,对加权收益不知道理解的是否正确,你试试下面的代码吧!weight3是平均加权!
加权的变量名在我的表里是weightreturn和weightmv,里面没有数字。
另外,每组加权收益的和是组内权重与收益的乘积的和,
只有艺术和科学能提高人,直到神圣的高度
http://blog.csdn.net/QUANT_zhang

7
zs694461601 发表于 2012-3-16 20:09:24
等权指组内所有的股票权重相等,等权是计算组内所有股票的平均收益
只有艺术和科学能提高人,直到神圣的高度
http://blog.csdn.net/QUANT_zhang

8
zs694461601 发表于 2012-3-16 20:10:16
baoaibaobao 发表于 2012-3-16 11:41
我不学经济,对加权收益不知道理解的是否正确,你试试下面的代码吧!weight3是平均加权!
能不能弄个data步,谢谢,
只有艺术和科学能提高人,直到神圣的高度
http://blog.csdn.net/QUANT_zhang

9
zs694461601 发表于 2012-3-17 10:22:35
xinxin880603 发表于 2012-3-17 10:20
proc means data=sasuser.hlnewzhret1926;
    var _19270730 _19270831 _19270930 _19271031 _19271130 _ ...
经过交流,问题已解决,谢谢了
只有艺术和科学能提高人,直到神圣的高度
http://blog.csdn.net/QUANT_zhang

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 16:01