¿Qué ventajas y desventajas tiene R sobre Stata, es decir, cuál es la capacidad de R para armar rápidamente una imagen del desarrollo de una empresa, país, ciudad o de otros macrodatos frente a la capacidad de Strata para hacer lo mismo?

Mejor respuesta

Hice el cambio de Stata a R. Aquí están mis observaciones:

Ventajas:

  • R es de código abierto, tendrá acceso a algunos algoritmos o software de vanguardia realmente geniales que la gente ha escrito para problemas específicos.
  • R tiene mejores visualizaciones. Una vez que tenga un buen manejo de ggplot2, puede hacer cosas bastante sorprendentes con casi cualquier tipo de datos.
  • He encontrado R más fácil para escribir paquetes y funciones personalizados.
  • R está más cerca de la comunidad de estadísticas / aprendizaje automático, por lo que encontrará más soporte / paquetes que Stata.
  • Me encanta RStudio Gui, especialmente cuando trabajo en un servidor.
  • R proporciona un mejor soporte de Latex.
  • R tiene una comunidad muy activa y listas de ayuda – han sido increíblemente rápidos en apoyar todas mis preguntas.
  • ¡R trabaja con Big Data! El paquete RHadoop te permite escribir scripts de MapReduce personalizados usando funciones R. Si alguna vez tienes que lidiar con big data y solo puedes usar Stata, estás jodido.
  • Suele haber muchos más «hacks» en R para problemas complicados como análisis de red, bootstraps personalizados, etc. Tan pronto como te alejas de las implementaciones vanilla, a menudo he encontrado funciones de atajos en procedimientos en R, mientras que en Stata a menudo tienes que codificar para salir.

Desventajas:

  • R es de código abierto, es posible que deba esperar un poco para tener acceso a nuevos algoritmos si no hay un desarrollo activo.
  • Stata está mucho más cerca de la comunidad de la econometría y tiene muchos más algoritmos, paquetes e implementaciones que R. Si usted es economista, se sentirá frustrado por la falta de exhaustividad de los paquetes de econometría.
  • Stata tiene una excelente GUI que le permite elegir de forma interactiva el procedimiento que desea ejecutar y completa la mayoría de los detalles por usted. Esto es excelente cuando se usa una función que nunca antes había usado. R realmente no tiene esto; siento que cuando uso R, estoy en Google la mitad del tiempo.
  • Stata es más rápido que R [1].
  • Descargar módulos de Stata es una Proceso mucho más simplificado. Para los módulos R en CRAN normalmente no hay problema (aunque me he encontrado con problemas cuando estoy usando una máquina Centos), pero hay varios paquetes esenciales que no están en CRAN.
  • La visualización y el trazado estándar de Stata son mucho mejores que R.
  • Stata tiene una mejor ayuda estándar; siento que puedo leer la ayuda en cualquier función y averiguar exactamente lo que Necesito hacer mientras que no me siento así con varios paquetes de R que están mal documentados.
  • R tiene una sintaxis «WTF» y una estructura de nombres de paquetes. La mayoría de los proyectos de código abierto lo hacen. Extraño la simplicidad de las funciones de Stata (reg, lm, etc.).

[1] http://ekonometrics.blogspot.com/2011/04/speeding-tickets-for-r-and-stata.html

Responder

En general, cuando encuentro el adverbio » obviamente «en una oración, encuentro una declaración injustificada a continuación. Aquí, no estoy de acuerdo con su afirmación de que R tiene «una sintaxis extraña». Todo programador educado preferiría codificar en Haskell o en algún Lisp, pero el hecho es que estos lenguajes nunca llegarán a una gran audiencia. R es un Lisp en el interior (por ejemplo, puede codificar en el lenguaje en R, pero no en Python), pero está lo suficientemente cerca de un lenguaje científico en el exterior. De hecho, como puede observar, como lenguaje para el análisis de datos , R es realmente el lenguaje más natural y elegante que existe. Si quieres una prueba de esto, echa un vistazo a la actividad que rodea a Python y Julia: implementación de marcos de datos (pandas y data.frame en Jlia), fórmulas (patsy), plyr (pandas). Y aún así, todas estas características todavía parecen algo injertadas en los otros idiomas. Lo que la gente percibe como «extraño» o «extraño» es el resultado de una concesión al uso interactivo (por ejemplo, la caída de la dimensión) o de la herencia funcional del lenguaje.

Estoy de acuerdo en que R tiene muchos áreas para mejorar, pero en su mayoría no en la sintaxis del lenguaje. Seguro, sus convenciones de nomenclatura son inconsistentes; la gestión de la velocidad y la memoria son problemas conocidos; y así. ¿Porqué es eso? Algunas razones:

  1. La directiva principal de R (según su creador, John Chambers) es producir software confiable. R le da un gran valor a la precisión y confiabilidad. Sus funciones estadísticas centrales son de primer nivel; incluso su sistema gráfico básico ha sido cuidadosamente pensado, desde la agrupación de histogramas (¡no es un problema trivial!) hasta la ubicación del texto. La velocidad nunca ha sido una gran preocupación, y con razón. Si la velocidad y la eficiencia de la memoria fueran el problema, todos estaríamos codificando en FORTRAN, que también es fácil y de alto nivel. El código fuente de la base R es corto (400K LOC; como comparación, Numpy solo tiene el mismo tamaño) y muy legible. Código que puede comprender y en el que puede confiar.
  2. Splus y R fueron concebidos en los años 80 y 90, mucho antes de la era del «big data» y el auge del aprendizaje automático. Pero R ha mejorado. La gestión de la memoria es mucho mejor, probablemente superior a la de MATLAB. Tiene mucho camino por recorrer, pero se pueden mejorar ciertas cosas (por ejemplo, la representación de datos internos).
  3. El equipo de desarrollo central tiene una rotación mínima, y los jóvenes programadores de hace 15 años ahora tienen 50 años. Además, están mucho menos involucrados con la comunidad y comprenden un personaje pintoresco / mítico como Brian Ripley: un profesor de Oxford responsable del 70\% + de las confirmaciones, y no la persona más amigable del planeta y en las listas de correo de R.
  4. R está pidiendo un compilador JIT rápido dirigido a LLVM, pero estas cosas no suceden de la noche a la mañana. Necesita un equipo de codificadores sobresalientes y educados con conocimientos de diseño de compiladores e intérpretes, una sólida ética de trabajo (para lanzar un producto en un par de años) y la humildad para volver a implementar un lenguaje existente en lugar de crear su propio proyecto de vanidad. Además, vea el n. ° 3.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *