Czy język R jest wiarygodny w dziedzinie ekonomii?


64

Jestem absolwentem ekonomii, który niedawno przeszedł na R z innych bardzo znanych pakietów statystycznych (głównie używałem SPSS). Obecnie moim małym problemem jest to, że jestem jedynym użytkownikiem R. w mojej klasie. Moi koledzy z klasy używają Staty i Gaussa, a jeden z moich profesorów powiedział nawet, że R jest idealny do inżynierii, ale nie do ekonomii. Powiedział, że wiele pakietów jest budowanych przez ludzi, którzy dużo wiedzą o programowaniu, ale niewiele o ekonomii i dlatego nie są wiarygodni. Wspomniał również o tym, że ponieważ w rzeczywistości nie są zaangażowane żadne pieniądze w budowę pakietu R, nie ma zachęty do robienia tego poprawnie (w przeciwieństwie na przykład do Staty) i że używał R przez pewien czas i uzyskał „śmieszne” wyniki w jego próby oszacowania niektórych rzeczy. Ponadto narzekał na generator liczb losowych w R, który, jak powiedział, był „

Używam R od nieco ponad miesiąca i muszę powiedzieć, że się w nim zakochałem. Wszystkie te rzeczy, które słyszę od mojego profesora, po prostu mnie zniechęcają.

Więc moje pytanie brzmi: „Czy R jest wiarygodny w dziedzinie ekonomii?”.


30
„wiele pakietów jest budowanych przez ludzi, którzy dużo wiedzą o programowaniu, ale niewiele o ekonomii”. Autorzy pakietów są praktycznie zawsze naukowcami lub naukowcami pierwszymi, a programiści (bardzo) odległymi (ostatnimi) sekundami. Właściwie myślę, że wyzwaniem byłoby znalezienie pakietu autorstwa „programisty”.
Brandon Bertelsen

9
Czy mogę zaprosić Ciebie i naszych innych ekonomistów
zajmujących się

18
Wygląda na to, że w komentarzach pana profesora jest też trochę profesjonalnego szowinizmu. W jaki sposób bycie ekonomistą jest gwarancją niezawodności? Ufałem raczej programistom (tak naprawdę to zawód, nie jest to coś, co każdy mógłby zrobić dobrze bez szczególnego doświadczenia lub szkolenia) i statystom w tworzeniu niezawodnego oprogramowania statystycznego.
Gala,

23
„Idealny dla inżynierii, ale nie dla ekonomii” ze względu na niezawodność? Wolałby zawalić się drapacz chmur niż gospodarkę? Ten człowiek jest idiotą. Opuść tę szkołę i znajdź taką, w której nie ma obsady idiotów.
Spacedman

10
Oprogramowanie komercyjne może być dobre lub złe. Oprogramowanie typu open source może być dobre lub złe. Liczy się to, czy używane oprogramowanie jest dobre. Nie decyduj o tym na podstawie uprzedzeń i dogmatów. Użyj prawdziwych dowodów.
David Heffernan,

Odpowiedzi:


83

Podzielę się przeciwstawnym punktem widzenia. Jestem ekonomistą. Zostałem przeszkolony w ekonometrii przy użyciu SAS. Pracuję w sektorze usług finansowych i właśnie dziś zaktualizowałem modele oparte na języku R, których będziemy używać jutro, aby narażać miliony dolarów na ryzyko.

Twój profesor po prostu się myli. Ale popełniany przez niego błąd jest BARDZO powszechny i ​​warto go omówić. Zdaje się, że twój profesor łączy ideę oprogramowania R (implementacja GNU języka S) w porównaniu z pakietami (lub innym kodem) zaimplementowanym w R. Potrafię pisać bzdurne implementacje regresji liniowej za pomocą SAS IML. W rzeczywistości zrobiłem to samo. Czy to oznacza, że ​​SAS to bzdura? Oczywiście nie. SAS jest gówniany, ponieważ ich ceny są nieprzejrzyste, absurdalnie drogie, a ich wewnętrzni konsultanci obiecują, niedostarczają i naliczają premię za przyjemność. Ale dygresję ...

Otwartość R jest mieczem obosiecznym: Otwartość pozwala każdemu Tomowi, Dickowi lub Harry'emu napisać bzdurną implementację dowolnego algorytmu, który wymyślą, paląc trawkę w piwnicy budynku ekonomii. Ta sama otwartość pozwala praktykującym ekonomistom na dzielenie się kodem i wzajemne ulepszanie kodu. Reguły licencjonowania z R oznaczają, że mogę pisać kod równoległy do ​​równoległego uruchamiania R w chmurze Amazon i nie muszę się martwić opłatami licencyjnymi dla klastra 30-węzłowego. To OGROMNE zwycięstwo dla analizy opartej na symulacji, która jest dużą częścią tego, co robię.

