A linguagem R é confiável para o campo da economia?

64

Eu sou um estudante de pós-graduação em economia que recentemente se converteu em R a partir de outros pacotes estatísticos muito conhecidos (eu estava usando o SPSS principalmente). Meu pequeno problema no momento é que eu sou o único usuário R na minha classe. Meus colegas de classe usam Stata e Gauss e um de meus professores chegou a dizer que R é perfeito para engenharia, mas não para economia. Ele disse que muitos pacotes são construídos por pessoas que sabem muito sobre programação, mas não muito sobre economia e, portanto, não são confiáveis. Ele também mencionou o fato de que, como não há dinheiro envolvido na criação de um pacote R, não há, portanto, incentivo para fazê-lo corretamente (ao contrário do Stata, por exemplo) e que ele usou o R por um tempo e obteve alguns resultados "ridículos". suas tentativas de estimar algumas coisas. Além disso, ele reclamou do gerador de números aleatórios em R, que ele disse ser "

Uso R há pouco mais de um mês e devo dizer que me apaixonei por ele. Todas essas coisas que estou ouvindo do meu professor estão me desanimando.

Portanto, minha pergunta é: "R é confiável para o campo da economia?".

SavedByJESUS
fonte
30
"muitos pacotes são construídos por pessoas que sabem muito sobre programação, mas não muito sobre economia". Os autores de pacotes são praticamente sempre cientistas ou acadêmicos primeiro e programadores um (muito) distante (último) segundo. Na verdade, acho que seria um desafio encontrar um pacote criado por um "programador".
Brandon Bertelsen
9
Posso convidá-lo e os nossos outras estatísticas economistas sobre a economics.stackexchange.com também - vamos acolher as suas questões e suas respostas sobre economia lá
EnergyNumbers
18
Parece que também há um pouco de chauvinismo profissional nos comentários de seu professor. Como ser economista é uma garantia de confiabilidade? Eu preferia confiar em desenvolvedores de software (na verdade, é uma profissão, não é algo que alguém possa fazer bem sem uma experiência ou treinamento específico) e estatísticos para produzir software estatístico confiável.
Gala
23
"Perfeito para engenharia, mas não para economia" por causa da confiabilidade? Ele prefere um arranha-céu em colapso do que uma economia? O homem é um idiota. Saia da escola e encontre uma que não seja idiota.
Spacedman
10
O software comercial pode ser bom ou ruim. O software de código aberto pode ser bom ou ruim. O que importa é se o software que você usa é bom ou não. Não decida isso com base em preconceitos e dogmas. Use evidências reais.
David Heffernan

Respostas:

83

Deixe-me compartilhar um ponto de vista contrastante. Eu sou economista. Fui treinado em econometria usando SAS. Trabalho em serviços financeiros e, hoje à noite, atualizei os modelos baseados em R, que usaremos amanhã para colocar milhões de dólares em risco.

Seu professor está completamente errado. Mas o erro que ele está cometendo é MUITO comum e vale a pena discutir. O que seu professor parece estar fazendo é misturar a idéia do software R (a implementação GNU da linguagem S) versus os pacotes (ou outro código) implementados em R. Eu posso escrever implementações ruins de uma regressão linear usando SAS IML. De fato, eu fiz exatamente isso. Isso significa que o SAS é uma porcaria? Claro que não. O SAS é uma porcaria porque seus preços não são transparentes, ridiculamente caros e seus consultores internos prometem, entregam e cobram um prêmio pelo prazer. Mas eu discordo ...

A abertura de R é uma faca de dois gumes: a abertura permite que qualquer Tom, Dick ou Harry escreva uma implementação ruim de qualquer algoritmo que eles pensam enquanto fumam maconha no porão do prédio da economia. A mesma abertura permite que economistas praticantes compartilhem código abertamente e aprimorem o código um do outro. As regras de licenciamento com R significam que eu posso escrever um código de paralelização para executar o R ​​em paralelo na nuvem da Amazon e não preciso me preocupar com as taxas de licenciamento para um cluster de 30 nós. Esta é uma vitória enorme para a análise baseada em simulação, que é uma grande parte do que faço.

