¿Es confiable el lenguaje R para el campo de la economía?


64

Soy un estudiante graduado en economía que recientemente se convirtió a R de otros paquetes estadísticos muy conocidos (estaba usando SPSS principalmente). Mi pequeño problema en este momento es que soy el único usuario de R en mi clase. Mis compañeros de clase usan Stata y Gauss y uno de mis profesores incluso dijo que R es perfecto para la ingeniería, pero no para la economía. Dijo que muchos paquetes son creados por personas que saben mucho sobre programación, pero no mucho sobre economía y, por lo tanto, no son confiables. También mencionó el hecho de que dado que no hay dinero involucrado en la construcción de un paquete R, por lo tanto, no hay ningún incentivo para hacerlo correctamente (a diferencia de Stata, por ejemplo) y que usó R por un tiempo y obtuvo algunos resultados "ridículos". sus intentos de estimar algunas cosas. Además, se quejó del generador de números aleatorios en R, que dijo que era "

He estado usando R por poco más de un mes y debo decir que me he enamorado de él. Todo lo que escucho de mi profesor me está desanimando.

Entonces mi pregunta es: "¿Es R confiable para el campo de la economía?".


30
"Muchos paquetes son creados por personas que saben mucho sobre programación, pero no mucho sobre economía". Los autores de paquetes son prácticamente siempre científicos o académicos primero y programadores un (muy) distante (último) segundo. En realidad, creo que sería un desafío encontrar un paquete creado por un "programador".
Brandon Bertelsen

99
¿Puedo invitar a usted y las otras estadísticas economistas a economics.stackexchange.com también - vamos bienvenida a sus preguntas y sus respuestas en la economía no
EnergyNumbers

18
Parece que también hay un poco de chovinismo profesional en los comentarios de tu profesor. ¿Cómo es ser economista una garantía de fiabilidad? Prefiero confiar en los desarrolladores de software (en realidad es una profesión, no es algo que cualquiera pueda hacer bien sin experiencia o capacitación particular) y los estadísticos para producir software estadístico confiable.
Gala

23
¿"Perfecto para la ingeniería pero no para la economía" debido a la fiabilidad? ¿Preferiría un rascacielos colapsado que una economía? El hombre es un idiota. Sal de esa escuela y encuentra una que no esté compuesta por idiotas.
Spacedman

10
El software comercial puede ser bueno o malo. El software de código abierto puede ser bueno o malo. Lo que importa es si el software que usa es bueno o no. No decidas eso por prejuicios y dogmas. Usa evidencia real.
David Heffernan

Respuestas:


83

Permítanme compartir un punto de vista contrastante. Soy economista Fui entrenado en econometría usando SAS. Trabajo en servicios financieros y esta noche actualicé modelos basados ​​en R que utilizaremos mañana para poner en riesgo millones de dólares.

Tu profesor está simplemente equivocado. Pero el error que está cometiendo es MUY común y vale la pena discutirlo. Lo que su profesor parece estar haciendo es mezclar la idea del software R (la implementación GNU del lenguaje S) frente a los paquetes (u otro código) implementados en R. Puedo escribir implementaciones basura de una regresión lineal usando SAS IML. De hecho, he hecho eso mismo. ¿Eso significa que SAS es una mierda? Por supuesto no. SAS es una mierda porque sus precios no son transparentes, son ridículamente caros, y sus consultores internos prometen, no cumplen y cobran una prima por el placer. Pero yo divago...

La apertura de R es una espada de doble filo: la apertura permite a cualquier Tom, Dick o Harry escribir una implementación de cualquier algoritmo que piensen mientras fuman marihuana en el sótano del edificio económico. La misma apertura permite a los economistas en ejercicio compartir código abiertamente y mejorar el código del otro. Las reglas de licencia con R significan que puedo escribir código de paralelización para ejecutar R en paralelo en la nube de Amazon y no tener que preocuparme por las tarifas de licencia para un clúster de 30 nodos. Esta es una GRAN victoria para el análisis basado en simulación, que es una gran parte de lo que hago.

El comentario de su profesor de que "muchos paquetes son creados por personas que saben mucho sobre programación, pero no mucho sobre economía" es, sin duda, correcto. Pero hay 3716 paquetes en CRAN. Puede estar seguro de que muchos de ellos no fueron escritos por economistas. De la misma manera que puede estar seguro, muchos de los 105,089 módulos en CPAN no fueron escritos por economistas.

Elija su software con cuidado. Asegúrese de comprender y haber probado las herramientas que está utilizando. También asegúrese de comprender la verdadera economía detrás de cualquier implementación que elija. Quedarse encerrado en una solución de software cerrada es más costoso que solo las tarifas de licencia.


Gracias por su respuesta. Entonces, ¿sugieres que trate de aprender algo más? ¿Qué sugerirías entonces que aprenda?
SavedByJESUS