Komentarz twojego profesora, że ​​„wiele pakietów jest budowanych przez ludzi, którzy dużo wiedzą o programowaniu, ale niewiele o ekonomii” jest bez wątpienia poprawny. Ale na CRAN jest 3716 pakietów. Możesz być pewien, że wiele z nich nie zostało napisanych przez ekonomistów. W ten sam sposób, że możesz być pewien, że wiele z 105 089 modułów w CPAN nie zostało napisanych przez ekonomistów.

Wybierz oprogramowanie ostrożnie. Upewnij się, że rozumiesz i przetestowałeś używane narzędzia. Upewnij się także, że rozumiesz prawdziwą ekonomię, za którą kiedykolwiek wybierałeś wdrożenie. Zamknięcie się w zamkniętym oprogramowaniu jest droższe niż same opłaty licencyjne.


Dziękuję za odpowiedź. Sugerujesz więc, żebym spróbował nauczyć się czegoś innego? Czego więc sugerowałbyś, żebym się nauczył?
SavedByJESUS

5
Nie, używam R prawie całkowicie. Czy są jakieś pakiety, z których twój profesor lub inni ekonomiści często korzystają? Nie używam żadnych pakietów specyficznych dla ekona. Używam plyr, matrix i wielu innych pakietów, ale żaden nie jest zaprojektowany specjalnie dla ekonomistów.
JD Long

Czy miałeś na myśli „pakiety” i powiedziałeś, że nie powinienem się zamykać na zamknięte oprogramowanie?
SavedByJESUS

3
„Otwartość pozwala każdemu Tomowi, Dickowi lub Harry'emu napisać bzdurną implementację dowolnego algorytmu” - nie ma to nic wspólnego z otwartością, jest wyłącznie wynikiem posiadania publicznego interfejsu API, który ma wiele produktów o zamkniętym źródle (tj. oprogramowanie, które ma interfejs wtyczki). Dobra odpowiedź.
naught101

3
„Nie ma teraz, ani nigdy nie było ani nie będzie żadnego języka programowania, w którym pisanie złego kodu jest najmniej trudne”.
ardave

33

Nie jest mniej lub bardziej niezawodny niż inne oprogramowanie. Podstawowy i zalecany R jest prawdopodobnie mniej podatny na błędy, niż mogą być przesłane pakiety, ale zależy to od autorów.

Ale największą zaletą R jest to, że możesz sprawdzić, czy tak jest! Jest to darmowe oprogramowanie, nie takie jak Stata, SPSS lub podobne. Dlatego nawet jeśli byłby zawodny, w końcu zostałby wykryty. Może nie być tak w przypadku oprogramowania własnościowego. Możesz nawet pomóc zwiększyć niezawodność.

W pozostałej części komentarzy twojego profesora wyraźnie się myli i osoba rozpowszechnia FUD. Ale pozwólcie, że powiem, że niewiarygodne oprogramowanie powinno być najmniejszym problemem ekonomisty, sądząc po modelach i założeniach oraz przewidywaniach poczynionych w tej dziedzinie.

Trzymaj się R, jeśli ci się podoba, a może ty i profesor możecie nawet przyczynić się do opracowania dobrego oprogramowania dla ekonomii. Oto prawdopodobnie interesujący punkt wyjścia http://cran.r-project.org/web/views/Econometrics.html i http://cran.r-project.org/web/views/TimeSeries.html


1
Dziękuję Ci bardzo! Naprawdę chcę trzymać się R. Myślę, że to świetne oprogramowanie. Poza tym zawsze byłem wielkim fanem open source.
SavedByJESUS

17
+1 za stwierdzenie niefortunnej prawdy naszych czasów. „niewiarygodne oprogramowanie powinno być najmniejszym problemem ekonomisty, sądząc po zastosowanych modelach i założeniach oraz prognozach poczynionych w tej dziedzinie”.
digitalmaps