O comentário do seu professor de que "muitos pacotes são criados por pessoas que sabem muito sobre programação, mas não muito sobre economia" é, sem dúvida, correto. Mas existem 3716 pacotes no CRAN. Você pode ter certeza de que muitos deles não foram escritos por economistas. Da mesma forma que você pode ter certeza, muitos dos 105.089 módulos no CPAN não foram escritos por economistas.

Escolha seu software com cuidado. Certifique-se de entender e testar as ferramentas que você está usando. Além disso, certifique-se de entender a verdadeira economia por trás da qual a implementação que você escolheu. Ficar preso a uma solução de software fechada é mais caro do que apenas as taxas de licenciamento.

JD Long
fonte
Obrigado pela sua resposta. Você está sugerindo que eu tente aprender outra coisa? O que você sugeriria que eu aprendesse?
usar o seguinte código
5
Não, eu uso R quase completamente. Existem alguns pacotes que seu professor ou outros economistas usam muito? Não uso nenhum pacote econômico específico. Uso plyr, matrix e muitos outros pacotes, mas nenhum foi projetado exclusivamente para economistas.
perfil completo de JD Long
Você estava se referindo a "pacotes" e disse que eu não deveria ficar preso a uma solução de software fechada?
usar o seguinte código
3
"A abertura permite que qualquer Tom, Dick ou Harry escreva uma implementação ruim de qualquer algoritmo" - isso não tem nada a ver com abertura, é puramente o resultado de ter uma API pública, que muitos produtos de código fechado possuem (ou seja, qualquer propriedade proprietária). software que possui uma interface de plug-in). Boa resposta embora.
precisa saber é o seguinte
3
"Não existe agora, nem jamais haverá, nem jamais haverá, nenhuma linguagem de programação na qual seja menos difícil escrever código ruim".
Ardave
33

Não é mais ou menos confiável que outro software. O R base e o recomendado são provavelmente menos propensos a erros do que os pacotes contribuídos, mas isso depende dos autores.

Mas a maior vantagem de R é que você pode verificar se é! É um software livre, não como Stata, SPSS ou similar. Portanto, mesmo que não fosse confiável, seria detectado eventualmente. Pode não ser o caso de software proprietário. E você pode até ajudar a torná-lo mais confiável.

Nos demais comentários do professor, ele está claramente errado e uma pessoa divulgando o FUD. Mas permita-me dizer que o software não confiável deve ser a menor das preocupações dos economistas, a julgar pelos modelos e suposições usados ​​e previsões feitas neste campo.

Fique com R se quiser e talvez você e o professor possam até contribuir para o desenvolvimento de um bom software para economia. Aqui está um ponto de partida possivelmente interessante: http://cran.r-project.org/web/views/Econometrics.html e http://cran.r-project.org/web/views/TimeSeries.html

Momo
fonte
11
Muito obrigado! Eu realmente quero ficar com R. Eu acho que é um ótimo software. Além disso, sempre fui um grande fã de código aberto.
usar o seguinte código
17
+1 por declarar uma infeliz verdade do nosso tempo. "software não confiável deve ser a menor das preocupações dos economistas, a julgar pelos modelos e suposições usadas e previsões feitas neste campo".
Digitalmaps
2
Agradeço o tom irônico aqui, mas é possível alguma discordância. Os erros no software proprietário podem ser mostrados de várias maneiras, por exemplo, se houver uma discordância clara dos resultados em R que parecem totalmente corretos. Há algum FUD aqui sobre software proprietário que é tão inapropriado quanto FUD bobo sobre R. Verificabilidade em R é, em princípio, verificabilidade para praticamente todos os usuários de R; é um recurso que existe, mas dizer que você pode verificar o código por si mesmo também é um pouco retórico. Observe que, para o Stata, grande parte do código é visível para os usuários; é apenas o executável que não é.
Nick Cox
23

