个人觉得软件要熟练掌握2种,不要太多。其他几种常用的要稍微了解一下强项。
第一个是具有巨大开发潜力的,例如guass和matlab。这些软件在hayashi的书里都是推荐的。我看见计量牛人都是用guass,上财用guass,发明动态面板估计的Arellano and Bond都是用guass开发软件。但是用这些软件对于我们这样的一般水平的人有一个问题:什么都要自己开发。这有点困难。即使自己能开发,很多程序的思想和处理技巧,不是马上就会的。因此就有必要掌握一种简单的,但有助于移植编程技巧和思想的软件,那就是stata。
第二个就是简单易懂式开发软件stata,具有大量常用程序的开放源代码,而且有通常的图形界面操作比较。而且stata还有一个好功能,就是图形界面操作后能产生相应命令供学习。stata里面大部分命令ado and do,都可以看到源代码,因此对于学习编程思想而言非常有用。如果在guass里不知道如何编Blundell-Bond estimator,那到stata中间看看源代码,就可以把技巧移植过去。
对于刚开始学计量的人来说,stata上手很容易,对照这wooldridge的书,一步一步就可以实现常用计量方法的练习。但是一旦学完后,真正碰到研究中的问题,往往要自己编程解决。这时有两个重要的问题要考虑:一个是编程技巧,如何简单明了的实现编程目的。第二个是运算时间。对于一般的人来说,可能不会考虑算法,但如果你要处理几十个模型的话,时间会因为算法不同而相差很大。Roodman为stata编制的xtabond2就有两个版本,一个通常版本,一个是mata版本,第二个运算要快多了。我曾经有一次运行一个程序化了我5个小时,让我差点崩溃。
编程语言是越简单越好用了,没有人认为越难越好。否则大家不学#C,都去学汇编了。但是,过于简单的东西在处理复杂问题上就没有比较优势了,因此存在一个平衡问题。stata偏于上手快和简单编程,编程基础基本上是宏替换。matlab偏于处理大型复杂问题,现有的vc++, vb, v#c, foxpro, java等等语言都可以在matlab里面进行编程。如果要编一个专家系统,以前是直接用c编的,现在可以建立于matlab平台上,还可以直接调用sas maple等资源,这点估计stata很难做到。
其他的软件用的不多。但我现在选择学stata还是有自己的理由的。我学过eviews,他有一个有点是直接在模型里面用表达式作为一个变量,不需要产生新变量,因此对于模型调试而言非常方便。这点stata不如eviews。在stata里面,除了时间operator以外,要用一个新变量作为模型中的变量,一定要用gen产生一下,不如eviews放便。调试的过程中要产生很多变量,有点烦。但是stata面板处理比较方便。
在结果保存方面,stata不如eviews。eviews直接可以在excel里面进行排版,但stata好像帖到excel里面会有列错开,要做很多技巧性处理,毕竟最后在论文中的结果不是直接从stata里面输出来的,而是要进行加工整理。从这点看,我觉得excel非常能胜任。
如果要对理论模型进行分析模拟的话,估计matlab比较胜任,有符号数值等计算功能,simulation功能,动态演示都非常强。但鉴于国内人一般都做计量模型,不做理论模型,因此这个软件对于经济类学生而言,基本处于和stata一样的地位,但可惜没有stata那么简单上手,所有的估计方法都要自己编程。但是如果掌握了stata以后,要实现更好更强大的编程的话,可以考虑将stata的程序技巧移植到matlab或者guass里面。matlab虽然强大,但问题也在于它太强大,占用资源太多,对于计算机配置太低的人来说不适合,guass相对来说就要好多了。林光平有一本书讲guass的,入门非常好。