2
Doceniam ten krzywy ton, ale możliwe jest pewne nieporozumienie. Błędy w oprogramowaniu prawnie zastrzeżonym można wyświetlać na różne sposoby, np. Jeśli istnieje wyraźna niezgodność z wynikami w R, które wydają się całkowicie poprawne. Jest tu trochę FUD o oprogramowaniu prawnie zastrzeżonym, które jest tak samo nieodpowiednie, jak głupie FUD o R. Checkability w R to sprawdzalność w zasadzie dla praktycznie wszystkich użytkowników R. istnieje taka funkcja, ale powiedzenie, że możesz sam sprawdzić kod, jest również trochę retoryczne. Zauważ, że w przypadku Stata duża część kodu jest widoczna dla użytkowników; to po prostu plik wykonywalny, który nie jest.
Nick Cox

23

Twój profesor wysuwa śmiałe twierdzenia. Podejrzewam, że problemem była nieznajomość języka R, a nie faktyczne wyniki. Pracuję w firmie, która wykonuje wiele modelowania ekonometrycznego i robimy wszystko w R. Przekształciłem również mojego kolegę ekonomistę w używanie R.

Jeśli chodzi o dziedzinę ekonomii z mojego osobistego doświadczenia, kwestia niezawodności może być odwrotna. Na przykład EVIEWS wersja 5 zawierała dziwne błędy podczas pracy z danymi panelu. I zgłosił zwykłą statystykę Durbina-Watsona dla połączonej OLS, która w ustawieniach danych panelu jest po prostu błędna. Pakiet R do pracy z danymi panelu również ma swoje problemy, ale argument pieniędzy tutaj gra zdecydowanie na korzyść R.

Ostatnio byłem na kursie niestacjonarnych metod szeregów czasowych. Wykładowca wykorzystał oprogramowanie RATS. Podczas demonstrowania kodu zalecił kliknięcie ikony, która na wszelki wypadek czyści obszar roboczy kilka razy. Mów o niezawodności.


20

Jestem ekonomistą i od 4 lat pracuję w badaniach, głównie zajmując się ekonometrią stosowaną. Istnieje wiele pakietów ekonometrycznych i jest na nie miejsce. Moim zdaniem, z ekonomii, Stata jest używana do prawie wszystkiego oprócz szeregów czasowych, Szczury, Eviews i Ox są używane do szeregów czasowych, Matlab i Gauss są używane do programowania na niższym poziomie.

Zaletą R jest to, że jest w stanie zrobić prawie wszystko, co robią inne programy, i jest bezpłatny i otwarty. Wymaga to trochę więcej programowania i mniej procedur, ale na końcu wszystko się załatwia. Używam Staty przez większość czasu, ale gdybym musiał wybrać jedno oprogramowanie do zrobienia wszystkiego, wybrałbym R.

R jest dość niezawodny w przypadku większości problemów ekonometrycznych, ale mogę podać przykłady niektórych procedur napisanych dla R, które nie są wiarygodne. Miałem problemy z 3SLS i procedurami szacowania systemu zapotrzebowania. Numeryczne procedury optymalizacji nie są tak niezawodne, jak w przypadku Stata lub Gaussa. Z drugiej strony R jest znacznie lepszy w przypadku problemów takich jak regresja kwantylowa. Mimo to, mając dobrą znajomość języka R, możesz dowiedzieć się, na czym polega problem w procedurach pisanych przez użytkownika R, naprawić go i kontynuować pracę. Nie sądzę więc, aby brak niezawodności w niektórych określonych procedurach był przekonującym powodem, aby w ogóle nie używać R.

Radzę nadal używać R, ale mieć doświadczenie w innym programie, który jest szeroko stosowany w twojej dziedzinie, np. Stata dla mikroekonometrii lub Szczury dla szeregów czasowych.


13

Kiedy uczyłem statystyki na poziomie absolwenta, mówiłem moim studentom: „Nie dbam o to, jakiego pakietu używasz, i możesz wykorzystać wszystko do odrabiania lekcji, ponieważ oczekuję, że dostarczysz merytorycznych wyjaśnień i odejdę, jeśli widzieć tr23y5mnazwy zmiennych w twoich zgłoszeniach. Mogę wesprzeć twoją naukę bardzo dobrze w Stacie i dość dobrze w R. Dzięki SAS jesteś sam, jak twierdzisz, że wziąłeś na nim kurs. Z SPSS lub Minitab, niech Bóg cię błogosławi ". Wyobrażam sobie, że rozsądni pracodawcy pomyśleliby tak samo. Liczy się twoja produktywność pod względem wyników projektu. Jeśli możesz osiągnąć cel w R przy 40 godzinach pracy, dobrze, jeśli możesz to osiągnąć w C ++ w 40 godzin pracy, dobrze; jeśli wiesz, jak to zrobić w R w 40 godzin, ale twój przełożony chce, abyś to zrobił w SAS, i musisz poświęcić 60 godzin na naukę podstaw i gdzie idą średniki, może to być mądre tylko w kontekście dużego obrazu reszty kodu w SAS ... a wtedy menedżer nie był zbyt mądry, wynajmując programistę R.