Seu professor faz algumas afirmações ousadas. Eu suspeito que o problema não era familiar com a linguagem R, e não com os resultados reais produzidos. Eu trabalho em uma empresa que faz muita modelagem econométrica e fazemos tudo em R. Também converti meu colega economista em R.

Em relação ao campo da economia em minha experiência pessoal, a questão da confiabilidade pode ser inversa. Por exemplo, o EVIEWS versão 5 teve alguns erros estranhos ao trabalhar com dados do painel. E relatou a estatística usual de Durbin-Watson para o OLS agrupado, que na configuração de dados do painel está totalmente errado. O pacote R para trabalhar com dados do painel também tem seus problemas, mas o argumento do dinheiro aqui é bastante favorável a R.

Recentemente, eu estava em curso sobre métodos de séries temporais de painéis não estacionários. O palestrante utilizou o software RATS. Ao demonstrar algum código, ele aconselhou clicar em algum ícone que limpa o espaço de trabalho várias vezes, por precaução. Fale sobre confiabilidade.

mpiktas
fonte
20

Sou economista e trabalho com pesquisa há 4 anos, principalmente fazendo econometria aplicada. Existem muitos pacotes econométricos por aí, e há espaço para todos eles. Na minha opinião, em economia, o Stata é usado para quase tudo, exceto as séries temporais, Rats, Eviews e Ox são usados ​​para séries temporais, Matlab e Gauss são usados ​​para programação de nível mais baixo.

A vantagem do R é que ele é capaz de fazer quase tudo o que os outros programas fazem, e é gratuito e aberto. Requer mais programação e menos procedimentos enlatados, mas realiza as tarefas no final. Eu uso o Stata na maioria das vezes, mas se eu tivesse que escolher um software para fazer tudo, eu escolheria R.

R é bastante confiável na maioria dos problemas econométricos, mas posso fornecer exemplos de algumas rotinas escritas para R que não são confiáveis. Eu tive problemas com o 3SLS e exigi rotinas de estimativa do sistema. As rotinas de otimização numérica não são tão robustas quanto no Stata ou no Gauss. Por outro lado, R é muito melhor em problemas como regressão quantílica. Ainda assim, com um bom conhecimento prático de R, você pode descobrir qual é o problema nas rotinas escritas pelo usuário de R, corrigi-lo e continuar trabalhando. Portanto, não acho que a falta de confiabilidade em algumas rotinas específicas seja uma razão convincente para não usar R.

Meu conselho seria continuar usando R, mas ter experiência em outro programa amplamente usado em seu campo, por exemplo, Stata para microeconometria ou Rats para séries temporais.

jorpppp
fonte
13

Quando eu estava ensinando estatística de nível de pós-graduação, dizia aos meus alunos: "Eu não me importo com o pacote que você usa, e você pode usar qualquer coisa para a lição de casa, pois espero que você forneça explicações substanciais e, se eu Vejo tr23y5mnomes de variáveis ​​em seus envios. Eu posso apoiar seu aprendizado muito bem no Stata e razoavelmente bem no R. Com o SAS, você está por conta própria, pois afirma ter feito um curso nele. Com o SPSS ou o Minitab, Deus o abençoe ". Imagino que os empregadores razoáveis ​​pensariam o mesmo. O que importa é a sua produtividade em termos dos resultados do projeto. Se você pode atingir a meta em R com 40 horas de trabalho, tudo bem; se você pode consegui-lo em C ++ em 40 horas de trabalho, tudo bem; se você sabe fazer isso em R em 40 horas, mas seu supervisor deseja que você faça isso no SAS, e você precisa gastar 60 horas apenas para aprender alguns conceitos básicos e para onde vão os pontos-e-vírgulas, isso só pode ser sábio no contexto do quadro geral do restante do código no SAS ... e então o gerente não era muito sábio ao contratar um programador R.