55
No, yo uso R casi por completo. ¿Hay algunos paquetes que tu profesor u otros economistas usan mucho? No uso ningún paquete económico específico. Utilizo plyr, matrix y muchos otros paquetes, pero ninguno está diseñado exclusivamente para economistas.
JD Long

Entonces, ¿te referías a "paquetes" y dijiste que no debería quedar atrapado en una solución de software cerrada?
SavedByJESUS

3
"La apertura permite a cualquier Tom, Dick o Harry escribir una implementación basura de cualquier algoritmo" . Esto no tiene nada que ver con la apertura, es simplemente el resultado de tener una API pública, que tienen muchos productos de código cerrado (es decir, cualquier propiedad software que tiene una interfaz de complemento). Buena respuesta sin embargo.
naught101

3
"No existe ahora, ni ha existido, ni existirá, ningún lenguaje de programación en el que sea un poco difícil escribir código incorrecto".
Ardave

33

No es más o menos confiable que otro software. La base y la R recomendada probablemente sean menos propensas a errores que los paquetes contribuidos, pero depende de los autores.

¡Pero la mayor ventaja de R es que puedes comprobar si es así! Es software libre, no como Stata o SPSS o similar. Por lo tanto, incluso si no fuera confiable, se detectaría eventualmente. Es posible que ese no sea el caso del software propietario. E incluso puede ayudar a hacerlo más confiable.

Para el resto de los comentarios de tu profesor, está claramente equivocado y es una persona que difunde FUD. Pero permítanme decir que el software poco confiable debería ser la menor de las preocupaciones de los economistas a juzgar por los modelos y supuestos utilizados y las predicciones hechas en este campo.

Quédese con R si le gusta y tal vez usted y el profesor puedan incluso contribuir al desarrollo de un buen software para la economía. Aquí hay un punto de partida posiblemente interesante http://cran.r-project.org/web/views/Econometrics.html y http://cran.r-project.org/web/views/TimeSeries.html


1
¡Muchas gracias! Tengo muchas ganas de seguir con R. Creo que es un gran software. Además, siempre he sido un gran fanático del código abierto.
SavedByJESUS

17
+1 por declarar una desafortunada verdad de nuestro tiempo. "El software poco confiable debería ser la menor de las preocupaciones de los economistas a juzgar por los modelos y supuestos utilizados y las predicciones hechas en este campo".
mapas

2
Aprecio el tono irónico aquí, pero es posible que haya algún desacuerdo. Los errores en el software propietario pueden mostrarse de varias maneras, por ejemplo, si hay un desacuerdo claro con los resultados en R que parecen totalmente correctos. Aquí hay algo de FUD sobre software propietario que es tan inapropiado como un FUD tonto sobre R. La verificación en R es verificación en principio para prácticamente todos los usuarios de R; es una característica que existe, pero decir que puedes verificar el código por ti mismo también es un poco retórico. Tenga en cuenta que para Stata gran parte del código es visible para los usuarios; es solo el ejecutable que no lo es.
Nick Cox

23

Tu profesor hace algunas afirmaciones audaces. Sospecho que el problema era la falta de familiaridad con el lenguaje R, no los resultados reales producidos. Trabajo en una empresa que realiza muchos modelos econométricos y hacemos todo en R. También convertí a mi colega economista en el uso de R.

Con respecto al campo de la economía en mi experiencia personal, el problema de confiabilidad podría ser al revés. Por ejemplo, la versión 5 de EVIEWS tenía algunos errores extraños al trabajar con los datos del panel. E informó la estadística habitual de Durbin-Watson para los OLS agrupados, que en la configuración de los datos del panel es simplemente erróneo. El paquete R para trabajar con datos de panel también tiene sus problemas, pero el argumento del dinero aquí juega un fuerte papel a favor de R.

Recientemente estuve en curso sobre métodos de series de tiempo de paneles no estacionarios. El profesor utilizó el software RATS. Al demostrar algún código, aconsejó hacer clic en algún icono que limpia el espacio de trabajo varias veces, por si acaso. Hable acerca de la fiabilidad.


20

Soy economista y llevo 4 años trabajando en investigación, principalmente haciendo econométrica aplicada. Existen muchos paquetes econométricos, y hay espacio para todos ellos. Desde mi punto de vista, en economía, Stata se usa para casi todo, excepto series de tiempo, Rats, Eviews y Ox se usan para series de tiempo, Matlab y Gauss se usan para una programación de más bajo nivel.

La ventaja de R es que es capaz de hacer casi todo lo que hacen los otros programas, y es gratis y abierto. Requiere algo más de programación y tiene menos procedimientos fijos, pero al final se hacen las cosas. Uso Stata la mayor parte del tiempo, pero si tuviera que elegir un software para hacer todo, elegiría R.

