Является ли язык R надежным в области экономики?


64

Я аспирант по экономике, который недавно перешел на R из других очень известных статистических пакетов (в основном я использовал SPSS). На данный момент моя маленькая проблема в том, что я единственный пользователь R в своем классе. Мои одноклассники используют Stata и Gauss, и один из моих профессоров даже сказал, что R идеально подходит для инженерии, но не для экономики. Он сказал, что многие пакеты создаются людьми, которые много знают о программировании, но мало что знают об экономике и поэтому не являются надежными. Он также упомянул тот факт, что, поскольку на самом деле нет денег, участвующих в создании пакета R, нет стимула делать это правильно (в отличие от Stata, например), и что он какое-то время использовал R и получил некоторые «нелепые» результаты в его попытки оценить кое-что. Более того, он жаловался на то, что он генератор случайных чисел в R, который, по его словам, был "

Я использую R чуть больше месяца, и должен сказать, что влюбился в него. Все эти вещи, которые я слышу от своего профессора, просто обескураживают меня.

Поэтому мой вопрос: «Надежен ли R в области экономики?».


30
«Многие пакеты создаются людьми, которые много знают о программировании, но мало что знают об экономике». Авторы пакетов практически всегда являются учеными или учеными, а программисты - (очень) отдаленными (последними) секундами. На самом деле, я думаю, что было бы непросто найти пакет, созданный «программистом».
Брэндон Бертельсен

9
Могу ли я пригласить вас и других наших экономистов по статистике на сайт economics.stackexchange.com - мы будем рады ответить на ваши вопросы и ваши ответы по экономике
EnergyNumbers

18
Кажется, в комментариях вашего профессора есть и небольшой профессиональный шовинизм. Как экономист является гарантией надежности? Я скорее доверял разработчикам программного обеспечения (на самом деле это профессия, а не то, что кто-то может сделать хорошо без особого опыта или обучения) и статистиков для производства надежного статистического программного обеспечения.
Гала

23
«Идеально для инженерии, но не для экономики» из-за надежности? Скорее небоскреб рухнул, чем экономика? Мужчина идиот. Выйдите из этой школы и найдите не укомплектованного идиотами.
Spacedman

10
Коммерческое программное обеспечение может быть хорошим или плохим. Программное обеспечение с открытым исходным кодом может быть хорошим или плохим. Важно то, хорошо ли используется программное обеспечение, которое вы используете. Не решайте это на основе предубеждений и догм. Используйте реальные доказательства.
Дэвид Хеффернан

Ответы:


83

Позвольте мне поделиться контрастной точкой зрения. Я экономист. Я обучался эконометрике с использованием SAS. Я работаю в финансовых службах и только сегодня вечером обновил модели на основе R, которые мы будем использовать завтра, чтобы подвергнуть риску миллионы долларов.

Ваш профессор просто неправ. Но ошибка, которую он совершает, ОЧЕНЬ распространена и заслуживает обсуждения. Похоже, что ваш профессор делает смешанное представление о программном обеспечении R (реализация GNU языка S) с пакетами (или другим кодом), реализованными в R. Я могу написать дерьмовую реализацию линейной регрессии, используя SAS IML. На самом деле, я сделал именно это. Значит ли это, что SAS - это дерьмо? Конечно, нет. SAS - это дерьмо, потому что их цены непрозрачны, смехотворно дороги, а их внутренние консультанты пообещают, а не доставляют, и берут плату за удовольствие. Но я отвлекся ...

Открытость R - это палка о двух концах: открытость позволяет любому Тому, Дику или Гарри написать дерьмовую реализацию любого придуманного им алгоритма, когда он курит травку в подвале здания экономики. Такая же открытость позволяет практикующим экономистам открыто делиться кодом и улучшать код друг друга. Правила лицензирования с R означают, что я могу написать код распараллеливания для параллельного запуска R в облаке Amazon, и мне не придется беспокоиться о лицензионных сборах для кластера из 30 узлов. Это ОГРОМНАЯ победа для анализа на основе моделирования, который является большой частью того, что я делаю.

Комментарий вашего профессора о том, что «многие пакеты создаются людьми, которые много знают о программировании, но не очень много об экономике», несомненно, является правильным. Но на CRAN есть 3716 пакетов. Вы можете быть чертовски уверены, что многие из них не были написаны экономистами. Точно так же вы можете быть уверены, что многие из 105 089 модулей в CPAN не были написаны экономистами.

Тщательно выбирайте программное обеспечение. Убедитесь, что вы понимаете и протестировали используемые вами инструменты. Также убедитесь, что вы понимаете истинную экономику, за которую вы когда-либо выбирали реализацию. Запирание в закрытом программном решении обходится дороже, чем просто плата за лицензирование.


