programming-languages - top - tiobe software bv
¿Qué lenguajes de programación son buenos para las estadísticas? (16)
¿Has considerado usar algo como MatLab ? Tiene muchas capacidades avanzadas para realizar análisis de datos y puede hacer algo de programación en el entorno.
Últimamente estoy haciendo un poco más de análisis estadístico sobre algunas cosas, y tengo curiosidad por saber si hay algún lenguaje de programación que sea especialmente útil para este fin. Sé acerca de R , pero preferiría algo un poco más general (¿o es R bastante general?).
¿Qué sugerencias tienen ustedes? ¿Hay algún idioma cuya sintaxis / semántica está particularmente orientada hacia esto? ¿O hay algún idioma que tenga bibliotecas excepcionalmente buenas?
¿Qué hay de Stata ? Tengo un amigo que es estudiante de economía de doctorado y elogia a Stata todo el tiempo. Y tengo una afinidad personal por Mathematica .
Como soy el estudiante de estadística. Encontré a R el mejor entre todos los demás programas relacionados con estadísticas. quizás tiene la capacidad de hacer cualquier cosa con las estadísticas.
Eche un vistazo a Incanter , basado en clojure . "Incanter es una plataforma R-like basada en Clojure para computación y gráficos estadísticos". Clojure es un lenguaje basado en lisp implementado en la parte superior de la JVM. Tiene fácil acceso a las bibliotecas de Java. No se puede obtener un propósito más general que eso.
La biblioteca pystats (para Python) es muy adecuada para el análisis estadístico.
No hay disputa: R es la implementación principal de S (y una que también es un Open Source apropiado y un proyecto de GNU).
No solo como el lenguaje S diseñado precisamente para este propósito (vea los libros de John Chambers), sino que el soporte bastante rico de paquetes específicos de dominio en CRAN es inigualable: más de 2000 paquetes con un control de calidad adecuado, a menudo escritos por expertos en el campo.
El ACM lo ve de la misma manera cuando otorgó el Premio ACM Software Systems a John Chambers en 1998 con la siguiente citation
John M. Chambers
Para el sistema S, que ha alterado para siempre la forma en que las personas analizan, visualizan y manipulan los datos.
Como referencia, otros ganadores de este premio fueron TeX, Smalltalk, Postscript, RPC, ''la web'', Mosaic, Tcl / Tk, Java, Make, ... No es una mala compañía.
Ahora, si ''solo'' desea recopilar y resumir algunos datos, lo hará sobre cualquier lenguaje de procedimiento o funcional. Pero si quiere algo que fue diseñado para programar con datos, entonces R es la implementación principal de S.
Puede echar un vistazo al programa sage , que es una reimplementación del intérprete python que le permite llamar a diferentes lenguajes de programación para estadísticas (R, matlab, octava, etc.) utilizando una sintaxis python.
Uno de los principales problemas al escribir programas para hacer estadísticas es que puede terminar teniendo muchos guiones pequeños diferentes, cada uno realizando una tarea por separado, y puede terminar teniendo carpetas desordenadas y confusión en sus resultados.
Entonces, además de elegir un lenguaje de programación (creo que otras personas ya han respondido a su pregunta), también necesita una sintaxis para definir las tuberías de las secuencias de comandos: puede hacerlo con el programa ''gnu / make'' (por ejemplo, lea this ) o con este sage , o hay otras soluciones.
R es genial si todo lo que estás haciendo son estadísticas. Tiene una buena interfaz interactiva y herramientas de visualización. Sin embargo, es bastante difícil de usar como lenguaje de propósito general porque su sintaxis y semántica están muy optimizadas para hacer estadísticas. Si quieres un lenguaje más general, Python con SciPy sería una opción decente, aunque lo he usado y he encontrado que las rutinas estadísticas en él son algo inmaduras. A menudo son ineficientes o fallan en casos de esquina.
Si está haciendo minería de datos en conjuntos de datos grandes, haciendo que el rendimiento sea importante, y / o no le moleste usar herramientas alfa-ish, el lenguaje de programación D y la biblioteca dstats pueden ser bastante buenos. D es un lenguaje de propósito general, pero el dstats en mi humilde opinión es muy fácil de usar porque la metaprogramación de plantillas facilita el diseño de una buena API, incluso en un lenguaje estático y cercano al metal. (Divulgación completa: escribí la mayoría de los dstats, así que, por supuesto, creo que es bueno).
Sin dudas, R es el mejor lenguaje para las estadísticas, como dice Dirk. Solo quiero agregar algunos puntos a esto:
Primero, creo que la razón principal por la que debes usar R es por la comunidad. En esta etapa, es tan utilizado por expertos en la academia y la industria, que ningún otro lenguaje está a punto de rivalizar con la riqueza de CRAN.
En segundo lugar, se debe reconocer que R el lenguaje es un placer trabajar con él. Es mi idioma principal, y habiendo probado alternativas, no tengo intención de abandonarlo en el corto plazo. Pero tampoco tiene el monopolio de su fortaleza para programar con datos y esta afirmación puede tomarse demasiado lejos. Todos los lenguajes Lisp y funcionales son sólidos en la programación de datos. Lisp, después de todo, se derivó de la "programación de listas", y es la influencia de Lisp en R lo que hace que el lenguaje sea lo que es.
Hay miembros de la comunidad R (por ejemplo, Ross Ihaka) que realmente ven Lisp como el lenguaje estadístico del futuro (ver el documento "de vuelta al futuro" como referencia) debido a algunos problemas profundos de diseño en el lenguaje R ( por ejemplo, no multihilo).
Por lo tanto, aunque R es, sin duda, el mejor lenguaje para la informática estadística, considero que es útil familiarizarse con otro lenguaje, como OCaml, Haskell o (posiblemente) Clojure / Incanter.
También me gustaría +1 para R. Tal vez no sea tan fácil de manejar como STATA o incluso SPSS, en particular para los no programadores. Aunque supongo que el er promedio es mucho más programador que yo.
Dicho esto, me gustaría dar una breve reseña, porque he visto un par de paquetes estadísticos de un usuario (economistas (punto de vista.
STATA sigue siendo la opción para la mayoría de los economistas, y de hecho tiene algunas ventajas. La GUI de STATA le ayuda a mantenerse a cargo de una gran cantidad de opciones y funciones estadísticas. Además, STATA parece ser solo un paquete que tiene una lista de correo que se acerca al menos a la referencia: la lista de correo R única. Todavía se podría escribir sofisticados archivos .do o descargar algunos de la web. STATA puede no ser tan parecido a un lenguaje de programación como R, pero aún ofrece un buen lenguaje de programación para fines estadísticos. Dependiendo del tamaño de sus conjuntos de datos, debe verificar qué licencia necesita.
También podría usar SPSS, que es incluso más una herramienta GUI que STATA y es un poco menos completa, por ejemplo, para trabajos econométricos, como modelos TOBIT o regresiones de paneles, particularmente modelos de elección discreta.
También hay Eviews: desafortunadamente, me olvidé de él y solo lo utilicé para hacer un par de regresiones fáciles en mis estudios. Por lo tanto, solo lo nombro aquí. Lo mismo sucede con GAUSS, que parece ser más matemático que el resto del paquete. Recientemente he oído hablar de Octave, que también es más matemático.
Para mi uso personal, R está por encima de todo. Ocasionalmente, lo emparejo en Python o lo conecto a bases de datos MySQL o PostgreSQL, que también funciona bien. R realmente te ayuda a aprender estadísticas porque necesitas entender más para hacer algo de lo que necesitarías haciendo clic en tu camino a través de SPSS. Aunque si necesita una GUI, puede probar RKward o considerar la instalación de Komodo / Sciviews-R o Tinn-R en Windows. Las últimas no son GUI, pero los editores son más o menos compatibles con Code Highlight y sugerencias de códigos que también ayudan a conseguirlo. Farnsworth Econometrics in R es una buena lectura. Ah, y no puedo olvidar mencionar el plan. el paquete ggplot2 de Hadley Wickham está fuera de peligro. La mejor forma de crear gráficos siempre que no los necesite para que sean interactivos. Al final del día, R es realmente el paquete más flexible: incluso puede instalarlo en un servidor web y construir una bonita interfaz web: el cielo es el límite.
Un amigo mío que se enfoca en las estadísticas del mercado usa SAS . No sé mucho al respecto; no parece ser un lenguaje "real", pero podría valer la pena examinarlo.
Estoy totalmente de Python con enlaces R.
Yo diría que R, como la mayoría de los cursos de Estadística de mi Universidad usan R, y la mayoría de mis amigos que han tomado esos cursos están bastante satisfechos con su alcance.
Incluso probé MATLAB y me pareció bastante útil.
aclamaciones
APL es aparentemente uno de los mejores lenguajes para el trabajo de estadísticas. Aunque no es de propósito general ...
Requiere un teclado especial y una fuente ya que no usa ascii.
Vea el Juego de la vida de Conway en una línea de APL para obtener una visión general de lo que se puede hacer con ella.
Desde mi experiencia, R
es un lenguaje excepcionalmente poderoso en estas áreas:
Manipulación y transformación de datos.
Análisis estadístico.
Gráficos.
Pero R
de ninguna manera es un pony de tres trucos. También apliqué el idioma a tareas que no se ajustan por completo a las categorías anteriores. Algunos ejemplos son:
Una secuencia de comandos para ayudar en la creación de binarios OSX universales identificando y combinando bibliotecas estáticas y dinámicas de diferentes arquitecturas y luego ejecutando los grupos resultantes a través de
lipo
.Scripts para raspar información de páginas web.
Un conjunto de scripts para crear imágenes georreferenciadas, cortar las imágenes en tilesets usando
GDAL
, formar un manifiestoJSON
que describe el resultado y cargar el resultado a un sitio web para su visualización inmediata porOpenLayers
.
Mi parte favorita de usar la R
es la frecuencia con la que puedo decir:
¡WHOA! Hay un paquete que hace ESO ?!