SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1818|回复: 12
打印 上一主题 下一主题

关于求standard deviation的问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2009-12-15 17:22:49 | 只看该作者

关于求standard deviation的问题

我有一个dataset。
其中variable有:com,date,ret
对应每一个com,有很多天的ret数据,我想求对应每个com每一天的前180天的ret的standard deviation。
也就是com date ret std,这个std是这个date前180个数据的standard deviation。

请指教怎么做比较快捷?

谢谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2009-12-15 21:52:54 | 只看该作者

Re: 关于求standard deviation的问题

我记得曾经有人问过很类似的问题,大概是30天作一次总结。不妨翻看一下。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2009-12-16 09:52:40 | 只看该作者

Re: 关于求standard deviation的问题

可以用SQL   也可以从STDV的数学公式将D转换成期望E的组合 来进行计算
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2009-12-16 10:27:32 | 只看该作者

Re: 关于求standard deviation的问题

我也记得有人问过,不过我search了半天没找到。

因为数据量比较多,1000左右com,date也有7年的,我自己写了一个macro貌似不对,花了30分钟才run了十个,结果还很奇怪。想问问大虾们有什么好的算法。

[quote="jingju11":1bjqvyqm]我记得曾经有人问过很类似的问题,大概是30天作一次总结。不妨翻看一下。[/quote:1bjqvyqm]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2009-12-16 10:29:59 | 只看该作者

Re: 关于求standard deviation的问题

举个例子?

谢谢!

[quote="damashaladi":31rqzpof]可以用SQL   也可以从STDV的数学公式将D转换成期望E的组合 来进行计算[/quote:31rqzpof]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2009-12-16 10:54:11 | 只看该作者

Re: 关于求standard deviation的问题

参见jingju11的回帖
[url:12twduhx]http://www.mysas.net/forum/viewtopic.php?f=4&t=5835&p=19701#p19680[/url:12twduhx]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2009-12-16 11:03:35 | 只看该作者

Re: 关于求standard deviation的问题

就是我问的,JINGJU用数组的方法很好恨强大,或者用期望的公式也可以:
[code:gvm8hjok]x+ret**2;
y+ret;
stdv180= sqrt ( (x - lag181( t1 ) - (y -lag181y ) ** 2 / 181 ) / 180));[/code:gvm8hjok]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
8#
 楼主| 发表于 2009-12-16 11:42:04 | 只看该作者

Re: 关于求standard deviation的问题

大家看看我的程序,给提点意见,我总共有50万个observations,如何更有效率一些。
简要说明一下,nacdslink2是我的data,crsp.dsf是服务器上股票数据,我的data日期是不连续的,我只要我的data中日期的前180天的股票ret的standard deviation。
这个程序里面我用的是我的日期前的180天,实际上我想要的是我的日期前在crsp里的180个trading day,也就是180个数据,不过我没想出怎么写好。
大家给看看什么方法更有效率一些?谢谢!
[code:3k3w94yq]
libname d '/home/dengzi';
libname a "/sastemp12/dengzi";

data stock.volatility;
run;

%macro volatility;
%do i = 1 %to 504089;
%put &i;

data a.temp1;
        set d.nacdslink2;
        if _N_=&i;
run;

proc sql;
        create table a.temp2 as
        select a.*, b.date, abs(b.prc) as price, b.ret
        from a.temp1 a, crsp.dsf b
        where a.permno=b.permno and b.date<a.date and b.date>=intnx('day', a.date, -180) and abs(prc)>0
        order by permno, date;
quit;

proc means data=a.temp2 noprint;
        var ret;
        output out=a.temp3 std=volatility;
run;

data a.temp3;
        merge a.temp1 a.temp3(keep=volatility);
run;

data d.volatility;
        set d.volatility a.temp3;
run;

%end;
%mend;
%volatility;
run;

[/code:3k3w94yq]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
9#
 楼主| 发表于 2009-12-16 13:44:17 | 只看该作者

Re: 关于求standard deviation的问题

我的老同学附体的凳子,使用宏基本上是最差答案。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
10#
 楼主| 发表于 2009-12-16 13:55:37 | 只看该作者

Re: 关于求standard deviation的问题

[quote="死猪头":32jcgpah]我的老同学附体的凳子,使用宏基本上是最差答案。以下例子为求前180个全国性交易日汇报的另外在IML里应该能写出更清楚的程式,但窃以为会慢一些。唉,说来说去你只是个假凳子。[/quote:32jcgpah]

咳咳,谢谢哈,原来这个id也这么popular。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-6 06:27 , Processed in 0.071889 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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