楼主: 夏目贵志
12490 11

[学习心得] 今天忙了一整天,发现Stata速度实在是慢的夸张(但是还是轻松甩SAS无数条街) [推广有奖]

贵宾

学科带头人

96%

还不是VIP/贵宾

-

威望
1
论坛币
238640 个
通用积分
17413.5814
学术水平
851 点
热心指数
971 点
信用等级
711 点
经验
759412 点
帖子
4029
精华
1
在线时间
793 小时
注册时间
2012-7-15
最后登录
2017-9-16

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
今天在做一个项目,涉及到一个算法。这个算法是我自己写的程序,用了SAS,Stata,和EViews三种语言。(以后有机会试试Matlab和R)之所以用三种语言,目的之一就是要找出速度最快的那个(当然不是唯一目的)。程序的算法要求对所有的观测值分批处理。这个并不是通过循环来分别处理每个观测值,但是大体上类似。之所以强调程序是我自己写的,是想说明程序的内容和算法等等都是一致的,并不存在在某个语言里用了速度特别慢的算法的问题。

最早在比较SAS和Stata的时候,毫无悬念的Stata完胜SAS。所以这里就不再比较了。但是程序还是可以展示一下。程序的内容只包括基本的算数运算,加减乘除乘方等,不包括矩阵运算或者回归分析。

SAS程序(63行):
注:一般来说SAS程序都比较长,但是这里利用了SAS data step processing内置的循环功能,简化了程序。在这个情况下SAS速度还是远慢于Stata让人实在是很失望。
sasprog.png

Stata程序(80行):
注:有些可换行可不换行的我用了换行,所以实际上差不多70行左右就能搞定。
stataprg.png

EViews程序(60行):
注:EViews没有Stata里的if条件,所以很多在Stata里分行写的if statement到EViews都会写成一行。实际上因为我EViews不如Stata熟悉,所以花的时间还更多。而且EViews少了一些方便的函数,比如rowmean(),很多处理需要多用很多循环。但是在这样的劣势下,EViews速度还完爆Stata,所以我才特意写了这个帖子。
eviewsprg.png

程序执行速度:
测试速度用的是225000个观测值的纯数字的数据。Stata里显示的数据大小大约15M。
上面截图展示的部分,Stata里运行需要223.81秒,EViews只要10秒!!!!!!!10秒啊!!!!!!!!!!
整个程序(包括截图没展示的部分,Stata里300行多点)Stata跑了321.15秒,EViews只要32秒啊!!!!!32秒啊!!!!!

总之呢,我想说的是,如果你有什么自定义的估计量啦,或者检验啦,或者大量的运算啊什么的,不妨试试EViews (只要你在写好程序之前不会吐血身亡的话),也许会很省时间的。EViews得语言确实还有很多可以改进的地方。但是如果你的程序可以在EViews里实现,即使用比Stata笨的方法,也有可能会快很多哦!!


二维码

扫码加我 拉你入群

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

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

关键词:Stata tata Processing Data step statement 程序 项目 左右

已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
niuniuyiwan + 100 + 5 + 5 + 5 精彩帖子
happy_287422301 + 60 + 1 + 2 对论坛有贡献

总评分: 经验 + 100  论坛币 + 60  学术水平 + 6  热心指数 + 7  信用等级 + 5   查看全部评分

本帖被以下文库推荐

沙发
andruw 在职认证  发表于 2015-9-22 02:52:17 |只看作者 |坛友微信交流群
Eviews的表现出乎意料!!!
已有 2 人评分经验 论坛币 信用等级 收起 理由
happy_287422301 + 20 鼓励积极发帖讨论
夏目贵志 + 10 + 10 + 1 鼓励积极发帖讨论

总评分: 经验 + 10  论坛币 + 30  信用等级 + 1   查看全部评分

使用道具

藤椅
夏目贵志 发表于 2015-9-22 07:06:03 |只看作者 |坛友微信交流群
andruw 发表于 2015-9-22 02:52
Eviews的表现出乎意料!!!
是啊。我就纳闷了,怎么EViews就这么快呢。。。你有类似的经历吗?

使用道具

板凳
kkwei 发表于 2015-9-22 11:48:14 |只看作者 |坛友微信交流群
应该还是编程的逻辑问题
已有 1 人评分经验 论坛币 学术水平 收起 理由
happy_287422301 + 100 + 40 + 1 分析的有道理

总评分: 经验 + 100  论坛币 + 40  学术水平 + 1   查看全部评分

使用道具

报纸
happy_287422301 在职认证  发表于 2015-9-22 12:30:25 |只看作者 |坛友微信交流群
kkwei 发表于 2015-9-22 11:48
应该还是编程的逻辑问题
对,其实我挺赞同这种观点的;至少有一定的影响

使用道具

地板
andruw 在职认证  发表于 2015-9-22 15:19:08 |只看作者 |坛友微信交流群
夏目贵志 发表于 2015-9-22 07:06
是啊。我就纳闷了,怎么EViews就这么快呢。。。你有类似的经历吗?
不太用eviews...不好说。

使用道具

7
夏目贵志 发表于 2015-9-22 20:26:40 |只看作者 |坛友微信交流群
kkwei 发表于 2015-9-22 11:48
应该还是编程的逻辑问题
一般来说也许是。但是这里三个程序都是我自己用完全一样的逻辑编写的,所以我个人很清楚这个因素并不是导致速度差别的原因。但是如果你说的是Stata公司和IHS编程逻辑的差别的话。。。恩。。。确实是的。。。

使用道具

8
18129380375 学生认证  发表于 2015-9-22 23:10:07 |只看作者 |坛友微信交流群
请不要盲目的夸张一个软件的好坏,东西在于精,而不是泛,你说的甩sas数条街这个观点,我是非常不赞同的,总的一句话,软件没有好坏之分

使用道具

9
夏目贵志 发表于 2015-9-23 04:54:01 |只看作者 |坛友微信交流群
18129380375 发表于 2015-9-22 23:10
请不要盲目的夸张一个软件的好坏,东西在于精,而不是泛,你说的甩sas数条街这个观点,我是非常不赞同的,总 ...
可能我的语言看起来比较夸张吧。但是对于我个人做过的绝大多数模型,Stata远快于SAS。当然,并不是说SAS一无是处。SAS有它独特的优点。

我不同意你说的软件没有好坏之分。任何东西都有好坏之分。只要你能明确这个好坏如何度量。不过的确,处理某一个问题,某一个软件可能确实不行,但是这个并不代表处理任何问题这个软件都不行。


使用道具

10
18129380375 学生认证  发表于 2015-9-23 20:59:16 |只看作者 |坛友微信交流群
夏目贵志 发表于 2015-9-23 04:54
可能我的语言看起来比较夸张吧。但是对于我个人做过的绝大多数模型,Stata远快于SAS。当然,并不是说SAS一 ...
恩,是的,差不多,不过能做到精一门,可能就够用了

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-11-5 07:56