Z tej perspektywy całkowitego kosztu „darmowy” R jest niezwykle przesadzonym mitem. Każdy poważny projekt wymaga niestandardowego kodu, choćby do wprowadzania danych i formatowania danych wyjściowych, a to niezerowy koszt profesjonalnego czasu. Jeśli takie wprowadzanie danych i formatowanie wymaga 10 godzin kodu SAS i 20 godzin kodu R, R jest droższym oprogramowaniem na marginesie , jak powiedziałby ekonomista, tj. Pod względem dodatkowego kosztu wytworzenia danego elementu funkcjonalności . Jeśli duży projekt wymaga 200 godzin czasu programisty R i 100 godzin czasu programisty Stata, aby zapewnić identyczną funkcjonalność, Stata jest ogólnie tańsza, nawet uwzględniając licencję ~ 1 000 USD, którą musisz kupić. Byłoby interesujące zobaczyć takie bezpośrednie porównania; Byłem zaangażowany w przepisywanie ogromnego bałaganu 2 MB kodu SPSS, który, jak się mówi, gromadził się przez około 10 osobolat w około 150 000 kodu Stata, który działał tak szybko, może być odrobinę szybszy; to był około 1 projekt na rok. Nie wiem, czy ten współczynnik wydajności 10: 1 jest typowy dla porównań SPSS: Stata, ale nie byłbym zaskoczony, gdyby tak było. Dla mnie praca z R jest zawsze dużym wydatkiem ze względu na koszty wyszukiwania: muszę ustalić, który z pięciu pakietów o podobnych nazwach robi to, co muszę zrobić, i ocenić, czy jest wystarczająco niezawodny, aby użyć go w moja praca. Często oznacza to, że taniej jest dla mnie napisać własny kod Stata w krótszym czasie, niż spędziłbym zastanawiając się, jak sprawić, by R działał w danym zadaniu. Należy rozumieć, że jest to moja osobista osobliwość; większość ludzi na tej stronie lepiej korzysta zR niż ja.

Zabawne, że twój prof wolałby Statę lub GAUSS od R, ponieważ „R nie zostało napisane przez ekonomistów”. Ani Stata, ani GAUSS; są napisane przez informatyków używających narzędzi informatycznych. Jeśli twój profesor ma pomysły na programowanie z CodeAcademy.com, to jest lepsze niż nic, ale tworzenie oprogramowania klasy profesjonalnej różni się tak samo od pisania w polu tekstowym CodeAcademy.com, jak jazda ciężarówką różni się od jazdy rowerem. (Stata został jednak założony przez przekształconego informatyka ekonometrycznego z pracy, ale nie zajmuje się tą ekonometrią pracy od około 25 lat).

Aktualizacja : Jak skomentował poniżej AndyW, możesz napisać okropny kod w dowolnym języku. Następnie pojawia się pytanie o koszt, który język jest łatwiejszy do debugowania. Dla mnie wygląda to na połączenie tego, jak dokładne i pouczające jest wyjście, oraz jak łatwa i przejrzysta jest sama składnia, i oczywiście nie mam na to dobrej odpowiedzi. Na przykład Python wymusza wcięcia kodu, co jest dobrym pomysłem. Kod Stata i R można złożyć w nawiasach, co nie będzie działać z SAS. Użycie podprogramów jest mieczem obosiecznym: użycie *apply()z ad-hoc functions w R jest oczywiście bardzo wydajne, ale trudniejsze do debugowania. Podobnym tokenem Stata localmoże maskować prawie wszystko, a domyślna wartość pustego łańcucha, chociaż przydatna, może również prowadzić do trudnych do uchwycenia błędów.


1
To dobra odpowiedź, ale nadmierne uogólnienia IMO nie są zbyt pomocne (możesz napisać zły lub dobry kod w praktycznie dowolnym języku, Stata nie jest magiczna w egzekwowaniu dobrych standardów kodowania). Z trudem widzę, jak 2 MB kodu SPSS jest wydajnym kodem SPSS na początek (przy nowszych wersjach z podświetlaniem składni nie byłoby nawet zalecane otwieranie takiego pliku w edytorze). Wydaje się, że istnieje spora szansa, że ​​dobrze spędził czas na pisaniu w dowolnym języku.
Andy W