Nesta perspectiva do custo total, R "livre" é um mito exagerado. Qualquer projeto sério requer código personalizado, apenas para a entrada de dados e formatação da saída, e esse é um custo diferente de zero para o tempo profissional. Se essa entrada e formatação de dados exigir 10 horas de código SAS e 20 horas de código R, R é um software mais caro na margem , como diria um economista, ou seja, em termos de custo adicional para produzir uma determinada funcionalidade . Se um grande projeto requer 200 horas do tempo do programador R e 100 horas do tempo do programador Stata para fornecer funcionalidade idêntica, o Stata é mais barato no geral, incluindo até a licença de US $ 1 mil que você precisa comprar. Seria interessante ver tais comparações diretas; Eu estava envolvido na reescrita de uma enorme bagunça de 2Mb de código SPSS que, segundo se dizia, foi acumulada por cerca de 10 pessoas-ano em ~ 150K de código Stata que rodava tão rápido, pode ser um pouco mais rápido; esse foi um projeto de cerca de 1 pessoa / ano. Não sei se esse índice de eficiência de 10: 1 é típico para comparações SPSS: Stata, mas não ficarei surpreso se fosse. Para mim, trabalhar com R é sempre uma grande despesa por causa dos custos de pesquisa: tenho que determinar qual dos cinco pacotes com nomes semelhantes faz o que preciso fazer e avaliar se o faz com confiabilidade o suficiente para que eu possa usá-lo no meu trabalho. Geralmente, significa que é mais barato escrever meu próprio código Stata em menos tempo do que eu gastaria para descobrir como fazer o R ​​funcionar em uma determinada tarefa. Deve-se entender que essa é minha idiossincrasia pessoal; a maioria das pessoas neste site tem um uso melhor do que eu.

Engraçado que seu professor prefere Stata ou GAUSS a R porque "R não foi escrito por economistas". Nem Stata ou GAUSS; eles são escritos por cientistas da computação usando as ferramentas dos cientistas da computação. Se o seu professor obtém idéias sobre programação no CodeAcademy.com, isso é melhor do que nada, mas o desenvolvimento de software de nível profissional é tão diferente de digitar na caixa de texto do CodeAcademy.com, pois dirigir um caminhão de carga é diferente de andar de bicicleta. (Stata foi iniciado por um economista do trabalho convertido em cientista da computação, mas ele não faz essa coisa de econometria do trabalho há cerca de 25 anos.)

Atualização : Como AndyW comentou abaixo, você pode escrever um código terrível em qualquer idioma. A questão do custo torna-se então, qual idioma é mais fácil de depurar. Para mim, isso parece uma combinação de quão precisa e informativa é a saída, e quão fácil e transparente é a própria sintaxe, e é claro que não tenho uma boa resposta para isso. Por exemplo, o Python aplica o recuo do código, o que é uma boa ideia. Os códigos Stata e R podem ser dobrados entre colchetes e isso não funciona com o SAS. O uso de sub-rotinas é uma faca de dois gumes: o uso de *apply()ad-hoc functions em R é obviamente muito eficiente, mas mais difícil de depurar. Por um símbolo semelhante, os Stata locals podem mascarar quase tudo, e o padrão de uma string vazia, embora útil, também pode levar a erros difíceis de capturar.

StasK
fonte
11
Essa é uma boa resposta, mas as generalizações excessivas da IMO não são muito úteis (você pode escrever código ruim ou bom em praticamente qualquer idioma; o Stata não é mágico na imposição de bons padrões de codificação). Tenho dificuldade em ver como 2mb do código SPSS é um código eficiente do SPSS (com as versões mais recentes com sintaxe destacando, seria desaconselhável abrir um arquivo desse tipo no editor). Parece que há uma boa chance de que tenha sido tempo bem gasto reescrevendo em qualquer idioma.
Andy W
11
Eu não escrevo código SPSS, e meu entendimento de que o código com o qual trabalhei também não foi escrito como código, mas salvo da interface de apontar e clicar, e pode ser aprimorado um pouco. Eu imaginaria que o SPSS colocaria todos os padrões na conversão de interface para código, portanto, não era um código muito eficiente para começar.
StasK 10/10/12
12