Благодарю за ваш ответ. Так ты предлагаешь мне попробовать что-то еще? Что бы вы тогда предложили мне узнать?
SavedByJESUS

5
Нет, я использую R почти полностью. Есть ли какие-то пакеты, которые ваш профессор или другие экономисты часто используют? Я не использую какие-либо специальные пакеты по экон. Я использую plyr, matrix и многие другие пакеты, но ни один из них не предназначен для экономистов.
JD Long

Так вы имели в виду «пакеты» и сказали, что я не должен быть привязан к закрытому программному решению?
SavedByJESUS

3
«Открытость позволяет любому Тому, Дику или Гарри писать дерьмовую реализацию любого алгоритма» - это не имеет ничего общего с открытостью, это просто результат наличия открытого API, который есть у многих продуктов с закрытым исходным кодом (то есть любой проприетарной программное обеспечение, которое имеет интерфейс плагина). Хороший ответ, хотя.
naught101

3
«Сейчас нет и никогда не будет и не будет никакого языка программирования, на котором было бы наименее сложно писать плохой код».
ardave

33

Это не более или менее надежно, чем другое программное обеспечение. Базовый и рекомендуемый R, вероятно, менее подвержен ошибкам, чем могут быть добавленные пакеты, но это зависит от авторов.

Но самое большое преимущество R в том, что вы можете сами проверить, так ли это! Это свободное программное обеспечение, не похожее на Stata, SPSS или подобное. Следовательно, даже если это было ненадежно, это было бы обнаружено в конечном счете. Это может быть не так для проприетарного программного обеспечения. И вы даже можете помочь сделать его более надежным.

Что касается остальных комментариев вашего профессора, он явно не прав и человек, распространяющий FUD. Но позвольте мне сказать, что ненадежное программное обеспечение должно быть наименьшим из опасений экономиста, исходя из используемых моделей и предположений, а также прогнозов, сделанных в этой области.

Придерживайтесь R, если вам это нравится, и, возможно, вы и профессор можете даже внести свой вклад в разработку хорошего программного обеспечения для экономики. Вот, возможно, интересная отправная точка http://cran.r-project.org/web/views/Econometrics.html и http://cran.r-project.org/web/views/TimeSeries.html


1
Большое спасибо! Я действительно хочу придерживаться R. Я думаю, что это отличное программное обеспечение. Кроме того, я всегда был большим поклонником открытого кода.
SavedByJESUS

17
+1 за констатацию печальной истины нашего времени. «Ненадежное программное обеспечение должно быть наименьшим из опасений экономиста, если судить по используемым моделям и предположениям, а также прогнозам, сделанным в этой области».
digitalmaps

2
Я ценю здесь ироничный тон, но возможны некоторые разногласия. Ошибки в проприетарном программном обеспечении могут быть обнаружены различными способами, например, если есть явное несогласие с результатами в R, которые кажутся полностью правильными. Здесь есть некоторое FUD о проприетарном программном обеспечении, которое так же неуместно, как и глупое FUD о R. Проверяемость в R - это принципиальная возможность проверки практически для всех пользователей R; это особенность, которая существует, но говорить, что вы можете проверить код самостоятельно, тоже немного риторически. Обратите внимание, что для Stata большая часть кода видна пользователям; это просто исполняемый файл, которого нет.
Ник Кокс

23

Ваш профессор делает несколько смелых заявлений. Я подозреваю, что проблема была в незнании языка R, а не в реальных результатах. Я работаю в компании, которая занимается эконометрическим моделированием, и мы все делаем в R. Я также обратил своего коллегу-экономиста в использование R.

Что касается области экономики в моем личном опыте, проблема надежности могла бы быть наоборот. Например, в версии 5 EVIEWS были некоторые странные ошибки при работе с данными панели. И он сообщил обычную статистику Дурбина-Ватсона для объединенных OLS, которая в настройке данных панели совершенно неверна. R-пакет для работы с панельными данными тоже имеет свои проблемы, но аргумент «деньги» здесь играет решающую роль в пользу R.

Недавно я изучал нестационарные методы временных рядов. Лектор использовал программное обеспечение RATS. При демонстрации некоторого кода он посоветовал нажать на значок, который на всякий случай очищает рабочее пространство несколько раз. Поговорим о надежности.


20

Я экономист и уже 4 года работаю в области исследований, в основном занимаюсь прикладной эконометрикой. Есть множество эконометрических пакетов, и есть место для всех них. На мой взгляд, в экономике Stata используется практически для всего, кроме временных рядов, Rats, Eviews и Ox используются для временных рядов, Matlab и Gauss используются для программирования более низкого уровня.

