SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 839|回复: 1
打印 上一主题 下一主题

多列生成新数据和多列回归!急求助!!!

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2008-1-18 16:17:35 | 只看该作者

多列生成新数据和多列回归!急求助!!!

有一个sas数据集,含50列股票价格,p1,p2…p50,每一列为50个星期的每周收盘价.pma为某综指周收盘价.rf为无风险周收益率.求:
1.        求51列收益率.r1 = log(p1) – log(lag(p1)) , r2 = log(p2) – log(lag(p2)) …… r50 = log(p50) – log(lag(p50)) ,
rma = log(pma) – log(lag(pma))
2.        由capm模型,做50个无截距的线性回归.ri – rf = Bi(rma – rf), 得到50个Bi.
3.        根据50支股票的权重x1,x2…x50.求组合贝塔B=x1*B1 + x2*B2 +… +x50*B50
我的麻烦:
做一次是没问题,做50个就不知道怎么实现比较方便了.感觉应该用循环和宏,但我用的很菜,编了两天都编不对.
在找贝塔Bi时,我不知道怎么把系数提出来.
我是个菜鸟,学sas的时间还不长,希望有人可以帮帮我,谢谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2008-1-22 11:33:55 | 只看该作者

Re: 多列生成新数据和多列回归!急求助!!!

呵呵,先写好一个,然后在程序外面套上宏
%macro aaa(begin,end);
%do i=&begin. %to &end.;

%end;
%mend aaa;


将宏中间的程序中涉及到后缀(即需要循环执行)的部分替换成&i.,调用宏

%aaa();
就可以了,如果有需要循环的字符串也可以加到宏参数里,
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-4 14:01 , Processed in 0.068032 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表