Eu seria muito cuidadoso com qualquer um que reivindique um fato, mas nunca faça backup de algo substancial.

Você pode facilmente mudar seus argumentos.

Por exemplo, as pessoas que são pagas para escrever código poderiam ter MENOS incentivo para fazê-lo corretamente, porque há uma expectativa de que o código esteja correto, enquanto o habitante típico do porão deseja fazer uma confirmação que impressionará os líderes do projeto. Talvez ele não se importe com quanto tempo extra gasta de graça, se isso significa que um trabalho de qualidade é feito.

Se o gerador de números aleatórios é 'confuso' (que é um termo vago; substitui facilmente um fato real para apoiar seu argumento), ele deve ser capaz de provar isso ou mostrar a você quem pode.

Se ele obtiver resultados incoerentes de um pacote, ele deve ser capaz de apontar as etapas executadas para obter esse resultado. Se é realmente um bug e você tem boas habilidades de programação, você pode até tentar consertá-lo para ele!

Sei que minha resposta não responde diretamente à sua pergunta (desculpe). Simplesmente pela maneira como ele expressa seus pontos, você pode ver que não há carne por trás disso. Se houver, sinta-se à vontade para editá-lo em sua pergunta para que as pessoas aqui discutam mais!

gparent
fonte
5

No ReplicationWiki (em que trabalho), você pode ver que R era um dos pacotes de software usados ​​com mais frequência em alguns estudos empíricos de 2000 publicados em alguns periódicos bem estabelecidos já nos anos de 2000 a 2013. Parece que foi mais utilizado nos anos mais recentes. O Stata foi usado com mais frequência (> 900 vezes), seguido por 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, estudos mais recentes), SPSS (5) e alguns outros. Muitas vezes, mais de um pacote é usado.

Jan Höffler
fonte
Essa é uma evidência interessante sobre o uso do software. Mas ela não se sustenta diretamente na questão, além de fornecer indicações claras de que R é amplamente usado (a inferência de que também é amplamente confiável também é pertinente).
Nick Cox
2

Uso R há meia década e também uso SAS, SPSS, Calc, WEKA e algumas outras ferramentas. Eu nunca gostei de nenhuma ferramenta, tanto quanto foi através da R. Basicamente, R é para quem pensa de forma independente e tenta algo por conta própria. Quando se trata de estatística, trata-se de métodos. Os usuários podem não estar cientes de como os métodos foram definidos e modelados no software comercial e podem estar corretos ou errados. R é para aqueles que desejam definir métodos e usar os métodos adequados às suas necessidades. É tudo sobre liberdade. Essa liberdade não existe nos softwares comerciais, apesar de gastar dinheiro e comprá-los. O conhecimento é propriedade da comunidade (sociedade), ninguém pode reivindicar autoria sobre o mesmo. A pesquisa é sobre encontrar soluções para problemas. No que diz respeito ao R, não é necessário se preocupar com os métodos, pois os usuários podem definir e renovar livremente. Por exemplo, se houver algum problema específico do modelo ou métodos definidos erraticamente que possam ser corrigidos corrigindo ou desenvolvendo um novo código. Ao fazer isso, um pesquisador não apenas desenvolve conhecimento, mas também evolui.

A vantagem do R é que não é necessário ser um programador de computador. Os métodos estatísticos têm tudo a ver com escrever funções apenas com instruções de controle e loops (para começar, as coisas de nível superior vêm depois). R tem um ambiente de programação muito fácil para iniciantes.

M Kamakshaiah
fonte