計量經濟學實證研究中,哪款軟體好?(SPSS,Eviews,Matlab,stata,SAS)

提這個問題的時候,我還沒有開始讀研,現在已經快結束研一了。最後用的還是Stata,不過如果我的師弟師妹問我這個問題,我想我會回答:R。


最近兩位做應用宏觀的經濟學家寫了一篇小文章(http://www.nber.org/papers/w20263.pdf)探討這個問題。他們用各種軟體跑同一個DSGE模型,得到速率比較:

1. C++ and Fortran are still considerably faster than any other alternative, although one

needs to be careful with the choice of compiler.

2. C++ compilers have advanced enough that, contrary to the situation in the 1990s and

some folk wisdom, C++ code runs slightly faster (5-7 percent) than Fortran code.

3. Julia, with its just-in-time compiler, delivers outstanding performance. Execution

speed is only between 2.64 and 2.70 times the execution speed of the best C++ compiler.

4. Baseline Python was slow. Using the Pypy implementation, it runs around 44 times

slower than in C++. Using the default CPython interpreter, the code runs between 155

and 269 times slower than in C++.

5. However, a relatively small rewriting of the code and the use of Numba (a just-in-time

compiler for Python that uses decorators) dramatically improves Python』s performance:

the decorated code runs only between 1.57 and 1.62 times slower than the best C++

executable.

6. Matlab is between 9 to 11 times slower than the best C++ executable. When combined

with Mex ?les, though, the di?erence is only 1.24 to 1.64 times.

7. R runs between 500 to 700 times slower than C++. If the code is compiled, the code is

between 240 to 340 times slower.

8. Mathematica can deliver excellent speed, about four times slower than C++, but only

after a considerable rewriting of the code to take advantage of the peculiarities of the

language. The baseline version our algorithm in Mathematica is much slower, even after

taking advantage of Mathematica compilation.

最後兩位大牛給出的建議是,做不同領域根據需求選用合適的軟體,搞DSGE的學好C++,搞applied micro的同學用用R就夠了。


@stupident 說的很好了,我做一點補充。因為她是2014年發表的答案,軟體這個東西更新地很快,我提供一個2016年的各大軟體對比(可能兩年以後又會有新的答案),並補充一個維度。

在下圖中,橫軸是運行速度,縱軸是對自然語言的貼近程度。箭頭指示的是 Python 的速度已經有了

顯著的提升。


計量實證的話 最容易上手的應該是stata和eviews 兩者都可以通過菜單操作實現傻瓜式操作 也都可以用編程的形式來實現

stata應該是計量實證 特別是微觀實證裡面用的比較多的 因為單就經濟計量來說(其實就是各種各樣的回歸方法) stata包含的方法非常多 運行速度也快 處理面板數據和截面數據的功能非常強大 而且可以隨身攜帶 不用安裝

Eviews也是回歸方法為主 不過是時間序列方面的功能比較強大 所以可能宏觀做時序模型 做協整分析 等等用的比較多

SAS是比較難上手的軟體 裝載就不是很容易了 而且所有的功能都需要編程實現 個人沒有用過 但是聽用過的同學說 雖然難學 但是學好了要實現各種方法真的是隨心所欲 比如做金融裡面常有的roll over回歸之類的 特別適合複雜的計算和大量的回歸 處理微觀海量金融數據的同學應該會用的比較多吧

Matlab的話感覺和上述幾款都不太一樣 屬於比較全能的大殺器 不僅限於計量分析的功能 還能做數值計算 隨機模擬 規劃求解 等等等等 不過也是需要自己寫代碼 如果單單是想做計量分析的話似乎沒有必要用這個

最後說SPSS 是最容易上手的 而且屬於統計分析軟體 包含很多多元分析方法 比如因子分析 聚類分析 分類樹之類的 但是個人對其回歸功能不敢恭維 只有幾種方法 而且基本處理不了面板數據 所以如果是計量的話不推薦用SPSS 但是SPSS其他一些多元分析功能也挺好操作的

只用過STATA SPSS 和EVIEWS 其他兩種軟體的經驗通過同學諮詢得來 個人推薦計量還是用stata


用得慣的就是好的


我是做實證研究的,一開始用而且到現在位置用的最順手的是STATA,因為計量課上老師示範的例子和習題全部都是由STATA完成的。好處是容易上手而且現在在學術界有比較高的江湖地位,壞處在於太大的數據沒辦法很快處理,電腦很容易死機。取決於不同版本的STATA (SE, MP or IC),能一次讀取的變數數量有所不同。但是STATA做各種回歸功能相當強大,而且編程語言相當的直白易懂。

後來因為要處理一些STATA不能handle的資料庫,開始學慣用SAS。 很多業界的諮詢,製藥和保險公司大部分都使用SAS來做計算, 因為他們要處理的資料庫比較大(我一個同學甚至提到他們保險公司用SQL來處理數據)。SAS比較難學,但是好處是因為每次讀取並處理一行數據的關係,能不受電腦內存限制地打開很多STATA沒辦法打開和處理的數據。如果是學生的話,SAS的license費用貌似也比STATA低很多。我看到過一些把macro運用自如的大神的code,化繁為簡,運行起來超級有效率。

R是最近剛接觸到的,還在摸索中。一個顯而易見的好處是它是開源免費的軟體,而且有很多人在寫軟體命令包去不斷擴充(前兩個提到的SAS和STATA也每年有很多擴充的命令但應該沒有R那麼多)。R作圖能力也很強大,至少比STATA畫出的圖好看一些(STATA 畫的某些圖真的很醜而且顏色很單一)。我同事是R的死忠粉,向我描述了無數好處,這個應該是我下一步要儘快熟悉的語言。

Eviews SPSS本科上課或者做論文接觸過,大部分都是通過菜單操作實現,所以能實現的計算也不是很複雜和多樣化。Matlab沒有用過,不好評價。

所以你可以看到,沒有一個統計軟體可以打遍天下無敵手,什麼軟體好用真的取決於你要處理的數據,你想進入的行業以及你感興趣的課題等等。而且,連行業標準也在不停變化中 (STATA變成學術界的標準也是最近幾年的事情,那之前還被無數人吐槽詬病它的命令太少等諸多問題)。我想,也只有不斷學習,活學活用了吧。


1、本科階段,特別是偏文科生,強烈推薦Eviews。現在已到9.0版。主要是本科階段主要需要把計量經濟學的基本概念,基本方法、框架結構等基礎打牢固。Eviews完整系統的標籤命令體系,能夠幫學生清楚地把握計量經濟學的寫邏輯胳絡。

2、絕大部分學生能夠進入真正的科研狀態,一般是在碩士研究生(研二)階段。Eviews8.0在面板數據分析方面的功能雖然有了很大提升,但與Stata比起來,在對大型動態面板數據的處理能力方面明顯從於劣勢。特別是在金融市場高頻數據的外理能力上。

因此碩士論文的實證,推薦使用Stata。


這個問題毫無意義!上面的坑我都填過。大一的時候,有一門專業課是SAS,於是學了SAS;大二統計學老師用SPSS,於是我也用SPSS;選修課學了Matlab,於是又會一點點Matlab;計量經濟學老師用的stata,於是我也跟著用stata;大三多元統計分析老師又用R,於是我又學了R;時間序列老師和衍生金融工具的老師卻用的是Eviews,同樣,我又學了Eviews。大四,金融建模又學了VBA。

用遍了所有的這些統計語言,你問我現在用什麼,首選一定是python,其次C++,再其次C,但絕對不會是上面任何一種。因為現在用的熟練的是這下面這三種語言。本科期間之所以換來換去是因為編程能力太弱,唯有跟著老師用他所用的工具最省時間,因為別的語言都只懂皮毛,那些arma模型、garch模型、Monte Carlo什麼的我都實現不了。至於現在,寫的代碼多了,這些統統無視。學習期間能遇到的時間序列模型,無非就是一點點矩陣計算幾個數學公式而已,有一定編程能力的人,無論他用的什麼語言,這些功能都能實現,他不會提出這樣的問題;提這種問題的人,你給他建議了,反而可能讓他換來換去,最後各種語言懂一點皮毛,還是會來提這樣的問題。


一般商學院或經管學院最愛用的還是eviews和stata,簡便易行。二者略有區別。個人從eviews起步,現在比較喜歡用stata,不過stata有些模型設定和eviews不太一樣,真正學深了還是用MATLAB吧 寫出所有的函數和模型自己跑數據 而不是用軟體自帶的函數和模型~


如果。你想只學一個然後吃遍天下的話,強烈推薦Matlab或者SAS,從用戶體驗來說,我比較推薦matlab。

別的比如eviews必須拿到處理好的數據來跑,如果你手頭是一堆原始數據,eviews拿它們一點辦法都沒有。


個人用過的有R、EViews、SAS和Matlab,逐個評論一下:

R是我最喜歡的軟體,是我個人首選,除去免費開源的特性不說,R靈活自由的語法很適合用於數據處理,干很多dirty work,實現新演算法和新模型也很合適,有能力的話可以很方便地移植到C/C++上去,此外豐富多樣的包也可以涵蓋許多應用的需要,當然也有問題,上手不是特別容易,性能相對較差,種類多樣的包實際上也在一定程度上帶來了學習負擔。

EViews在時間序列分析方面確實是很方便,美聯儲的FRB/US Model都是用EViews來處理的,而且很多操作都可以在圖形界面完成,不過局限性自然也就強一些,我沒有用過EViews的程序,都是簡單點點點出結果,所以也不好評論。

SAS歷史悠久,所以語法真心怪,尤其是在數據處理方面實在是比較蛋疼,DATA STEP裡面一次只能處理一行數據,一些在R裡面輕鬆的操作用SAS寫起來就很麻煩,經常不得不藉助於SQL,而宏變數和宏函數本質上是文本替換,所以用起來也不太方便,只能說歷史的包袱太重了……不過強大之處在於SAS用在已有的模型上真是非常方便,選項豐富,功能強大,所以我建議先用別的語言把數據整理好了再餵給SAS去跑模型,而且也不建議用SAS去實現新模型。

Matlab某種程度上有點像R,也是我比較喜歡的工具,基於矩陣的語言使用起來確實還是很靈活方便的,實際上矩陣的思考方式也很適合計量經濟學,在國外金融和計量領域用Matlab授課和處理數據的人是非常非常多的,性能也還可以,計量各種工具箱其實也很全面,個人覺得學金融的話學學Matlab蠻好的,做學術和Quant實戰都挺有用的。


SPSS最為簡單,但是個人感覺功能也相對受限,不過簡單的回歸什麼的還是可以的。

EVEIWS主要是針對時間序列的,處理時間序列特別方便。

STATA的話,記得STATA的老師說是比較適合用做計量的,樓主想要計量經濟學做實證,STATA是不錯的選擇。

Matlab的話,個人剛入門,感覺就是一個巨大的計算器,用矩陣的方式來處理。


基本都用過,以下基於我個人的使用習慣,不一定是客觀的對比:

沒啥想法沒啥創新就是為了用成熟小演算法要個指標應付老闆的用spss;

同spss需求但在時間序列方面需要更深度一點的運用時用eviews,我金融碩士階段的學習和論文,基本都是用eviews完成的;

至於不純粹是標準演算法,有時候還要自己添加點東西搞點小編程的用stata,在我眼裡stata有點像綜合版的spss和eviews,因為我讀書階段聚焦在時間序列,所以用eviews為主,工作後需要更靈活的使用,stata又不太能滿足,因此我用得並不多;

如果要複雜建模,搞點逼格高有想法的研究,或者自己代碼水平不高寫不出來但又需要實現可靠穩定並且相對前沿其他地方找不太到工具包的演算法,就用matlab,不過基於矩陣的基本語法真是讓我心累。包全,想到啥基本都有,除非你是現在科學前沿搞創新的就只能自己碼演算法,但就是要收費,不過天朝眾生有的是辦法。。。;

sas這種我覺得有必要在學生時代學嗎?第一用它的都是大大的有錢的地方,這種地方也不在乎你懂多少sas,不懂可以教你,大把內部培訓,而且有專門的人在維護使用sas,很多時候你只要提需求就好了,有的是人幫你,關鍵是你用sas出來的結果能否成功媚上。而且你就算懂了sas,跳出這個小圈子馬上就發現身邊沒人用,你懂它給你的發展沒多少幫助。再進一步,很多時候,sas擺在那供著,很多人也不用,要實現什麼還有大把其他工具。因此我認為sas是最沒必要深入花時間學習的,要用的時候再去著急也行。私認為sas很難跳出固定的使用圈,小公司把自己賣了也用不起也用不上,等小公司壯大了,鑒於依賴性估計也不好挪過去用。

r沒用過,不說了。

要免費,又想愛怎麼搞就可以怎麼搞,還想愉快地跟碼農聊聊合作,對工具包的使用萬一內部代碼錯了要不了命,那就用python。除了把它當計算器用,還可以多學學用在其他開發上,基於web做點數據工作,寫個小程序,搞個網站等。目前是我主要使用的工具。不過就是有點亂,這個包那個包,同一個演算法尼瑪可能有十個八個包或者方法可以實現,各有各的範式和內部結構,還可能過個一年半載又調整更新掉,腦袋都大了。

至於人神共用的excel,我覺得只是搞點簡單規整和展示,並且實現一定的自動化,它也足夠強大和好用了。如果搞什麼複雜演算法,你會跪在電腦前,用VBA寫的代碼比你的報告還長。我現在還在用以前寫得VBA文檔,用來做定期標準的數據處理和簡單分析,一鍵操作自動生成,還是挺好用的。而且可以分發給其他人,還不用教什麼和額外安裝什麼,不用要求大家都懂什麼其他工具,但如果excel都不懂,我也不會要這個人。所以excel在簡單數據工作領域,還是天下無敵的,例如我完全不會去考慮用python重寫我的那些vba模塊。


首先轉載一篇文章,在此文中,作者談到了跟計量相關一些軟體的「鄙視鏈」。

談一談統計軟體的鄙視鏈 | 漫談

其結論為:C&>python&>R&>SAS(Stata)&>eviews&>SPSS

(matlab沒有參與)

平常個人做計量方面的實證基本上只用Stata,其內含的計量包足夠強大,足以解決絕大多數的計量問題。再不濟,也可以用代碼的形式進行手工計算。缺點是Stata只能處理小數據,最大處理矩陣為11000*11000維。所以Stata只在學術界較為流行。

與Stata不同,SAS可以處理大數據(比如股票高頻交易數據),所以在業界有著一定地位。

拿SAS Stata Eviews SPSS四款軟體進行比較的話,我聽到過一個比喻,在此分享給大家:SAS好比單反,Stata好比半自動相機,而Eviews和SPSS好比傻瓜相機。

除這四款軟體,還有C python matlab和R。前三者都略知皮毛,R沒有用過。相對來講,C是最底層的語言,而python和matlab有著大量的函數包,看個人喜好吧。matlab的向量化運算可以很好的處理代數矩陣或者圖像矩陣,算是個人最熟練的一款軟體,功能極其極其強大(捂臉),也有計量包,但感覺大材小用。

從運行速度上來講,C應該是毫無爭議的第一(一般越接近底層的語言,運行速度越快)。但是從開發效率上來講,好吧,身邊有想從C++轉到python的程序猿,所以……至於Stata,當設計比較複雜時,應該只能用龜速來形容了…

以上


Stata是微觀應用計量研究的行業標準,另外學一點矩陣為基礎的Matlab或者R也會有幫助。


R死忠飄過。。。

比較常見的計量軟體如R,Stata,MATLAB,Eviews,SPSS,SAS。 最後一個沒用過,個人感覺,初學者就選Eviews,SPSS,用戶界面比較討巧。點一點就出來了,傻瓜操作。

進階的話,就別局限在滑鼠操作的軟體了,鍵盤才是王道。

Stata在學術界應用比較廣泛,大有一統江湖的狀態,Matalab有計量的工具包。但真心沒怎麼用過。

R作為開源免費的業界良心軟體,配合Rstudio,功力大增。話說R的語法是我見過的最直白的。


stata比較簡單容易上手。做empirical的數據分析stata還是蠻方便的。

Eviews做時間序列分析很好用,導出圖片和圖表都很方便。

教授推薦用MATLAB做theoretical分析,我也才開始學。


我做公司金融實證。目前用SAS處理數據,因為數據量很大,而SAS可以通過硬碟的存儲空間來當緩存,非常高效和便捷。跑回歸的時候用Stata還是比較方便的,特別是直接輸出回歸表格,後期處理三線表,非常方便。


弱弱的問一句:結構方程與上述方法的關係?


用過eviews和stata e操作起來最簡單 本科用e足夠了


關於統計與大量數據運算,涉及到框架與矩陣運算時間序列用python 複雜運算內嵌入C++/C,個人覺得能用二十年。R與matlab的問題在於優勢方面很突出,但是相對於python有短板,python本身是膠水語言,同時數據處理方面也不必matlab和R遜色多少。


推薦閱讀:

怎樣優雅地學好 SAS 與 R 語言?

TAG:SAS | 計量經濟學 |