Я аспирант по экономике, который недавно перешел на R из других очень известных статистических пакетов (в основном я использовал SPSS). На данный момент моя маленькая проблема в том, что я единственный пользователь R в своем классе. Мои одноклассники используют Stata и Gauss, и один из моих профессоров даже сказал, что R идеально подходит для инженерии, но не для экономики. Он сказал, что многие пакеты создаются людьми, которые много знают о программировании, но мало что знают об экономике и поэтому не являются надежными. Он также упомянул тот факт, что, поскольку на самом деле нет денег, участвующих в создании пакета R, нет стимула делать это правильно (в отличие от Stata, например), и что он какое-то время использовал R и получил некоторые «нелепые» результаты в его попытки оценить кое-что. Более того, он жаловался на то, что он генератор случайных чисел в R, который, по его словам, был "
Я использую R чуть больше месяца, и должен сказать, что влюбился в него. Все эти вещи, которые я слышу от своего профессора, просто обескураживают меня.
Поэтому мой вопрос: «Надежен ли R в области экономики?».
источник
Ответы:
Позвольте мне поделиться контрастной точкой зрения. Я экономист. Я обучался эконометрике с использованием SAS. Я работаю в финансовых службах и только сегодня вечером обновил модели на основе R, которые мы будем использовать завтра, чтобы подвергнуть риску миллионы долларов.
Ваш профессор просто неправ. Но ошибка, которую он совершает, ОЧЕНЬ распространена и заслуживает обсуждения. Похоже, что ваш профессор делает смешанное представление о программном обеспечении R (реализация GNU языка S) с пакетами (или другим кодом), реализованными в R. Я могу написать дерьмовую реализацию линейной регрессии, используя SAS IML. На самом деле, я сделал именно это. Значит ли это, что SAS - это дерьмо? Конечно, нет. SAS - это дерьмо, потому что их цены непрозрачны, смехотворно дороги, а их внутренние консультанты пообещают, а не доставляют, и берут плату за удовольствие. Но я отвлекся ...
Открытость R - это палка о двух концах: открытость позволяет любому Тому, Дику или Гарри написать дерьмовую реализацию любого придуманного им алгоритма, когда он курит травку в подвале здания экономики. Такая же открытость позволяет практикующим экономистам открыто делиться кодом и улучшать код друг друга. Правила лицензирования с R означают, что я могу написать код распараллеливания для параллельного запуска R в облаке Amazon, и мне не придется беспокоиться о лицензионных сборах для кластера из 30 узлов. Это ОГРОМНАЯ победа для анализа на основе моделирования, который является большой частью того, что я делаю.
Комментарий вашего профессора о том, что «многие пакеты создаются людьми, которые много знают о программировании, но не очень много об экономике», несомненно, является правильным. Но на CRAN есть 3716 пакетов. Вы можете быть чертовски уверены, что многие из них не были написаны экономистами. Точно так же вы можете быть уверены, что многие из 105 089 модулей в CPAN не были написаны экономистами.
Тщательно выбирайте программное обеспечение. Убедитесь, что вы понимаете и протестировали используемые вами инструменты. Также убедитесь, что вы понимаете истинную экономику, за которую вы когда-либо выбирали реализацию. Запирание в закрытом программном решении обходится дороже, чем просто плата за лицензирование.
источник
Это не более или менее надежно, чем другое программное обеспечение. Базовый и рекомендуемый R, вероятно, менее подвержен ошибкам, чем могут быть добавленные пакеты, но это зависит от авторов.
Но самое большое преимущество R в том, что вы можете сами проверить, так ли это! Это свободное программное обеспечение, не похожее на Stata, SPSS или подобное. Следовательно, даже если это было ненадежно, это было бы обнаружено в конечном счете. Это может быть не так для проприетарного программного обеспечения. И вы даже можете помочь сделать его более надежным.
Что касается остальных комментариев вашего профессора, он явно не прав и человек, распространяющий FUD. Но позвольте мне сказать, что ненадежное программное обеспечение должно быть наименьшим из опасений экономиста, исходя из используемых моделей и предположений, а также прогнозов, сделанных в этой области.
Придерживайтесь R, если вам это нравится, и, возможно, вы и профессор можете даже внести свой вклад в разработку хорошего программного обеспечения для экономики. Вот, возможно, интересная отправная точка http://cran.r-project.org/web/views/Econometrics.html и http://cran.r-project.org/web/views/TimeSeries.html
источник
Ваш профессор делает несколько смелых заявлений. Я подозреваю, что проблема была в незнании языка R, а не в реальных результатах. Я работаю в компании, которая занимается эконометрическим моделированием, и мы все делаем в R. Я также обратил своего коллегу-экономиста в использование R.
Что касается области экономики в моем личном опыте, проблема надежности могла бы быть наоборот. Например, в версии 5 EVIEWS были некоторые странные ошибки при работе с данными панели. И он сообщил обычную статистику Дурбина-Ватсона для объединенных OLS, которая в настройке данных панели совершенно неверна. R-пакет для работы с панельными данными тоже имеет свои проблемы, но аргумент «деньги» здесь играет решающую роль в пользу R.
Недавно я изучал нестационарные методы временных рядов. Лектор использовал программное обеспечение RATS. При демонстрации некоторого кода он посоветовал нажать на значок, который на всякий случай очищает рабочее пространство несколько раз. Поговорим о надежности.
источник
Я экономист и уже 4 года работаю в области исследований, в основном занимаюсь прикладной эконометрикой. Есть множество эконометрических пакетов, и есть место для всех них. На мой взгляд, в экономике Stata используется практически для всего, кроме временных рядов, Rats, Eviews и Ox используются для временных рядов, Matlab и Gauss используются для программирования более низкого уровня.
Преимущество R в том, что он способен делать почти все, что делают другие программы, и он бесплатный и открытый. Это требует некоторого дополнительного программирования и менее консервативных процедур, но в конце концов все получится. Я использую Stata большую часть времени, но если бы мне пришлось выбирать одно программное обеспечение, чтобы сделать все, я бы выбрал R.
R довольно надежен в большинстве задач эконометрики, но я могу привести примеры некоторых подпрограмм, написанных для R, которые не являются надежными. У меня были проблемы с 3SLS и требовали процедуры оценки системы. Процедуры численной оптимизации не так надежны, как в Stata или Gauss. С другой стороны, R гораздо лучше справляется с такими проблемами, как квантильная регрессия. Тем не менее, обладая хорошими рабочими знаниями о R, вы можете выяснить, в чем заключается проблема в пользовательских подпрограммах R, исправить ее и продолжить работу. Так что я не думаю, что отсутствие надежности в некоторых конкретных подпрограммах является веской причиной вообще не использовать R.
Мой совет - продолжать использовать R, но иметь опыт работы с другими программами, которые широко используются в вашей области, например, Stata для микроэконометрики или Rats для временных рядов.
источник
Когда я преподавал статистику на уровне выпускников, я говорил своим студентам: «Мне все равно, какой пакет вы используете, и вы можете использовать что угодно для домашней работы, поскольку я ожидаю, что вы предоставите содержательные объяснения, и сниму очки, если я видеть
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-hocfunction
в R, очевидно, очень эффективно, но сложнее в отладке. Аналогичным образом Statalocal
может маскировать практически все, и, по умолчанию, пустая строка, хотя и полезна, может также привести к трудным для обнаружения ошибкам.источник
Я был бы очень осторожен с каждым, кто утверждает факт, но никогда не подкрепляет его чем-либо существенным.
Вы можете легко перевернуть его аргументы.
Например, люди, которым платят за написание кода, могут иметь МЕНЬШИЙ стимул сделать это правильно, потому что есть ожидание, что их код будет правильным, в то время как типичный обитатель подвала хочет сделать коммит, который произведет впечатление на руководителей проекта. Может быть, ему наплевать на то, сколько дополнительного времени он тратит на бесплатную работу, если это означает, что качественная работа выполнена.
Если генератор случайных чисел «грязный» (это неопределенный термин; он легко заменяет реальный факт для подтверждения своих аргументов), то он должен иметь возможность доказать это или показать вам кого-то, кто может.
Если он получает непоследовательные результаты из пакета, он должен иметь возможность указать шаги, которые он предпринял, чтобы получить этот результат. Если это действительно ошибка и у вас есть хорошие навыки программирования, вы можете даже попытаться исправить это для него!
Я понимаю, что мой ответ не отвечает на ваш вопрос напрямую (извините). Просто по тому, как он произносит свои слова, вы можете видеть, что за ним нет мяса. Если есть, не стесняйтесь редактировать это в своем вопросе для людей здесь, чтобы обсудить это далее!
источник
В 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 в течение полувека, а также использую SAS, SPSS, Calc, WEKA и пару других инструментов. Я никогда не пользовался каким-либо инструментом так, как это было с помощью R. В основном, R предназначен для тех, кто мыслит самостоятельно и пробует что-то на собственном опыте. Когда дело доходит до статистики, это все о методах. Пользователи могут не знать, как методы были определены и смоделированы в коммерческом программном обеспечении, и они могут быть правильными или неправильными. R для тех, кто хотел бы определить методы и использовать те методы, которые соответствуют их потребностям. Это все о свободе. Эта свобода отсутствует в коммерческом программном обеспечении, несмотря на то, что тратить деньги и покупать их. Знание является собственностью сообщества (общества), на которое никто не может претендовать на авторство. Исследование - это поиск решений проблем. Что касается R, не нужно беспокоиться о методах, которые пользователи могут свободно определять и обновлять. Например, если существует какая-либо специфическая для модели проблема или ошибочно определенные методы, которые можно исправить путем исправления или разработки нового кода. Тем самым исследователь не только развивает знания, но и развивается.
Преимущество R в том, что не нужно быть программистом. Статистические методы - все о написании функций только с помощью управляющих операторов и циклов (для начала, вещи более высокого уровня придут позже). R имеет очень простую среду программирования для новичков.
источник