全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
13165 11
2015-09-21
今天在做一个项目,涉及到一个算法。这个算法是我自己写的程序,用了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笨的方法,也有可能会快很多哦!!


二维码

扫码加我 拉你入群

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

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

全部回复
2015-9-22 02:52:17
Eviews的表现出乎意料!!!
二维码

扫码加我 拉你入群

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

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

2015-9-22 07:06:03
andruw 发表于 2015-9-22 02:52
Eviews的表现出乎意料!!!
是啊。我就纳闷了,怎么EViews就这么快呢。。。你有类似的经历吗?
二维码

扫码加我 拉你入群

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

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

2015-9-22 11:48:14
应该还是编程的逻辑问题
二维码

扫码加我 拉你入群

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

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

2015-9-22 12:30:25
kkwei 发表于 2015-9-22 11:48
应该还是编程的逻辑问题
对,其实我挺赞同这种观点的;至少有一定的影响
二维码

扫码加我 拉你入群

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

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

2015-9-22 15:19:08
夏目贵志 发表于 2015-9-22 07:06
是啊。我就纳闷了,怎么EViews就这么快呢。。。你有类似的经历吗?
不太用eviews...不好说。
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群