最早在比较SAS和Stata的时候,毫无悬念的Stata完胜SAS。所以这里就不再比较了。但是程序还是可以展示一下。程序的内容只包括基本的算数运算,加减乘除乘方等,不包括矩阵运算或者回归分析。
SAS程序(63行):
注:一般来说SAS程序都比较长,但是这里利用了SAS data step processing内置的循环功能,简化了程序。在这个情况下SAS速度还是远慢于Stata让人实在是很失望。
Stata程序(80行):
注:有些可换行可不换行的我用了换行,所以实际上差不多70行左右就能搞定。
EViews程序(60行):
注:EViews没有Stata里的if条件,所以很多在Stata里分行写的if statement到EViews都会写成一行。实际上因为我EViews不如Stata熟悉,所以花的时间还更多。而且EViews少了一些方便的函数,比如rowmean(),很多处理需要多用很多循环。但是在这样的劣势下,EViews速度还完爆Stata,所以我才特意写了这个帖子。
程序执行速度:
测试速度用的是225000个观测值的纯数字的数据。Stata里显示的数据大小大约15M。
上面截图展示的部分,Stata里运行需要223.81秒,EViews只要10秒!!!!!!!10秒啊!!!!!!!!!!
整个程序(包括截图没展示的部分,Stata里300行多点)Stata跑了321.15秒,EViews只要32秒啊!!!!!32秒啊!!!!!
总之呢,我想说的是,如果你有什么自定义的估计量啦,或者检验啦,或者大量的运算啊什么的,不妨试试EViews (只要你在写好程序之前不会吐血身亡的话),也许会很省时间的。EViews得语言确实还有很多可以改进的地方。但是如果你的程序可以在EViews里实现,即使用比Stata笨的方法,也有可能会快很多哦!!