R es bastante confiable en la mayoría de los problemas econométricos, pero puedo proporcionar ejemplos de algunas rutinas escritas para R que no son confiables. He tenido problemas con 3SLS y las rutinas de estimación del sistema de demanda. Las rutinas de optimización numérica no son tan robustas como en Stata o Gauss. Por otro lado, R es mucho mejor en problemas como la regresión cuantil. Aún así, con un buen conocimiento práctico de R, puede averiguar cuál es el problema en las rutinas escritas por el usuario de R, solucionarlo y continuar trabajando. Por lo tanto, no creo que la falta de confiabilidad en algunas rutinas específicas sea una razón convincente para no usar R en absoluto.

Mi consejo sería continuar usando R pero tener experiencia en otro programa que se use ampliamente en su campo, por ejemplo, Stata para microeconometría o Rats para series de tiempo.


13

Cuando estaba enseñando estadísticas a nivel de posgrado, les decía a mis alumnos: "No me importa qué paquete usen, y pueden usar cualquier cosa para su tarea, ya que espero que proporcionen explicaciones sustantivas, y quitaré puntos si yo ver tr23y5mnombres de variables en sus envíos. Puedo apoyar su aprendizaje muy bien en Stata, y razonablemente bien, en R. Con SAS, usted está solo, ya que afirma haber tomado un curso en él. Con SPSS o Minitab, Dios los bendiga ". Me imagino que los empleadores razonables pensarían lo mismo. Lo que importa es su productividad en términos de los resultados del proyecto. Si puede lograr el objetivo en R con 40 horas de trabajo, está bien; si puedes lograrlo en C ++ en 40 horas de trabajo, bien; si sabes cómo hacer esto en R en 40 horas, pero tu supervisor quiere que hagas esto en SAS, y tienes que pasar 60 horas solo para aprender algunos conceptos básicos. y dónde van los puntos y comas, eso solo puede ser sabio en el contexto de la imagen general del resto del código que está en SAS ... y luego el gerente no fue muy sabio al contratar a un programador R.

Desde esta perspectiva del costo total, el "libre" R es un mito enormemente exagerado. Cualquier proyecto serio requiere un código personalizado, aunque solo sea para la entrada de datos y el formato de la salida, y ese es un costo no diferente de tiempo profesional. Si esta entrada y formato de datos requiere 10 horas de código SAS y 20 horas de código R, R es un software más costoso al margen , como diría un economista, es decir, en términos del costo adicional para producir una determinada funcionalidad. . Si un gran proyecto requiere 200 horas de tiempo del programador R y 100 horas de tiempo del programador Stata para proporcionar una funcionalidad idéntica, Stata es más barato en general, incluso representando la licencia de ~ $ 1K que necesita comprar. Sería interesante ver tales comparaciones directas; Participé en la reescritura de un enorme lío de 2Mb de código SPSS que se dijo que se acumuló durante aproximadamente 10 años-persona en ~ 150K de código Stata que se ejecutó casi tan rápido, puede ser un poco más rápido; eso fue alrededor de 1 persona por año. No sé si esta relación de eficiencia 10: 1 es típica para las comparaciones SPSS: Stata, pero no me sorprendería si lo fuera. Para mí, trabajar con R siempre es un gran gasto debido a los costos de búsqueda: tengo que determinar cuál de los cinco paquetes con nombres similares hace lo que necesito hacer, y evaluar si lo hace de manera confiable para que pueda usarlo en mi trabajo. A menudo significa que es más barato para mí escribir mi propio código Stata en menos tiempo de lo que pasaría descubriendo cómo hacer que R funcione en una tarea determinada. Debe entenderse que esta es mi idiosincrasia personal; La mayoría de las personas en este sitio son mejores usuarios que yo.

Es curioso que su profesor prefiera Stata o GAUSS sobre R porque "R no fue escrita por economistas". Tampoco Stata o GAUSS; están escritos por informáticos utilizando las herramientas de los informáticos. Si su profesor tiene ideas sobre programación de CodeAcademy.com, eso es mejor que nada, pero el desarrollo de software de nivel profesional es tan diferente de escribir en el cuadro de texto de CodeAcademy.com como conducir un camión de carga es diferente de andar en bicicleta. (Sin embargo, Stata fue iniciada por un economista laboral convertido en informático, pero no ha estado haciendo esto en economía laboral por cerca de 25 años).