Преимущество R в том, что он способен делать почти все, что делают другие программы, и он бесплатный и открытый. Это требует некоторого дополнительного программирования и менее консервативных процедур, но в конце концов все получится. Я использую Stata большую часть времени, но если бы мне пришлось выбирать одно программное обеспечение, чтобы сделать все, я бы выбрал R.

R довольно надежен в большинстве задач эконометрики, но я могу привести примеры некоторых подпрограмм, написанных для R, которые не являются надежными. У меня были проблемы с 3SLS и требовали процедуры оценки системы. Процедуры численной оптимизации не так надежны, как в Stata или Gauss. С другой стороны, R гораздо лучше справляется с такими проблемами, как квантильная регрессия. Тем не менее, обладая хорошими рабочими знаниями о R, вы можете выяснить, в чем заключается проблема в пользовательских подпрограммах R, исправить ее и продолжить работу. Так что я не думаю, что отсутствие надежности в некоторых конкретных подпрограммах является веской причиной вообще не использовать R.

Мой совет - продолжать использовать R, но иметь опыт работы с другими программами, которые широко используются в вашей области, например, Stata для микроэконометрики или Rats для временных рядов.


13

Когда я преподавал статистику на уровне выпускников, я говорил своим студентам: «Мне все равно, какой пакет вы используете, и вы можете использовать что угодно для домашней работы, поскольку я ожидаю, что вы предоставите содержательные объяснения, и сниму очки, если я видеть tr23y5mимена переменных в ваших представлениях. Я могу очень хорошо поддержать ваше обучение в Stata и достаточно хорошо в R. В SAS вы сами по себе, так как утверждаете, что прошли курс обучения. С SPSS или Minitab, благослови вас Бог ». Я думаю, что разумные работодатели будут думать так же. Важна ваша производительность с точки зрения результатов проекта. Если вы можете достичь цели в R с 40 часами работы, хорошо; если Вы можете достичь этого в C ++ за 40 часов работы, хорошо, если вы знаете, как сделать это в R за 40 часов, но ваш супервайзер хочет, чтобы вы делали это в SAS, и вам нужно потратить 60 часов, чтобы изучить некоторые основы и куда идут точки с запятой, это может быть разумно только в контексте большой картины остального кода, находящегося в SAS ... и тогда менеджер не был очень мудрым, наняв программиста на R.

С этой точки зрения общей стоимости, «свободный» R - чрезвычайно раздутый миф. Любой серьезный проект требует специального кода, если только для ввода данных и форматирования вывода, и это ненулевая стоимость профессионального времени. Если для ввода и форматирования этих данных требуется 10 часов кода SAS и 20 часов кода R, то , как сказал бы экономист , R - это более дорогое программное обеспечение с минимальными затратами , т. Е. С точки зрения дополнительных затрат на создание данной части функциональности. , Если крупный проект требует 200 часов времени программиста R и 100 часов времени программиста Stata для обеспечения идентичной функциональности, Stata в целом дешевлеДаже с учетом лицензии за $ 1K, которую вам нужно купить. Было бы интересно увидеть такие прямые сравнения; Я принимал участие в переписывании огромного беспорядка в 2 Мб кода SPSS, который, как говорили, накапливался в течение 10 человеко-лет в ~ 150 КБ кода Stata, который работал примерно так же быстро, может быть немного быстрее; это был проект на 1 человеко-год. Я не знаю, является ли это соотношение эффективности 10: 1 типичным для сравнения SPSS: Stata, но я не удивлюсь, если это так. Для меня работа с R - это всегда большие расходы из-за затрат на поиск: я должен определить, какой из пяти пакетов с похожими именами делает то, что мне нужно, и оценить, достаточно ли он надежен, чтобы я мог использовать его в моя работа. Это часто означает, что для меня дешевле написать свой собственный код Stata за меньшее время, чем я бы потратил, выясняя, как заставить R работать в данной задаче. Следует понимать, что это моя личная особенность; большинство людей на этом сайте лучше, чем я.

Забавно, что ваш профессор предпочел бы Stata или GAUSS, а не R, потому что "R не был написан экономистами". Ни были Stata или GAUSS; они написаны программистами, используя инструменты компьютерных специалистов. Если ваш профессор получает идеи о программировании от CodeAcademy.com, это лучше, чем ничего, но разработка программного обеспечения профессионального уровня отличается от ввода текста в текстовом поле CodeAcademy.com, так как вождение грузового автомобиля отличается от езды на велосипеде. (Хотя Stata была основана специалистом по компьютерам, работавшим эконометристом-экономистом, но он не занимался этой эконометрикой уже около 25 лет).

