對於做經驗研究的經濟學研究生,R 語言能否完全取代 Stata?
可以,而且強烈推薦,當然前提是內存要足夠大。
Stata, MATLAB, Python 和 R 我都用過,但最喜歡的還是 R。我覺得這樣來評價 R 是比較合適的:
在上手速度方面,R 稍遜於 Stata;在矩陣運算方面,R 稍遜於 MATLAB;在語法簡潔方面,R 稍遜於 Python。但是 R 的強大之處正在於,你只要學會這一門語言,然後通過犧牲一點點用戶體驗就可以實現上面三門甚至是更多語言加在一起才可以實現的功能。
另外,R 雖然是自由軟體,文檔做得還是不錯的。像 ggplot2 這樣的神器,根本不需要去學,文檔里寫得清清楚楚,而且還都附帶了實例。
最後,請不要忘了 RStudio 這個神器。它可以幫你把前面失去的用戶體驗都補回來。
盒盒盒,對於上面沒有人提及的一些事情我給出一點內容
-----
看到有人覺得回答有點用,我再補充幾點
------
首先,Stata是一個公司,對於出品的東西負有責任。這一點剛好對應R的好處,開源免費,但是具體內容而言很多包是不是被反覆測試過不是很清楚。我懷疑上邊的回答有沒有人好好看過Stata的介紹,單一點就能保證Stata在經濟或者更多的領域內保持很長時間不被踢出局。
Stata | Why Stata?
鏈接中簡單說一個就是Stata官方認可的所有指令都是被公司測試過沒有問題的。
第二個,Stata在速度上一般而言是沒有太大問題的,如果不是數據量超大已經涉及到演算法提速的程度一般是沒有問題的。如果我沒記錯的話,Stata前身出於S語言,具有很好的速度,高級的mata處理聽說很牛,我沒試過,也是高速矩陣處理的一種方式。遍歷而言,for語句遍歷列是很慢的處理方式,在Stata user guide什麼的相關材料都提到過。實用其他方式可以帶來非常大的提升。
第三,不是不能編程,可以自己搞ado文件。大牛國內幾個Stata大神級任務據說自己都有編寫不少Stata的插件和程序,在官方測試通過後部分聽說可能會轉正,這個沒有確認過。此外,大量的經濟論文也能搜索到對應的處理Stata程序,包括一些較為新穎的計量演算法處理。當然也不一定及時也不全,因為各位計量大神不一定人家用的啥。
第四,界面話操作也被吐槽了。講個段子,經濟領域開始實用Stata的都是高手,沒人用點點點滑鼠操作,後來為了部分上手方便,通過對接實際實用的程序語言實現的界面操作。如果有人細心會發現幾乎所有點過按鈕實現的內容,主程序上都會顯示一跳對應的實現程序語言。甚至可以在繪圖時使用保存手動操作過程對應程序的方法(record)導出所有對應程序,此後把這部分黏貼到自己程序中就可以自動實現非常複雜的操作。
此外,我見過有人使用Stata做地圖也很漂亮,做靜態頁面的爬蟲也可以實現。做稍微繁瑣一點的文本處理也OK,對於過多重複性的代碼編寫,可以使用Stata的代碼編寫Stata代碼。可能是使用者太弱了吧。我也就跑跑OLS,很多也不會,不過我覺得更多是我自己的問題吧。
可以使用類似Sublime進行替代Stata的編輯,一下子爽很多。此外,數據邏輯沒有問題他的話,這些東西會一個另一個很快上手。到後來支持你能到哪裡的是數學、統計、計量的方面,其他的只是熟練程度和熟練程度對應的時間消耗。不提自身掌握程度,單純講哪個寫起來快,那真實耍流氓。
——————2017年1月20日補充
很多額外的材料都是似是而非的,主要是當年隨便讀了些,畢竟使用Stata是用來處理數據的,關於Stata本身的內容,沒必要記著。後來,好多東西也都不知道出處了,也沒時間查找。**如果哪裡不對,請大家指出,我對應修改**補充第一點,help文件的使用,help文件中對於部分指令有特別完整的代碼編寫,Stata自帶了二三十個案例數據包,可以直接調用生成對應結果,對於指令學習非常實用。部分計量模型最後給出了對應模型出處的參考文獻。
補充第二點,ado拆包,我反正點開過一個感興趣的命令的源代碼,編寫格式與do文件差異比較大,但你可以去看人家的處理邏輯。比如說2SLS到底是兩步法還是一步到位處理的,聽說是一步處理,基本計量推導大家也都知道,其實兩步一步沒啥差別。但是通過拆包你可以具體了解技術最細節的內容。並學習輔助自己ado的編寫。
補充第三點,Survey數據處理,你知道CFPS數據所謂的內隱分層抽樣方法講的是什麼么?你知道樣本與抽樣框以及全體(population)的抽樣差別么?當提到Stata的survey數據處理技術時,你不知道我在說什麼,那麼這個估計對你沒啥用,當你多年後想起來這碼事沒準回來投奔Stata了。繞來繞去沒講乾貨是因為我也不知道。以我有限的了解,Stata在當前的數據處理軟體中,結合調查數據的權重問題調整運行計量模型又快又好的佼佼者。
補充第四點,ucla還有Stata官方的期刊和論壇有大量資料,並且實時更新,中文隨便搜索,就我目前遇到的絕大多數簡單問題而言都能快速解決。Stata官方出了數據管理、數據可視化、和workflow等幾本書真是誰看誰知道。第一本已經有漢化版,翻譯的很不錯。就數據處理的簡單操作,看這本書一周能上手應該是一個不涉及智商的水平吧。
補充第五點,既有的基本結合Stata出的計量經濟學書相當不錯,以我對目前經濟學屆不負責任的惡意評價,半本陳強第二版混學界夠用了,混的好不好呢,看個人悟性。歪果仁也有兩個教材,其中一個是大神連玉君推薦的,買了還沒看。講真,其實我用C也可以完全取代Stata的,只是要給我點時間。
可以取代。
stata主要功能是做經濟學計量分析的,所以語言不是很複雜,上手快,直觀,比R更容易。
對於實證分析來說的缺點是,1)收費軟體。2)數據量太大的話可能會慢一些。不過對於經濟學學生來說數據量通常都不會太大,所以肯定足夠用。3)畫圖不如R好看。R主要是統計和數據分析,功能要比stata多,做實證研究自然不成問題。R語言比stata要難一些,而且運作的思路和stata是不一樣的。R是開源軟體,免費,而且社區比較活躍,經常會有一些新奇的和前沿的用法出現。另外,因為R的功能較多,所以可以實現很多stata無法實現的功能,比如寫爬蟲抓取網頁數據,在RStudio上直接寫文檔之類的。
如果是只做經濟學的實證研究,兩個軟體都可以完全滿足,經濟學教授們用哪個的都有。如果只是為了寫論文而短期使用,那麼可以考慮stata,因為上手真的很快。(其實也可以考慮SPSS或者EViews,上手更快,不過我沒有用過。)如果打算長期搞研究使用,兩個軟體都可以。不過如果想挖掘更多的可能性和更多的功能,那最好用R。評估一下兩個軟體的優劣是很有意義的。不過反正僅從軟體自身來講,好好壞壞各位大神都講的很透徹了,我換個角度說一下。
換個角度說,拋開軟體本身,僅從研究生學習和科研的現實場景出發:就是大兄弟你有空還是把用得到的都先入門一下。沒空的話,就一個也不要學,真等著用了,干中學是最有效的。
為什麼這麼說呢,因為雖然經濟學研究現在就算不是單打獨鬥也不過是小隊作戰,但是還是有挺明顯的往流水線方向發展的趨勢的。保不齊明兒你導就扔給你一段陳年代碼,讓你去一個你從來沒用過的軟體上跑,到時候你還是要上的呀。萬一搞宏觀,搞不好還要學C++呢,萬一搞了行為經濟學,還和neuroscience合作,那matlab和mathematica肯定是跑不了的。所以 ♂?
如果是做時間序列的話,可以用Rats(Regression Analysis of Time Series)http://www.estima.com/
R為什麼不能用Python完全替代呢?真誠求問
吐槽太多,匿了。
如果你是做研究的,而不是寫本科畢業論文或者完成計量課課後作業,還是得學R。。。R的優勢:
是編程語言,有很多人維護,緊隨研究前沿,network, quantile regression, lasso, 什麼都有,可自定義函數,可編程搞複雜的運算。R的劣勢:雖然是編程語言,但是語法醜陋落後。跟python那是沒法比啊。每次打一個c(1,2,3)之類的我都要內心吐槽誰tmd設計這麼難看的人設(雖然np.array([1,2,3]) 也好不到哪去)。因為語法設計醜陋,所以上手難。同時包很多,這是好事,也是壞事。連describe 一個data set都有無數種辦法。你這讓我等小白玩蛋啊。很多包質量良莠不齊,有的包作者都不知道哪玩去了 沒人更新了,documentation 6年前寫的有木有,有的包裡面函數根本就運行不了啊。
R沒辦法很方便的像其它語言一樣定義class。你可以定義s3/s4之類的,但是,就是用的不爽啊。R的畫圖也很醜。學完基本畫圖後,看著那素凈的圖片,我心裡在想這軟體是不是中科院開發的。後來我知道要想畫的好,還得再學ggplot2時候我就思密達了。Stata優勢:
好上手。就算什麼都不會,點滑鼠都能完成工作。沒錯,我一開始用stata就是點滑鼠,想幹什麼幹什麼啊。畫的圖高大上,the economist 的水準啊。然後我就發現問題了,我不能每次都點滑鼠,一個research 必然有很多重複性很高,需要自動化完成的工作,只能寫程序。然後寫程序時候我就吐血了。我突然發現一個讓我內心草泥馬無數遍的事實:Stata 無法自定義用戶函數。連20年前的QBasic都可以定義用戶函數,一個賣的這麼貴的軟體無法自定義用戶函數。其它stata的髮指的問題我就不說了(你想用lasso?出門左轉找R)。這是一個商用計量工具,比eviews牛逼,但不是計量編程語言。它和R關係,類似於word 和LaTex的關係。總而言之,R不是一個好語言,但是你無其它可選啊(做finance還好有matlab)。我期望趕緊更多人給python開發計量包,讓python干翻R吧。R很牛逼,但是對於大多數基於cross-section和panel的實證研究而言,stata足夠了,現在很多人做實證還是把眼光盯在方法上,其實往往而言idea和數據質量更重要,數據足夠好的話你完全不用憑藉那些fancy的計量模型去拷問數據,OLS足夠了,而且任何人都不能否認stata在數據處理方面的優勢,就我而言,現在往往一篇paper最大的功夫是花在數據處理上,這樣來講stata的優勢毋庸置疑。當然時間序列不在上述討論範圍之內————補充————
ssc install rsource /* a package allows you call R from stata */
R語言和Python都可以用來做計量,有很對現成的程序包。比如說時間序列建模,有一本書叫Time series analysis with applications in R ,可以作為時間序列的入門教材,Tsay也寫過金融時間序列分析 ,書里很多模型 就是用R實現的。Eveiws 比較適合做時間序列,它的前身是TSP,但是做面板就比較麻煩了。做面板還是用Stata比較方便些。
理論上當然可以!實踐中這麼做到底合不合算,只有做了才知道。我以前一直用SAS,現在用R做所有關於數據分析的事,Matlab我以前也用過,但覺得數據分析這塊遠遠比不上R。推薦你看一本:R for Stata Users (豆瓣)
可以,順路推一套 use R系列叢書
http://bbs.pinggu.org/thread-870446-1-1.html
裡面applied econ, MCMC, Dynamic LM 啥的有…
然而我還是在考慮什麼時候轉Matlab/python/Julia...R的人機界面不算特別友好,一切分析靠編程,但也因此R能實現的功能較多,且運算速度快,這點太棒。還是喜歡用R,因為不好好學習,它就會不斷提醒你
找不到對象R的好處:開源 免費 各種好用的package
加上latex/sweave和rmarkdown寫essay簡直超級方便的啊。Stata要錢的吧。R是可以取代stata,沒問題,但是如果你計算機功底不是很牛,stata反而easy上手!
舉一個最近遇到的具體例子求賜教,stata里的wald test好像在R里沒有完全對應的函數可以取代?
兩種軟體入手都不難,當然最好都學,各取所長
只要熟練掌握matlab、R、Spss、Stata等中的任何一個,幾乎完全夠用了
統計軟體中R和Stata我都用過,我在研究生時期就是放棄了R用的Stata說下特點吧,R雖然界面不美觀但是可操作性更強,前期學習雖然很費勁但是它是可以無限擴充的軟體,到後期你可以隨心所欲地得到你需要的統計結果,並且使用人數多,萬金油的軟體。缺點在於圖表不美觀,占內存大,命令複雜。如果不是複雜的計算量,比如只做重回歸,或者パネル?データ分析,對數分析,相關性證明的話我推薦選擇圖標較為漂亮的Stata,一個命令就可以得到一張你需要的所有東西都薈萃在一起的統計結果,需要的東西都被標明了,圖表也美觀,兼容性也很好,適合初學者對於原始數據加以修改。不足在於目前Stata人數使用雖然逐年增長但是人數仍然不如R多,另外處理複雜問題不如R可操作性強,教科書比R少一些。研究生的程度的話,如果你學習能力強並且有意願讀博或者更深入探討問題,建議用R起手。如果你只是想做研究生級別的論文,對於理論並不十分熟悉,可以選擇Stata,不需要你對數理有理解也可以得到你需要的結果。
各有所長
stata容易上手,數據處理更容易,語言簡潔。手冊很好。便於學習。r學習曲線太陡而且,為什麼要替代呢?如果那樣,全世界只有一個軟體好了。推薦閱讀: