題:
R語言在經濟學領域是否可靠?
SavedByJESUS
2012-04-04 04:40:36 UTC
view on stackexchange narkive permalink

我是經濟學的研究生,最近從其他非常著名的統計軟件包轉換為R(我主要使用SPSS)。目前,我的小問題是我是班上唯一的R用戶。我的同學使用Stata和Gauss,我的一位教授甚至說R是工程學的理想選擇,但不適用於經濟學。他說,許多軟件包是由對編程了解很多但對經濟學了解不多的人構建的,因此並不可靠。他還提到了這樣一個事實,因為構建R包實際上沒有涉及金錢,因此沒有動機去正確地做它(例如,與Stata不同),並且他花了一段時間使用R並在其中獲得了一些“荒謬”的結果。他嘗試估算一些東西。此外,他抱怨說R中使用了隨機數生成器,他說這是“混亂的”。

我使用R僅僅一個多月了,我必須說我愛上了它。我從教授那裡聽到的所有這些東西只是讓我感到沮喪。

所以我的問題是:“ R在經濟學領域是否可靠?”

“許多軟件包是由對編程了解很多,但對經濟學不太了解的人構建的”。軟件包的作者實際上總是科學家或學者第一,程序員是(很遠)(最後)。實際上,我認為找到由“程序員”創作的軟件包將是一個挑戰。
我也可以邀請您和我們的其他統計經濟學家訪問http://economics.stackexchange.com/-我們歡迎您提出的問題和有關經濟學的答案
看來您的教授的評論中還有些專業沙文主義。經濟學家如何保證可靠性?我相當信任軟件開發人員(這實際上是一種職業,沒有任何特殊經驗或培訓,任何人都無法做得很好)和統計學家會產生可靠的統計軟件。
因為可靠性,“對工程而言是完美的,但對經濟而言卻不是”他寧願摩天大樓倒塌也不願經濟破產?這個男人是個白痴。退出那所學校,找到一個沒有白痴的學校。
@EnergyNumbers非常感謝。我剛註冊。
商業軟件可以是好是壞。開源軟件可以是好是壞。重要的是您使用的軟件是否良好。不要基於偏見和教條來決定。使用真實證據。
大量的程序包是由從事專業工作的人員(例如科學家,金融專業人員,統計人員等)來編程的。在這一點上,錯誤地假設程序包不會涉及任何金錢,事實恰恰相反。
一位經濟學教授相信金錢激勵可以保證質量嗎?我認為檸檬市場是課程中的第一件事。
“他還提到了這樣一個事實,因為構建R包實際上沒有涉及金錢,因此沒有動機去正確地做它。”除了金錢,還有許多其他激勵措施!
另請參閱:[r-vs-sas-why-is-sas-prefered-by-private-companies](http://stats.stackexchange.com/questions/33780/)。
我知道許多經濟學博士拒絕使用多元回歸,因為某些係數的符號可能與單變量回歸係數的符號不一致。他們寧願自己舒適地生活,而不是使用正確的方法。
作為為R做出貢獻的人,我認為R面臨的最大問題之一是許多額外的軟件包**是由科學家(通常是統計學家)而不是程序員開發的。程序員通常對OOP,單元測試等有很好的了解,從而可以得到可靠的代碼。許多統計學家知道他們想實現的算法背後的數學原理,但不知道製作可靠軟件的實踐。
八 答案:
JD Long
2012-04-04 06:01:15 UTC
view on stackexchange narkive permalink

讓我分享一個對比的觀點。我是經濟學家。我使用SAS進行了計量經濟學方面的培訓。我從事金融服務工作,今晚我更新了基於R的模型,明天將使用這些模型來使數百萬美元面臨風險。

您的教授是完全錯誤的。但是他犯的錯誤非常普遍,值得討論。您的教授似乎正在做的事情是將R軟件(S語言的GNU實現)與R中實現的程序包(或其他代碼)的思想混合在一起。我可以使用SAS IML編寫線性回歸的廢話實現。事實上,我已經做到了。這是否意味著SAS很爛?當然不是。 SAS之所以胡扯,是因為它們的定價不透明,價格高得離譜,而且他們的內部顧問對承諾,交付不足和娛樂性收取溢價。但是我離題了……

R的開放性是一把雙刃劍:開放性允許任何Tom,Dick或Harry編寫他們想在煙囪中地下室時想出的任何算法的廢話實現。經濟建設。相同的開放性允許實踐中的經濟學家公開共享代碼並改進彼此的代碼。使用R的許可規則意味著我可以編寫並行化代碼以在亞馬遜的雲上並行運行R,而不必擔心30節點集群的許可費用。這是基於模擬的分析的巨大勝利,這是我所做的很大一部分。

您的教授的評論毫無疑問是正確的,“許多軟件包是由對編程了解很多但對經濟學了解不多的人構建的”。但是CRAN上有3716個軟件包。您可以確定其中許多不是經濟學家寫的。以同樣的方式,您可以確定CPAN中的105,089個模塊中的許多模塊不是經濟學家編寫的。

仔細選擇軟件。確保您了解並測試了正在使用的工具。另外,還要確保您了解選擇哪種實施背後的真實經濟學。鎖定在封閉的軟件解決方案中,不僅需要支付許可費用,而且成本也更高。

感謝您的答复。那麼,您是否建議我嘗試學習其他東西?那你建議我學什麼呢?
不,我幾乎完全使用R。您的教授或其他經濟學家是否經常使用某些套餐?我不使用任何特定於econ的軟件包。我使用plyr,matrix和許多其他軟件包,但沒有一個是專為經濟學家設計的。
因此,您是指“軟件包”,還是說我不應該被鎖定在封閉的軟件解決方案中?
*“開放性允許任何Tom,Dick或Harry編寫任何算法的廢話實現” * –與開放性無關,這純粹是擁有許多封閉源產品都具有的公共API的結果(即具有插件界面的任何專有軟件)。很好的答案。
繼續進行naught101評論-這是Stata背後的概念。它具有商業核心引擎和由第三方編寫的“統計軟件組件”存檔中的2142軟件包,數量與CRAN上的R軟件包相當。這些軟件包中的大多數都不可靠-我認為作為一名專業的Stata程序員,我可以說得出很多。但是越複雜的代碼通常越好,因為它需要一個人知道一些編程才能真正將1000多個Stata代碼包放在一起,而這些代碼包在大多數情況下會做有意義的事情...
“現在沒有,也從來沒有,也不會有任何一種編程語言,用它很難編寫出不好的代碼。”
Momo
2012-04-04 05:29:13 UTC
view on stackexchange narkive permalink

它並不比其他軟件可靠。基本和推薦的R可能不如貢獻的程序包容易出錯,但這取決於作者。

但是R的最大優點是您可以檢查一下是否是R!它是免費軟件,不同於Stata或SPSS或類似軟件。因此,即使它不可靠,也將最終被檢測到。專有軟件可能並非如此。您甚至可以幫助它變得更可靠。

對於您的教授的其餘評論,他顯然是錯誤的,並且有人在傳播FUD。但是讓我說,從使用的模型和假設以及該領域的預測來看,不可靠的軟件應該是經濟學家最不關心的問題。

如果您喜歡R,請與R保持聯繫,也許您和教授可以甚至有助於開髮用於經濟學的優秀軟件。這是 http://cran.r-project.org/web/views/Econometrics.html http://cran.r-project.org/web/ views / TimeSeries.html

非常感謝你!我真的想堅持使用R。我認為這是一個很棒的軟件。另外,我一直是開源的忠實擁護者。
+1表示我們這個時代的不幸真相。 “從該領域使用的模型和假設以及做出的預測來看,不可靠的軟件應該是經濟學家最不關心的問題。”
我很欣賞這裡的歪曲基調,但可能會有些分歧。專有軟件中的錯誤可以通過多種方式顯示,例如如果在R的結果上有明顯不同之處,則看起來是完全正確的。這裡有一些關於專有軟件的FUD,它與關於R的愚蠢的FUD一樣不當。這是一個存在的功能,但是說您可以自己檢查代碼也有點誇張。請注意,對於Stata而言,許多代碼對用戶可見。只是可執行文件不是。
mpiktas
2012-04-04 09:10:47 UTC
view on stackexchange narkive permalink

您的教授提出了一些大膽的主張。我懷疑問題出在不熟悉R語言,而不是實際產生的結果。我在一家從事大量計量經濟學建模的公司里工作,我們在R中做所有事情。我也將經濟學家的同事轉換為使用R。

關於我個人經驗中的經濟學領域,可靠性問題可能會反過來。例如,使用面板數據時,EVIEWS版本5有一些奇怪的錯誤。它報告了合併OLS的常規Durbin-Watson統計信息,這在面板數據設置中是完全錯誤的。用於面板數據的R包也有其問題,但是這裡的money參數強烈支持R。

最近,我當然在使用非平穩面板時間序列方法。講師使用了RATS軟件。在演示一些代碼時,他建議單擊某些圖標以多次清理工作區,以防萬一。談論可靠性。

jorpppp
2012-04-11 00:08:46 UTC
view on stackexchange narkive permalink

我是一名經濟學家,我從事研究工作已有4年,主要從事應用計量經濟學的研究。那裡有很多計量經濟學軟件包,所有這些軟件包都有空間。在我看來,在經濟學中,Stata幾乎用於時間序列,而Rats,Eviews和Ox用於時間序列,Matlab和Gauss用於更底層的編程。

R的優點是它能夠執行其他程序幾乎執行的所有操作,並且它是免費的且開放的。它需要更多編程,並且程序罐裝程序更少,但最終可以完成工作。我大多數時候都使用Stata,但是如果必須選擇一種軟件來完成所有工作,那麼我會選擇R。對於R不可靠。我在3SLS和需求系統估算例程方面遇到了問題。數值優化例程的穩定性不如Stata或Gauss。另一方面,R在分位數回歸等問題上要好得多。儘管如此,憑藉對R的良好使用知識,您可以在R的用戶編寫的例程中找出問題所在,進行修復,然後繼續工作。因此,我不認為某些特定例程中缺乏可靠性是根本不使用R的迫切原因。

我的建議是繼續使用R但要對其他廣泛使用的程序有經驗用於您的領域,例如微計量經濟學的統計數據或時間序列的統計數據。

StasK
2012-10-09 19:39:43 UTC
view on stackexchange narkive permalink

當我教授研究生水平的統計信息時,我告訴學生:“我不在乎您使用什麼軟件包,您可以在家庭作業中使用任何軟件包,因為我希望您能提供實質性的解釋,並且會加分。如果我在提交的文件中看到 tr23y5m 變量名,則可以關閉。我可以很好地支持您在Stata中的學習,並且可以在R中很好地支持您。通過SPSS或Minitab,上帝保佑您”。我想合理的雇主也會這麼想。重要的是您在項目成果方面的生產率。如果您可以用40個小時的工作來達到R的目標,那就好了;如果您可以在40個小時的工作中用C ++做到這一點,那就好了;如果您知道如何在40小時內在R中執行此操作,但是您的主管希望您在SAS中執行此操作,並且您必須花費60個小時來學習一些基礎知識和分號的去向,那麼這在上下文中是非常明智的剩下的大部分代碼都放在SAS中了……然後經理僱用了R程序員並不是很明智。

從總成本的角度來看,“免費” R是一個過於誇張的神話。任何嚴肅的項目都需要自定義代碼,即使只是用於數據輸入和格式化輸出,這也不是零的專業時間成本。就像經濟學家所說的那樣,如果這種數據輸入和格式化需要10個小時的SAS代碼和20個小時的R代碼,那麼R是價格更昂貴的軟件 產生給定的功能。如果大型項目需要200個小時的R程序員時間和100個小時的Stata程序員時間來提供相同的功能,則Stata 總體更便宜,即使需要購買大約$ 1K的許可證。看到這樣的直接比較會很有趣。我參與了重寫大量2Mb的SPSS代碼的過程,據說這些代碼已經在大約10個人年內積累到大約150K的Stata代碼中,並且運行速度差不多,可能會快一點。那是大約一年人的項目。我不知道這種10:1的效率比是否在SPSS:Stata比較中很典型,但是如果是這樣,我不會感到驚訝。對我來說,由於搜索成本,使用R總是很昂貴的:我必須確定五個名稱相似的軟件包中的哪個做我需要做的事,並確定它是否足夠可靠地供我在其中使用。我的工作。這通常意味著對我來說,用更少的時間編寫自己的Stata代碼會更便宜,因為我會花時間弄清楚如何使R在給定任務中工作。應該理解,這是我個人的特質;這個網站上的大多數人都比我更好的useR。

有趣的是,您的教授更喜歡Stata或GAUSS,而不是R,因為“ R不是經濟學家寫的”。 Stata或GAUSS都不是;它們是由計算機科學家使用計算機科學家的工具編寫的。如果您的教授從CodeAcademy.com上獲得了有關編程的想法,那總比沒有好,但是專業級軟件開發與在CodeAcademy.com文本框中鍵入內容一樣,因為駕駛貨運卡車與騎自行車不同。 (Stata最初是由一名勞動計量經濟學家轉變為計算機科學家,但是到目前為止,他已經從事勞動計量經濟學工作已有25年之久了。)

更新:正如AndyW所說在下面,您可以使用任何語言編寫糟糕的代碼。成本問題就變成了哪種語言更容易調試。對我來說,這看起來像是輸出的準確性和信息量以及語法本身的簡單性和透明性的結合,當然,我對此沒有很好的答案。例如,Python強制執行代碼縮進,這是一個好主意。可以將Stata和R代碼折疊在方括號中,而SAS無法使用。子例程的使用是一把兩刃劍:在R中將 * apply()與ad function s一起使用顯然非常有效,但更難調試。同樣,Stata local 可以掩蓋幾乎所有內容,並且默認為空字符串雖然有用,但也可能導致難以捕獲的錯誤。

這是一個很好的答案,但是IMO泛化效果不是很好(您可以用幾乎任何語言編寫不好的代碼或好的代碼,Stata在執行好的編碼標準方面並不是魔術師)。我很難看到2mb的SPSS代碼從一開始就是有效的SPSS代碼(使用語法突出顯示的新版本,甚至不建議在編輯器中打開這樣的文件)。似乎很有可能花了很多時間來重寫任何語言。
我根本不編寫SPSS代碼,我的理解是,我使用的代碼也不是編寫為代碼,而是從指向和單擊界面保存的,然後可能會被刷掉。我可以想像SPSS會將所有默認值以及諸如接口到代碼的轉換等內容放進去,所以從一開始它並不是一個非常有效的代碼。
gparent
2012-04-04 08:20:09 UTC
view on stackexchange narkive permalink

對於任何主張事實但絕不提供任何實質性支持的人,我會非常小心。

您可以輕鬆地繞開他的論點。

例如,獲得薪水來編寫代碼的人可能會以LESS動機將其改正,因為人們期望他們的代碼正確,而典型的地下室居民則想做出使項目負責人印象深刻的承諾。也許他不關心自己花了多少額外的時間來免費完成這項工作,如果這意味著可以完成高質量的工作。

如果隨機數生成器是“混亂的”(這是一個模糊的術語;很容易替換一個真實的事實以支持其論點),那麼他應該能夠證明這一點或向您展示可以做到的人。

如果他從軟件包中獲得不一致的結果,則他應該能夠指出他為獲得該結果而採取的步驟。如果這確實是一個錯誤,並且您具有良好的編程技能,您甚至可以嘗試為他修復此問題!

我知道我的回答並不能直接回答您的問題(對不起)。僅從他說出觀點的方式,您就可以看出背後沒有肉。如果有的話,請隨時在您的問題中對其進行編輯,以供此處的人員進一步討論!

Jan Höffler
2016-02-13 07:04:38 UTC
view on stackexchange narkive permalink

在我從事的ReplicationWiki中,您可以看到R是用於2000項經驗研究的軟件包之一,在2000- 2013。似乎在最近幾年中使用得更多。使用Stata的頻率最高(> 900次),其次是MATLAB(280),SAS(60),GAUSS(60),Excel(50),R(30),FORTRAN(30),Mathematica(19), EViews(18),z-Tree(16),dynare(15),RATS(12),C(8),C ++(6),python(5,最近的研究),SPSS(5)等。通常使用一個以上的包裝。

這是有關軟件使用情況的有趣證據。但是,除了提供清晰的指示表明R被廣泛使用(它被廣泛信任的推論也有密切關係)以外,它並沒有直接涉及這個問題。
M Kamakshaiah
2016-05-28 15:02:27 UTC
view on stackexchange narkive permalink

我使用R已有五年了,還使用SAS,SPSS,Calc,WEKA和其他一些工具。我從來沒有像R那樣享受過任何工具。基本上,R是針對那些獨立思考並嘗試自己學習的人的。當涉及統計時,它全都與方法有關。用戶可能不知道方法是如何在商業軟件中定義和建模的,它們可能是正確的還是錯誤的。 R適用於那些想要定義方法並使用適合其需求的方法的人。這都是關於自由的。儘管花錢買了,但商業軟件沒有這種自由。知識是社區(社會)的財產,沒有人可以聲稱擁有同一個著作權。研究都是關於尋找問題的解決方案。就R而言,無需擔心方法,因為用戶可以自由定義和修改。例如,如果存在任何特定於模型的問題或錯誤定義的方法,可以通過修復或開發新代碼來解決。這樣,研究人員不僅可以發展知識,而且可以發展。

R的優點是不必是計算機程序員。統計方法都是關於只使用控制語句和循環來編寫函數的方法(首先,更高級別的內容將在後面介紹)。 R為新手提供了非常簡單的編程環境。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...