Обновление : Как прокомментировал AndyW ниже, вы можете написать ужасный код на любом языке. Тогда возникает вопрос стоимости, какой язык легче отлаживать. Для меня это выглядит как сочетание того, насколько точным и информативным является вывод, насколько простым и прозрачным является сам синтаксис, и у меня, конечно, нет на это хорошего ответа. Например, Python применяет отступ кода, что является хорошей идеей. Код Stata и R можно заключить в скобки, и это не сработает с SAS. Использование подпрограмм является обоюдоострым мечом: использование *apply()with-ad-hoc functionв R, очевидно, очень эффективно, но сложнее в отладке. Аналогичным образом Stata localможет маскировать практически все, и, по умолчанию, пустая строка, хотя и полезна, может также привести к трудным для обнаружения ошибкам.


1
Это хороший ответ, но чрезмерные обобщения IMO не очень помогают (вы можете написать плохой или хороший код практически на любом языке, Stata не волшебна в применении хороших стандартов кодирования). Мне трудно понять, как 2 Мб кода SPSS - это эффективный код SPSS для начала (с более новыми версиями с подсветкой синтаксиса было бы нецелесообразно даже открывать такой файл в редакторе). Кажется, есть большая вероятность, что это было хорошо потраченное время на переписывание на любом языке.
Энди W

1
Я вообще не пишу SPSS-код, и мое понимание того, что код, с которым я работал, тоже не было написано как код, а скорее сохранено из интерфейса «укажи и щелкни», а затем может быть немного исправлено. Я предположил бы, что SPSS поместит все значения по умолчанию и тому подобное с преобразованием интерфейса в код, так что это не был ужасно эффективный код для начала.
StasK

12

Я был бы очень осторожен с каждым, кто утверждает факт, но никогда не подкрепляет его чем-либо существенным.

Вы можете легко перевернуть его аргументы.

Например, люди, которым платят за написание кода, могут иметь МЕНЬШИЙ стимул сделать это правильно, потому что есть ожидание, что их код будет правильным, в то время как типичный обитатель подвала хочет сделать коммит, который произведет впечатление на руководителей проекта. Может быть, ему наплевать на то, сколько дополнительного времени он тратит на бесплатную работу, если это означает, что качественная работа выполнена.

Если генератор случайных чисел «грязный» (это неопределенный термин; он легко заменяет реальный факт для подтверждения своих аргументов), то он должен иметь возможность доказать это или показать вам кого-то, кто может.

Если он получает непоследовательные результаты из пакета, он должен иметь возможность указать шаги, которые он предпринял, чтобы получить этот результат. Если это действительно ошибка и у вас есть хорошие навыки программирования, вы можете даже попытаться исправить это для него!

Я понимаю, что мой ответ не отвечает на ваш вопрос напрямую (извините). Просто по тому, как он произносит свои слова, вы можете видеть, что за ним нет мяса. Если есть, не стесняйтесь редактировать это в своем вопросе для людей здесь, чтобы обсудить это далее!


5

В 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 широко используется (вывод о том, что ему также широко доверяют, уместен).
Ник Кокс

2

Я использую R в течение полувека, а также использую SAS, SPSS, Calc, WEKA и пару других инструментов. Я никогда не пользовался каким-либо инструментом так, как это было с помощью R. В основном, R предназначен для тех, кто мыслит самостоятельно и пробует что-то на собственном опыте. Когда дело доходит до статистики, это все о методах. Пользователи могут не знать, как методы были определены и смоделированы в коммерческом программном обеспечении, и они могут быть правильными или неправильными. R для тех, кто хотел бы определить методы и использовать те методы, которые соответствуют их потребностям. Это все о свободе. Эта свобода отсутствует в коммерческом программном обеспечении, несмотря на то, что тратить деньги и покупать их. Знание является собственностью сообщества (общества), на которое никто не может претендовать на авторство. Исследование - это поиск решений проблем. Что касается R, не нужно беспокоиться о методах, которые пользователи могут свободно определять и обновлять. Например, если существует какая-либо специфическая для модели проблема или ошибочно определенные методы, которые можно исправить путем исправления или разработки нового кода. Тем самым исследователь не только развивает знания, но и развивается.

Преимущество R в том, что не нужно быть программистом. Статистические методы - все о написании функций только с помощью управляющих операторов и циклов (для начала, вещи более высокого уровня придут позже). R имеет очень простую среду программирования для новичков.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.