Actualización : como AndyW comentó a continuación, puede escribir un código terrible en cualquier idioma. La cuestión del costo se convierte en qué idioma es más fácil de depurar. Para mí, esto parece una combinación de cuán precisa e informativa es la salida, y cuán fácil y transparente es la sintaxis en sí misma, y ​​no tengo una buena respuesta para eso, por supuesto. Por ejemplo, Python aplica la sangría de código, lo cual es una buena idea. Los códigos Stata y R se pueden plegar sobre los corchetes, y eso no funcionará con SAS. El uso de subrutinas es una espada de dos filos: el uso de *apply()ad-hoc functionen R es obviamente muy eficiente, pero más difícil de depurar. De manera similar, Stata locals puede enmascarar casi cualquier cosa, y el valor predeterminado de una cadena vacía, aunque es útil, también puede conducir a errores difíciles de atrapar.


1
Esta es una buena respuesta, pero las generalizaciones de la OMI no son muy útiles (puede escribir código malo o bueno en prácticamente cualquier idioma, Stata no es mágico para hacer cumplir buenos estándares de codificación). Para empezar, me resulta difícil ver cómo 2 MB de código SPSS es un código SPSS eficiente (con las versiones más recientes con resaltado de sintaxis, sería desaconsejable incluso abrir dicho archivo en el editor). Parece que hay una buena posibilidad de que haya sido un buen momento reescribir en cualquier idioma.
Andy W

1
No escribo el código SPSS en absoluto, y entiendo que el código con el que trabajé tampoco se escribió como código, sino que se guardó desde la interfaz de apuntar y hacer clic, y luego se puede borrar un poco. Me imagino que SPSS pondría todos los valores predeterminados y demás con la conversión de interfaz a código, por lo que no era un código terriblemente eficiente para empezar.
StasK

12

Tendría mucho cuidado con cualquiera que afirme un hecho pero nunca lo respalde con nada sustancial.

Puedes cambiar fácilmente sus argumentos.

Por ejemplo, las personas a las que se les paga por escribir código podrían tener MENOS incentivos para hacerlo bien porque existe la expectativa de que su código sea correcto, mientras que el habitante típico del sótano quiere comprometerse para impresionar a los líderes del proyecto. Tal vez no podría importarle menos cuánto tiempo adicional pasa haciéndolo gratis si eso significa que se realiza un trabajo de calidad.

Si el generador de números aleatorios es 'desordenado' (que es un término vago; reemplaza fácilmente un hecho real para respaldar su argumento), entonces debería poder probarlo o mostrarle a alguien que puede hacerlo.

Si obtiene resultados incoherentes de un paquete, debería ser capaz de señalar los pasos que tomó para obtener ese resultado. Si realmente es un error y tienes buenas habilidades de programación, ¡incluso puedes intentar solucionarlo!

Me doy cuenta de que mi respuesta no responde su pregunta directamente (lo siento). Simplemente por la forma en que expresa sus puntos, se puede ver que no hay carne detrás de esto. Si es así, ¡siéntase libre de editarlo en su pregunta para que las personas de aquí lo discutan más!


5

En el ReplicationWiki (en el que trabajo) puede ver que R fue uno de los paquetes de software más utilizados para unos 2000 estudios empíricos publicados en algunas revistas bien establecidas en los años 2000-2013. Parece que se usó más en los últimos años. Stata se usó con mucha frecuencia (> 900 veces), seguido de 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, estudios más recientes), SPSS (5) y algunos otros. Muchas veces se usa más de un paquete.


Esta es una evidencia interesante sobre el uso del software. Pero no se refiere directamente a la cuestión más que al proporcionar indicaciones claras de que R se usa ampliamente (la inferencia de que también se confía ampliamente es pertinente).
Nick Cox

2

He estado usando R durante media década y también uso SAS, SPSS, Calc, WEKA y un par de otras herramientas. Nunca disfruté con ninguna herramienta tanto como lo fue a través de R. Básicamente, R es para aquellos que piensan de forma independiente y prueban algo en su propio aprendizaje. Cuando se trata de estadísticas, se trata de métodos. Es posible que los usuarios no sepan cómo se definieron y modelaron los métodos en el software comercial y podrían ser correctos o incorrectos. R es para aquellos que desean definir métodos y utilizar aquellos métodos que se adapten a sus necesidades. Se trata de libertad. Esta libertad no existe con el software comercial a pesar de gastar dinero y comprarlos. El conocimiento es propiedad de la comunidad (sociedad), nadie puede reclamar la autoría sobre el mismo. La investigación se trata de encontrar soluciones a los problemas. En lo que respecta a R, uno no debe preocuparse por los métodos para que los usuarios sean libres de definir y renovar. Por ejemplo, si existe algún problema específico del modelo o métodos definidos de manera errática que se pueden solucionar arreglando o desarrollando un nuevo código. Al hacerlo, un investigador no solo desarrolla conocimiento sino que también evoluciona.

La ventaja de R es que uno no necesita ser un programador de computadoras. Los métodos estadísticos tienen que ver con escribir funciones solo con declaraciones de control y bucles (para empezar, las cosas de nivel superior vienen más tarde). R tiene un entorno de programación muy fácil para los novatos.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.