首先Stata是一套提供其使用者数据分析、数据管理以及绘制专业图表的完整及整合性统计软件。它提供许多功能,包含线性混合模型、均衡重复反复及多项式普罗比模式。
除此之外,Stata软件还可以透过网络实时更新每天的新功能,更可以得知世界各地的使用者对于STATA公司提出的问题与解决之道。使用者也可以透过StataJournal获得许许多多的相关讯息以及书籍介绍等。
另外一个获取庞大资源的管道就是Statalist,它是一个独立的listserver,每月交替提供使用者超过个讯息以及50个程序。
而python是一种面向对象的解释型计算机程序设计语言,具有丰富和强大的库。它经常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联合在一起。Python对程序员来说是非常专业切好用的设计语言必备软件。
它可以应用于更高水平的编程以及各种处理库,例如计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK等。因此python语言十分适合工程技术、科研人员处理实验数据,甚至开发科学计算应用程序。
2白米饭好吃,五谷田却难种近几年python势头猛烈,国外众多学者纷纷开始推荐使用python进行数据分析。从表面上看python似乎更高级,可以应用于各种高级科研中。
但是真的适合研究
微观计量经济学的学者应用吗?
答案当然是不适合!
在计量经济学中,大部分的研究项目不涉及任何高深的计量方法,而用python做科研,你要先学会它背后的一整套逻辑思维,要知道编程的操作流程。但Stata可以不用知道背后的逻辑就可以上手使用。微观经济学研究中使用的软件只要满足数据清理、变换、可视化之类的就足够了,因此不需要python这种高难度软件。对于学术界,为了处理数据专门学一门编程语言未免有点小题大做。
在国内python并不算是主流的研究工具,而Stata在国内经济学领域是公认的一流科研工具。如果一篇文章用python做的分析,在申报期刊时很可能因为没有使用主流研究工具Stata而被拒之门外。
曾看过一个很有意思的比喻,如果把python,Stata,SPSS进行比较,Stata好比半自动相机,SPSS好比傻瓜相机,python好比单反相机。使用高难度的python拿来做科研显得太多余;用SPSS做科研又显得不够水准;用Stata刚刚好,不难上手又不失专业水准,内容足够多的扩展包,足以应对科研中的数据分析。
3接下来,是对问题的深度探究先说结论:对于应用性的数据分析,从只使用Stata,到较为流利地使用Python,很可能会受益匪浅,并伴随着豁然开朗的愉悦体验。这些技能适用面比Stata更广,并且只要肯花些力气,学会基本的东西起来并不会有太多困难。加之StackOverflow之类社区对学习效率的巨大提升,学习Python的投资回报率很高。
我是做应用微观的,大部分的研究项目不涉及任何高深的计量方法,基本上是走用心问问题,然后下苦功夫搜集一手数据的“苦情”路线(偏经济史方向的研究是从原始历史档案中搜集的数据,偏管理科学方面的研究是从用的一家公司的员工互相评价的绩效考核数据)。所以对软件的需求主要是数据清理、变换、可视化之类。
我最初是用Stata.当时觉得Stata还是蛮方便的,特别是定义一下新变量(bysort:gen之类的语法很好用),以及跑跑OLS/Logit回归,然后输入表格到Latex.这些基础功能Stata实现起来真是非常方便。不过,美中不足的是,一旦要自己写写函数,就开始不习惯Stata编程的方式了,所以代码不容易重复使用,DoFile一长,慢慢就觉得有些乱。再就是矩阵操作和运算功能不太好用。
后来随着自己对datascience和machinelearning的兴趣,在edX,Coursera,Udacity等平台上了一些基于Python的课程。其中对实用工具的学习收获最大的是edX上MIT的两门Python课程(6.00.1x和6.00.2x),以及Udacity上的IntrotoDataScience.上了这些课以后,自己做了一些machinelearning的小项目。当时学习的目的本不是为了应用到自己的经济学研究中去——那段时间里,除了一个博弈论的模型我无从下手分析,用Python做了一下agent-basedsimulation刻画了均衡的性质外,并没有真正拿来完整地做一个项目。
有意思的是几个月以后,我开始了一个新的项目,虽然仍然不需要高深的统计和计量,但是在数据的处理上,比之前更复杂——需要把数据汇总成一些转换矩阵(transitionmatrix),然后做一些计算,以及做大量的数据可视化。有感于之前使用Stata的力不从心,开始新的项目的时候,我尝试着完全用PythonPandas来做数据操作(datamanipulation)、用Matplotlib画图。另外一个原因是,当我开始用IPythonNotebook以后,便欲罢不能了——代码和分析结果(图表)被整合在一个文档里(一块代码后面紧跟着输出结果),非常适合整理和分享。谁用谁知道。
最开始从Stata转到Python的时候,还是不太习惯PandasDataFrame,特别是对于Reshaping,MultiIndex,pivot_table等功能。所以还是蛮怀念Stata.后来慢慢感受到Pandas强大的数据操作功能。
简单来说,使用Python以后,我最满意的效率提高在于所有的分析都自动化了,从原始数据到最终所需要的图表、结果,不需要一些半自动化的手工调整。而且代码的可重复利用程度显著提升。另外就是,使用Python以后,得益于数据操作能力的增强,我变得比之前更频繁地将数据可视化,几乎所有的回归分析我都会做相应地描述性分析和可视化。
最后,不得不提的是Python相关社区的强大。我有不会的就Google,搜索出来的StackOverflow的问答、以及一些技术博客里面的内容,基本上都能解决问题。然而,使用Stata的时候,常常会有无力感,卡住了就卡住了,纠结很久只能靠读文档然后自己摸索。
---补充:有朋友问到我用什么做图。我就用Matplotlib.虽然觉得算不上太好用,但是目前基本的功能也差不多够了。下面贴一些我一个经济史研究中的一些图。都是一些很基本的东西,只是为了让感兴趣的朋友大概了解一下我的使用情况。见笑啦:)
作者:黄一飞
预览时标签不可点收录于合集#个上一篇下一篇