經濟類編程
1. 經濟學專業要學編程嗎
經濟學專業不需要學編程,經濟學是經濟類,編程是計算機類,不用學習編程。
2. 學習經濟學需要熟悉哪些編程語言
Stata微觀計量中應用極多,主要是直接輸命令回歸,需要編程的地方不多。
至於編程,推薦R、python.
R是非常好的統計分析軟體,在計量經濟學中的應用可以見
Econometrics in R, Applied Econometrics with R
Time Series Analysis with Applications in R
這幾本書
Python用來抓數據很好,並且有數學計算包SciPy可以部分替代Matlab之類科學計算首扮春的功能。
EViews:計量經濟學,時序和多元統計。
Stata:計量經濟學。
SPSS:專門開的一門課,這個巨汗,權當復習了一遍統計學。
Excel:大一的統計入門課使缺敗用的,這個也巨坑,者耐就是簡單的函數使用,一點沒有涉及VBA。
3. 學習經濟學需要熟悉哪些編程語言
學習經濟學需要熟悉哪些編程語言?
1)壇友arthur_2006
處理和分析數據都用得到,最基本的是excel,如果你的VBA用得好的話會有很大的幫助,如果你要分析數據的話,比如你要建模那麼SAS還是不錯的,不過比較難掌握如果你沒有語言方面的基礎,其他還有很多軟體也能做得到。很多銀行證券期貨企業都使用的是oracle或者DB2,一些小企業可能使用的是sql, 所以如果想在這方面發展就要掌握資料庫的知識,畢竟金融和計算機兼備的人才還是稀缺的,而且國內很多行業都是用的是這幾大資料庫比如電信醫療航空等等,不會分析金融數據恐怕稱不上什麼金融專家吧,至於你分析得准還是不準那就要看你的金融知識掌握的程度啦,尤其是投資專業的學生學習一些這方面的知識是必要的,很多人是應用金融學專業的偏向於財務,那就去考考CFA,ACCA什麼的,也沒必要在這上面花費太多精力而且工作中很可能用不到的,金融數學金融工程精算專業的同學花點時間研究一下還是很有必要的,總而言之一句話,首先要看你的興趣再就是你的專業和發展方向。
2)編程愛好者任坤
做統計和計量的話,想要跟當今的國際學術界接軌,最好學R,至少我所知道的目前美國的統計學術界被R佔領的趨勢很明顯了。
如果只是做簡單地回歸隨便解讀一下,那隨便選個傻瓜軟體就可以了。如果只是應用現成的成熟的計量模型來做實證研究,那麼傻瓜軟體一般也就可以了。如果要以統計、計量為研究領域或者專業領域,那麼編程性的東西是少不了的,即使是做實證如果涉及較為復雜的數據結構,懂編程也能幫你大幅提高生產力。另外,R的社區比較活躍,能夠較好地跟上前沿。
如果涉及到處理較大的數據,一種辦法是用SAS,如果不想用SAS可以學資料庫方面的東西,比如把數據放在SQLite資料庫中然後用{RSQLite}訪問資料庫,或者用{sqldf}通過SQL操作環境中的data frame。
如果覺得執行某項任務R單核速度慢,那麼可以使用{parallel}或者{parallelMap}做並行計算,也可以利用雲計算來處理數據。
如果涉及到其他社區的東西在R社區中沒有實現,例如Java的東西,可以用{rJava}來調用Java的對象,不過速度有些慢。
比較好的辦法是我在想從事數據分析工作,學什麼軟體或語言最好? 提到的F#函數式編程語言,用RProvider可以直接調用R,用JavaProvider直接調用Jar打包的Java程序,用PythonProvider(即將發布)直接調用Python程序,等等,很容易將各大社區的資源整合在一起使用。
目前我在GitHub上面弄一個通過R學習統計、計量、非參、數據可視化、資料庫的repo: renkun-ken/learnR on GitHub ,雖然目前還沒什麼內容,不過可以跟蹤一下。
以上說得都是經濟學相關的統計和計量方面所需要的編程。事實上統計和計量所需的「編程」較為簡單,基本也就是處理數據、應用已經提供的計量模型,更多需要編程的是:一、如果涉及較為前沿的計量模型,可能還需要自己實現;二、一些蒙特卡羅模擬需要一些編程。
從經濟學相關的一些新型領域來說,計算經濟學(Computational Economics)、計算統計學(Computational Statistics)以及計算計量學(Computational Econometrics)則需要較強的編程能力,包括演算法實現、演算法分析等等。舉個例子,計算經濟學中目前做的一塊研究是Agent-based computational finance,就是建立一個模擬的金融市場,裡面有幾種資產,每種資產的基本面由隨機的紅利決定,裡面有許多遵循各種邏輯的投資者,投資者對於紅利發放持有的信念不同,因而從各自的邏輯觸發的交易行為不同。在一個復式競價(double auction)的交易市場中,什麼樣的投資者組成或者行為方式、什麼樣的記憶長短,能夠最大程度地復制出我們在現實金融市場中觀測到的資產價格或者資產收益率規律,例如資產收益率尖峰肥尾、不對稱性。此時,研究者就需要較扎實的金融知識來設計一個不過於簡單而又不過於復雜的模擬金融市場,也需要相應的編程能力把模型用程序語言編寫出來。這中間會設計許多編程技術,例如資料庫(有時要跟蹤許多變數,例如投資者現金流動、財富分布)、並行計算(CPU多核並行、多進程並行、集群上的並行甚至GPU計算)等等。這方面的研究從1990s年代才開始。
3)知乎網友Jichun Si
計量經濟學也有很多小的門類,請對號入座。有很多軟體,Stata, matlab, R, SAS是相對來說用的比較多的。
如果是做應用計量(特別是橫截面數據、面板數據),Stata是不二之選,因為不管是管理數據還是跑回歸,實在太太太方便了。現在主流期刊的應用微觀計量文章裡面能用到的模型stata幾乎都有,而且其中的絕大多數都是用stata做的。而且最大的優點是,簡單!
如果做應用的時間序列,Eviews似乎是一個不錯的選擇。但是我一般不做這方面,也不是很有發言權。
如果做理論計量,stata eviews是沒有現成的包的,而且即便Stata可以編程,可編程能力也是很差的,而且不穩健。所以懂R和Matlab就非常順手。當然也可以用Python,最近Sargent就寫了本用Python做計量的書。還有一個Julia,是這三種語言的混合,但是速度快很多,缺點是太過於小眾。
如果對速度要求高,特別是金融計量很多對速度有要求的,可以考慮C、Fortran等語言。C和Fortran肯定是最快的。還有一個叫做OX的,速度快,但是也很小眾。但是這些語言的缺點是學習難度比較高,開發時間比較慢。Julia據說速度堪比C,而且語法特別像Matlab、Python(意味著容易學習),但是處於剛起步階段,用的人太少了。
如果是金融計量領域,強烈建議學會SAS。SAS是最權威,速度也很快,當然最大的問題是昂貴,而且可編程能力不是多麼好。但是金融裡面數據量都非常非常非常大,一般的軟體都癱的時候,SAS就派上用場了。
像我自己,做應用的時候都是用stata整理數據,能用stata的堅決不用其他軟體。但是因為有的時候做一些理論計量的工作,所以matlab也是必不可少的。我也在學習Julia,因為matlab的速度實在太慢。Python我一般不用來做科學計算,用的人不多,而且速度慢,一般是用來抓數據的。
最後還是補充一點吧,為什麼我推薦matlab而不是其他的軟體,也是有道理的。很多模型,比如空間計量模型(spatial econometrics)、貝葉斯估計、以及宏觀計量裡面的DSGE model、SVAR等模型,在stata、Eviews裡面都是沒有什麼現成的東西可以用的,但是matlab提供了豐富的包,比如Dynare就是基於Matlab的,還有LeSage的空間計量軟體包等等,也是基於matlab的。所以幾乎你想用的模型matlab裡面都能找到codes然後直接用。就算沒有,你自己在matlab裡面寫,也不是什麼難事。
最後想起一句話來,關於這些軟體的選擇(stata除外,因為stata在應用計量領域的地位是幾乎不可替代的)可以用兩句話來概括:如果你自己的時間比計算機的時間寶貴的話,學習matlab、R、甚至Python、Julia是最合適的,如果計算機的時間比你的時間寶貴的話,學習C、Fortran是必須的。當然除非你的工作非常特殊(比如一些大型的結構模型的估計),一般來說,還是自己的時間更寶貴一點。
綜上,做應用和做理論是不可能用一種軟體解決的,建議根據自己的方向進行挑選。我覺著stata、matlab是比較推薦的,一個方便,一個靈活,都很強大,而且學習難度都不大,用的人都很多,交流起來相當方便。
4)網友張真實
數據,簡單的用excel,直觀,方便。復雜一些的…excel最多可以有6萬多行,你確定你需要從那麼大量的數據開始「學經濟學么?
復雜的用R,各種模型,演算法,實現,基本上R都有對應的軟體包了,下載下來直接用即可,多讀文檔多練多用,半年左右就可以拋開excel直接用R作實戰了。我博士論文全部回歸和輸出都是用R的,現在寫的論文也都用它。替代品是Stata。也很好,但如果你和我一樣是從0開始,那麼強烈建議選R。
R的一個不足是沒法作符號運算,這個免費的解決方案有python搭配scipy numpy等幾個包,不過建議你用mathematica,它的符號計算功能最強大,輸出格式也最好。你可以找個jacobian矩陣搞一下符號計算,比較一下結果就知道了。
Python這東西,熟悉了R之後,發現有功能是R實現不了的,到時候有實際需求了,再學也不遲。不是立刻就需要的。
此外,所有經濟學研究(我是指empirics類型的,具體意思你懂的),都要會用latex,可以把它看做是一門編程語言。在word里排數學公式,用不了多久你就會瘋掉。R中可以用ggplot2來繪圖,輸出到tex中。普通數據表用xtable包輸出到tex,回歸結果用stargazer輸出到tex,都很方便。
5)網友bayes
首先要說的是R,絕對是目前國外學術界的主流,統計系基本除R以外沒有其他了,計量作為和統計相關的方向,R也在逐漸滲透。所以推薦學習。
順便說一句,R的學習曲線是比較陡峭的,所以我不太建議零基礎的人從R開始,否則挫折感會比較強烈。而python會略好,所以我建議從python開始。
python並非是專用於統計或者計量的軟體,而是一種非常流行的通用編程語言。經過多年發展,庫也非常齊備。我試用過numpy,scipy和pandas等庫,與其他通用編程語言相比,算是相當好用,不過個人感覺還是比不上R,比如畫圖,
ggplot2真心是神一般的存在,python的庫還是略遜一籌。但是,除了數據處理之外,python可以乾的事情太多了,也太牛了。我們主要要用到的,比如網頁採集數據,需要正則表達式,解析網頁等等。這些方面python就比R有優勢多了。
當然,從趨勢來看,未來似乎python比R更優。R是一群統計學家在編程序,python是一群計算機專家在爭取搞數據處理。似乎python的基礎更扎實。個人觀點,僅供參考。
stata我認為是除了R以外最好的計量軟體了,我兩者均用過數年數個項目,但是依然感覺R更好用,整理和處理數據更方便。所以即使在樓上諸位所提到的微觀計量領域,我依然更喜歡R。
除此以外spss,或者eviews等,感覺管理類學生用的更多,功能比較受限,不太推薦。這里不贅述。上述的幾個軟體,還有個問題,在於都是收費的,考慮到未來知識產權的保護,還是用免費的略靠譜。
R的主要缺點有兩個:
1,面對大數據乏力。這方面sas確實有優勢,但是不得不說,sas的語法太反人類了,完全接受不能。面對這個問題,我要說的是,你得看問題有多大。以我的經驗,經濟裡面的數據量似乎還不足以超過R的處理上限很多。可能金融的高頻數據會比較大,我個人沒啥經驗,如果遇到再補充。我嘗試過10g的數據,最簡單的辦法,不是學sas,而是買16g的內存。:)以現在的內存價格,我覺得32g以下的問題不大。
2,性能不足。這方面python也有同樣的問題,最好的解決方案是混合c/c++,不過這個就是無底洞了,耗時極多,都不見得能學好。建議的方法,還是買硬體,這個最簡單。:)當然用並行包等,也是解決方法之一,我嘗試過幾次用機房的多台機器做集群,不是太成功。求高人指點。
上面諸位還提到過幾個軟體,我也略微說一下自己知道的一些軟體的看法:
matlab:好東西,關鍵還是性能問題,同樣可以靠c/c++來解決。但是我不喜歡比較大的軟體,為了求個均值方差,等它啟動就佔了5分鍾。。。
julia:好東西X2,目前關注中,可能還比較年輕,導致配套的庫略少,不過看好未來發展,主要是吸取了matlab,python和c/c++的有點,寫的快,運算的也快,未來看漲,緊密關注。
最後提一下函數式編程,是個好東西,但是不看好純粹函數式編程的未來。它體現了一種頗先進的編程思想,但是在實際工作中,往往性能方面的問題較大。要解決這個問題,還是的混合函數式編程和其他方式,但這就是python,R等軟體已經實現的方式,似乎又沒有必要專門去學其他的函數式編程了。
6)上海財經大學博士 榮健欣
Stata微觀計量中應用極多,主要是直接輸命令回歸,需要編程的地方不多。
至於編程,推薦R、Python.
R是非常好的統計分析軟體,在計量經濟學中的應用可以見Econometrics in R, Applied Econometrics with R Time Series Analysis with Applications in R這幾本書
Python用來抓數據很好,並且有數學計算包SciPy可以部分替代Matlab之類科學計算的功能。
7)知乎網友justin
本科經濟統計學,由於學校奇葩的課程設置,我們分別使用過:
EViews:計量經濟學,時序和多元統計。
Stata:計量經濟學。
SPSS:專門開的一門課,這個巨汗,權當復習了一遍統計學。
Excel:大一的統計入門課使用的,這個也巨坑,就是簡單的函數使用,一點沒有涉及VBA。
Matlab:這個沒有專門的課,是上完了C語言程序設計以後副產品,後來接觸了R和Mathematica就基本拋棄了它。
R/S-Plus:在回歸分析的時候使用了S-Plus,不過那時候我已經使用R語言很久了,而且S-Plus基本兼容,所以沒有使用過S-Plus。
Minitab:質量控制課程上用的,基本的統計加上一些實驗設計。
SAS:這個在實驗室中自學過幾次,直接被其奇葩的語法雷到了,據說我們學校的研究生有專門的SAS課程(類似於本科的SPSS課程),呵呵了~
我們系的妹(xue)紙(ba)就曾經抱怨說使用的軟體太多了,完全被逼瘋的感覺,還給我們親愛的系主任提過意見。作為學渣也就這個問題問過系主任,她的意思是不同的軟體在處理不同的數據時候是各有所長的,而且你們課程還是蠻輕松的,就多學點吧,另外不同的老師有不同的軟體使用愛好,上課使用不同的軟體是必然的。
學習經濟學的同學,Excel和SPSS,EViews(或者Stata)就蠻好的了,Stata和EViews都可以寫一些程序的,SPSS的界面化操作也是很友好的。本人使用的R,在上各種課中也都會在學了那些軟體後再使用R來實現(其實絕大多數時候R都已經有現成的包了,我也大多是直接使用),R還是很不錯的,推薦。
很多前輩也提出了,經濟學學生學習編程適可而止就好了,要不然就是一條不歸路啊,面臨著徹底轉行的危險,本人就是一枚反面例子(淚~。所以什麼Python啊,C++啊,Julia啊就不要接觸了。
4. 金融、經濟專業需要學習編程嗎
金融,經濟專業往往需要用到計算機,因此是要掌握一些簡單的編程,只需要簡單掌握既可以不需要精通,不會像計算機專業的那麼復雜。