1
W ogóle nie piszę kodu SPSS i rozumiem, że kod, z którym pracowałem, również nie został zapisany jako kod, ale raczej zapisany z interfejsu wskaż i kliknij, a następnie może zostać nieco podrasowany. Wyobrażam sobie, że SPSS umieściłby wszystkie wartości domyślne i takie przy konwersji interfejsu na kod, więc na początku nie był to wyjątkowo wydajny kod.
StasK,

12

Byłbym bardzo ostrożny wobec każdego, kto twierdzi, że jest faktem, ale nigdy nie popiera niczego istotnego.

Możesz łatwo odwrócić jego argumenty.

Na przykład ludzie, którzy zarabiają na pisanie kodu, mogą mieć MNIEJSZĄ motywację do poprawnego jego wykonania, ponieważ oczekuje się, że ich kod będzie poprawny, podczas gdy typowy mieszkaniec piwnicy chce dokonać zatwierdzenia, które zrobi wrażenie na liderach projektu. Może nie przejmował się tym, ile dodatkowego czasu spędza na robieniu tego za darmo, jeśli oznacza to, że praca jest wykonywana wysokiej jakości.

Jeśli generator liczb losowych jest „niechlujny” (co jest niejasnym terminem; łatwo zastępuje prawdziwy fakt, aby poprzeć jego argument), powinien być w stanie to udowodnić lub pokazać komuś, kto może.

Jeśli otrzyma niespójne wyniki z pakietu, powinien być w stanie wskazać kroki, które podjął, aby uzyskać ten wynik. Jeśli to naprawdę błąd i masz dobre umiejętności programistyczne, możesz nawet spróbować go naprawić!

Zdaję sobie sprawę, że moja odpowiedź nie odpowiada bezpośrednio na twoje pytanie (przepraszam). Po prostu ze sposobu, w jaki wypowiada swoje argumenty, widać, że nie ma za tym mięsa. Jeśli tak, możesz go edytować w swoim pytaniu, aby ludzie tutaj mogli omówić go dalej!


5

W ReplicationWiki (nad którym pracuję) widać, że R był jednym z pakietów oprogramowania wykorzystywanych najczęściej w niektórych 2000 badaniach empirycznych opublikowanych w niektórych dobrze znanych czasopismach już w latach 2000–2013. Wygląda na to, że był częściej używany w ostatnich latach. Stata była używana najczęściej (> 900 razy), a następnie 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, nowsze badania), SPSS (5) i kilka innych. Często używa się więcej niż jednego pakietu.


To ciekawy dowód na wykorzystanie oprogramowania. Ale nie ma bezpośredniego związku z tym pytaniem, poza tym, że dostarcza jasnych wskazówek, że R jest powszechnie używany (wniosek, że również jest powszechnie zaufany, jest niemądry).
Nick Cox

2

Używam R od pół dekady, a także używam SAS, SPSS, Calc, WEKA i kilku innych narzędzi. Nigdy nie podobało mi się żadne narzędzie tak bardzo, jak było w przypadku R. Zasadniczo R jest dla tych, którzy myślą samodzielnie i próbują czegoś na własną rękę. Jeśli chodzi o statystyki, chodzi przede wszystkim o metody. Użytkownicy mogą nie wiedzieć, jak metody zostały zdefiniowane i modelowane w oprogramowaniu komercyjnym i mogą być poprawne lub błędne. R jest dla tych, którzy chcieliby zdefiniować metody i użyć tych metod, które pasują do ich potrzeb. Chodzi o wolność. Ta wolność nie istnieje w przypadku komercyjnego oprogramowania, pomimo wydawania pieniędzy i kupowania ich. Wiedza jest własnością społeczności (społeczeństwa), której nikt nie może rościć sobie prawa do autorstwa. Badania polegają na poszukiwaniu rozwiązań problemów. Jeśli chodzi o R, nie trzeba się martwić o metody, które użytkownicy mogą dowolnie definiować i modyfikować. Na przykład, jeśli istnieje jakiś problem specyficzny dla modelu lub błędnie zdefiniowane metody, które można naprawić, naprawiając lub opracowując nowy kod. W ten sposób badacz nie tylko rozwija wiedzę, ale także ewoluuje.

Zaletą R jest to, że nie trzeba być programistą komputerowym. Metody statystyczne polegają na pisaniu funkcji za pomocą instrukcji sterujących i pętli (na początek, rzeczy na wyższym poziomie pojawiają się później). R ma bardzo łatwe środowisko programowania dla początkujących.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.