楼主: eblog
24776 51

[stata资源分享] Stata13.0,新鲜试用中的一些小发现~ [推广有奖]

21
geniusy 发表于 2013-10-19 12:30:38
xingxf 发表于 2013-10-11 02:27
几万个event study,Stata将近1小时,不知道您用的什么版本,怎么写的程序,其实这个快的话可以几分钟。对 ...
将近1亿条数据,6万个事件,用statsby估计参数,你可以试一下,我不信可以比我的速度快多少,感觉stata只要数据量大了之后速度呈指数级下降。i5+8G+SSD,SAS的速度的确飞快。

22
蓝色 发表于 2013-10-19 12:51:35
什么软件做什么事情
各个软件有各自的擅长和优点
不要指望stata是万能的,

23
kkwei 发表于 2013-10-19 15:32:24
SAS对大数据的优化很好

24
xingxf 发表于 2013-10-20 08:45:36
geniusy 发表于 2013-10-19 12:30
将近1亿条数据,6万个事件,用statsby估计参数,你可以试一下,我不信可以比我的速度快多少,感觉stata只 ...
6万个事件就要一亿观察值,那每一个回归的观察值要1600多,你这个工作量是不小。不知道你Stata文件有多大,是否包含回归中不需要的变量。如果可以清理一下数据,并且可能分组的话,statsby估计参数还是可以提高速度的。不过6万事件1亿条数据,SAS能10来秒完成参数估算,还是挺让人震撼的。

25
xingxf 发表于 2013-10-21 00:04:01
geniusy 发表于 2013-10-19 12:30
将近1亿条数据,6万个事件,用statsby估计参数,你可以试一下,我不信可以比我的速度快多少,感觉stata只 ...
我也常做事件研究,我拿最近的研究做了一个实验,2万事件,分别用market model,Fama-French 3-factor model, Fame-French 4-factor model, 估算模型参数,估算周期[-365,-28],也就是说大概6万多个回归,用statsby估算参数,一开始不做数据清理和分组,程序运行时间约40分钟。经过程序优化,对数据进行清理和分组,把2万事件平均分为20组,估算6万多个回归,总耗时压缩在8分以内。我觉得这个结果还是很理想的。当然,比起您说的SAS速度飞快,还是有差距(不过10秒计算6万回归我还是觉得不可思议)。我想SAS快肯定是建立在您SSD硬盘的基础上的,不过,SAS连续读写硬盘的工作方式,对SSD的伤害恐怕还是比较大的。

26
geniusy 发表于 2013-11-10 15:35:42
xingxf 发表于 2013-10-21 00:04
我也常做事件研究,我拿最近的研究做了一个实验,2万事件,分别用market model,Fama-French 3-factor mo ...
我表述有些问题,大概6万个事件,joinby过后才有将近1亿条数据(joinby的时候将事件按年分组然后append的,不然8G内存也会爆),估算三因子模型参数的时候只保留了(-240,-11)天的数据,大概1400万条。只保留了必须的变量(stkcd date ret rmrf smb hml day),stkcd+date唯一识别一个事件,在stata里面这个数据文件将近1G。SAS+SSD硬盘速度的确快,我电脑上2块SSD,系统和SAS的临时文件一块,数据文件另外一块,用了3个月系统盘写入才5T左右,一块128G的MLC SSD寿命50T+没问题的。

27
xingxf 发表于 2013-11-11 07:18:55
geniusy 发表于 2013-11-10 15:35
我表述有些问题,大概6万个事件,joinby过后才有将近1亿条数据(joinby的时候将事件按年分组然后append的 ...
你这个数据量其实还没没我那个大,每个事件的估算周期也没我那个长。你用个循环把6万事件拆分成60个dta文件,分别用statsby进行回归,然后用循环再把statsby生成的文件合并,这样一整套程序运行时间8分钟以内没问题。Stata是把所有数据读到内存里运算,你6万个事件,带着回归肯定慢,把文件拆分,速度马上上来。SAS快是因为对硬盘持续读取,实际上是对一小部分数据进行回归,就和用stata先拆分的效果似的,你的速度快是因为用SSD,要是机械硬盘,速度可没那么快。所以这个真不是软件的问题,程序都是可以优化的。不过还是好奇,你这个工作量,用你的机器配置,跑下来的话多长时间呢?

28
clipsy_gist 发表于 2013-11-11 10:44:41
先用stata12吧
已经足够我们用来。

29
geniusy 发表于 2013-11-11 13:43:51
xingxf 发表于 2013-11-11 07:18
你这个数据量其实还没没我那个大,每个事件的估算周期也没我那个长。你用个循环把6万事件拆分成60个dta文 ...
主要是文件比较大,所以跑一遍将近1小时吧(其中求FF三因子系数使用sas跑的),耗时最长的是求day变量的时候,这个我试过用sas做,速度快不了太多

30
无他 发表于 2013-11-11 14:41:38
12.1的飘过(非正版)
大方无隅

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

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