Sé que el título suena un poco extremo, pero me pregunto si R es eliminado por un montón de escritorios cuánticos en los bancos de venta lateral, así como los fondos de cobertura en favor de Python. Tengo la impresión de que con las mejoras en Pandas, Numpy y otros paquetes de Python la funcionalidad en Python está mejorando drásticamente para extraer de forma significativa datos y series temporales de modelos. También he visto implementaciones bastante impresionantes a través de Python para paralelizar el código y extender los cálculos a varios servidores/máquinas. Sé que algunos paquetes en R son capaces de eso también, pero siento que el impulso actual favorece a Python.
Necesito tomar una decisión sobre la arquitectura de un subconjunto de mi marco de modelación yo mismo y necesito algún aporte sobre cuál es el sentimiento actual por otros cuentos.
También tengo que admitir que mis reservas iniciales con respecto a la ejecución a través de Python están en su mayoría desactualizadas porque algunos de los paquetes hacen un uso intensivo de implementaciones C bajo el capó y he visto implementaciones que superan claramente incluso el código de lenguaje OOP escrito y compilado eficientemente.
¿Puede comentar lo que está usando? No estoy pidiendo opiniones sobre si crees que uno es mejor o peor para las tareas de abajo, sino específicamente por qué usas R o Python y si incluso las colocas en la misma categoría para realizar, entre otras, las siguientes tareas:
- adquirir, almacenar, mantener, leer, limpiar series temporales
- realizar estadísticas básicas sobre series temporales, modelos estadísticos avanzados como análisis de regresión multivariante,...
- realizando cálculos matemáticos (transformadas de Fourier, solucionador de PDE, PCA, ...)
- visualización de datos (estáticos y dinámicos)
- derivados de precios (aplicación de modelos de precios como los modelos de tipos de interés)
- interconexión (con Excel, servidores, UI, ...)
- (Añadido en enero de 2016): Capacidad para diseñar, implementar y entrenar redes de aprendizaje profundo.
EDITAR Pensé que el siguiente enlace podría añadir más valor aunque está ligeramente anticuado [2013] (por alguna oscura razón esa discusión también se cerró...): https://softwareengineering.stackexchange.com/questions/181342/r-vs-python-for-data-analysis
También puede buscar varios mensajes en el sitio web de r-bloggers que tratan sobre la eficiencia computacional entre los paquetes R y Python. Como se trató en algunas de las respuestas, un aspecto es la poda de datos, la preparación y configuración de los datos de entrada. Otra parte de la ecuación es la eficiencia computacional cuando se realizan realmente cálculos estadísticos y matemáticos.
Actualización (Enero 2016)
Quería proporcionar una actualización de esta cuestión ahora que las redes de Inteligencia Artificial/Aprendizaje Profundo son perseguidas muy activamente en los bancos y los fondos de cobertura. He dedicado una buena cantidad de tiempo a profundizar en el aprendizaje profundo y he realizado experimentos y trabajado con bibliotecas como Theano, Torch y Caffe. Lo que destacó de mi propio trabajo y de las conversaciones con otros fue que muchas de esas bibliotecas se utilizan a través de Python y que la mayoría de los investigadores de este espacio no utilizan R en este campo en particular. Ahora, esto todavía constituye una pequeña parte del trabajo cuántico que se está realizando en los servicios financieros, pero todavía quería señalarlo ya que toca directamente la pregunta que hice. Añadí este aspecto de la investigación cuántica para reflejar las tendencias actuales.
0 votos
No estoy seguro pero definitivamente hay algunas aventuras para python en cuanto al desarrollo de paquetes en algunas áreas.
17 votos
Eres un miembro muy respetado de esta comunidad pero cada vez me da peor sensación esta pregunta. Uno de los ejemplos de preguntas que no queremos en este sitio es "¿Qué lenguaje de programación debo usar?" (quant.stackexchange.com/help/on-topic). Cuando se miran las discusiones en los comentarios se puede ver por qué: Cada vez son más polémicas, y parece que ya te has decidido. Creo que si alguien con menos reputación hubiera hecho esta pregunta se habría cerrado enseguida. Creo que lo mejor sería cerrar esta pregunta. ¿Ves mi punto de vista?
0 votos
@vonjd, no me he decidido, si no, no habría preguntado. Y debemos ser justos en reconocer que algunos en este sitio tienen un interés muy fuerte en inclinarse por R porque derivan una parte o toda su vida de escribir código R, de ahí su redacción bastante fuerte. Defiendo la pregunta porque la pregunta y, con suerte, las respuestas son, en mi opinión, muy relevantes para quienes trabajan en mesas de cálculo o, potencialmente, para quienes invierten muchas decenas, si no cientos, de miles de dólares en proyectos.
0 votos
Pero, por supuesto, estoy totalmente abierto a dejar que la comunidad vote para que se cierre la pregunta si la mayoría piensa que no es relevante ni está lo suficientemente orientada (aunque he enumerado casos de uso muy específicos que me interesan)...
0 votos
Por cierto, ¿hay alguna forma de votar o sugerir que se permitan ciertas preguntas que actualmente no se ajustan al formato deseado? Preguntas como "¿qué lenguaje se recomienda para xyz?" o "¿es la regresión abc más adecuada para abordar xyz que la regresión bcd?" me parecen muy importantes y útiles para los que trabajan en este campo. Al menos mucho más útil que muchas preguntas que se mantienen abiertas del tipo "¿dónde puedo descargar datos de tick gratis?" o "¿ajusta yahoo finance hacia atrás los splits de dividendos?"...
0 votos
Es justo. Podrías plantear esto en meta cuando creas que hay que cambiar las reglas de este sitio.
2 votos
@vonjd, lo he planteado en meta, gracias por sugerirlo: meta.quant.stackexchange.com/questions/1452/
0 votos
Subido en meta.
0 votos
Me he dado cuenta de que ha habido una relativa furia de votos hacia abajo/hacia arriba en las respuestas a esta pregunta en particular. Aunque creo que hay valor en un referéndum sobre el tema, animaría a más gente a compartir sus pensamientos en los comentarios y nuevas respuestas, especialmente a aquellos con experiencia en el uso de ambos idiomas.
0 votos
No he notado una furia ni downvotes. Y estoy totalmente de acuerdo con tu sugerencia. Lo que realmente me desanima actualmente a volver a participar más activamente en este sitio es la presión para ajustarse a "reglas" y directrices estrictas. Los seres humanos no son bits y bytes ni el aprendizaje eficiente e inteligente implica formatos de preguntas y respuestas en blanco y negro. Como demuestra esta pregunta, el propio formato ya se cuestiona porque algunos parecen sentirse increíblemente incómodos al salir de su zona de confort "basada en reglas". A mí también me gusta que haya más debate sano y que se comparta...
0 votos
Mucha gente se esforzó en esto, así que me interesaría saber si las respuestas le ayudaron a llegar a una conclusión.
2 votos
@vonjd, no, todavía no he tomado una decisión. Pero estoy mucho mejor informado gracias a algunas de las respuestas y a que he pasado más tiempo con paquetes como data.table y rcpp. Esto no cambia mi impresión de que se están "pegando" trozos en R para ejecutar cálculos de mayor rendimiento (Rcpp es, en efecto, un puente para ejecutar código C++ compilado y data.tables es una estructura de datos altamente indexada que no debería compararse con soluciones que no hacen uso de la indexación). Mi principal preocupación en este momento es que terminaré con bases de código en múltiples lenguajes para lograr ...
4 votos
...rendimiento que iguala o supera lo que se puede hacer puramente en Python. Por ejemplo, cualquier técnica estadística o numérica que no pueda ser vectorizada me obliga a mantener esencialmente una base de código C++ para superar las operaciones de código en Python. Lo mismo ocurre con las visualizaciones: La mayoría de las visualizaciones dinámicas o visuales que me permiten hacer pan/zoom o manipular de alguna manera el renderizado durante el tiempo de ejecución requieren conocimientos de .js y/o D3.js. Python, por otro lado, me permite interactuar más fácilmente con las bibliotecas de visualización existentes que ya utilizo. Pero como he dicho, todavía no he llegado a una conclusión final
0 votos
Has visto esto, puede ser interesante para ti: blog.dominodatalab.com/comparar-python-y-r-para-la-ciencia-de-datos y blog.datacamp.com/r-or-python-for-data-analysis
0 votos
Gracias, vonjd, he echado un vistazo rápido, pero francamente no soy un gran fan de las revisiones comparativas generalizadas, ya que no aborda las necesidades específicas (por razones obvias).
0 votos
No está lo suficientemente avanzado en el ciclo de desarrollo para sus necesidades, pero esté atento a julia en el futuro. He jugado un poco con él y tiene el potencial de sustituir/complementar tanto a R como a Python para este tipo de trabajo técnico.
0 votos
@MattWolf Tal vez su actualización de enero de 2016 sería mejor como una pregunta separada. Por ejemplo: "¿Qué bibliotecas/paquetes recomendarías para hacer deep learning en aplicaciones de finanzas cuánticas?" (Eso lo deja neutral en cuanto al lenguaje, lo que puede ser o no una buena idea...)
0 votos
@DarrenCook, aunque estoy de acuerdo en que este sitio debería fomentar mucho más la exposición al aprendizaje profundo en las finanzas cuánticas creo que el añadido (actualización de enero de 2016) es muy relevante para esta cuestión. El aprendizaje profundo es quizás el área en los bancos, fondos de cobertura y en el capital privado que ve más incremental inversión en términos de financiación y contratación de talento. Creo que es un área que favorece claramente a Python sobre R y me encantaría escuchar a otros profesionales sobre su opinión.
0 votos
@MattWolf OK. Sólo digo que es mejor empezar una nueva pregunta que actualizar una que ya tiene respuestas, incluso una respuesta aceptada.