Eligiendo una herramienta de Analítica: SAS, R o Python

(Artículo escrito por Pedro Gómez Tejerina, profesional del sector financiero, y profesor de nuestro Programa de Big Data y Business Intelligence)

Probablemente si estás leyendo este blog tengas un problema analítico que quieras resolver con datos. Es posible también que tengas unos conocimientos de estadística que quieras poner en práctica, así que es hora de elegir una herramienta analítica. Así que vamos a intentar orientaros en la elección, aunque las tres herramientas de analítica nos van a permitir hacer en general los mismos análisis:

  1. Conocimientos previos de programación. Si sabes programar y vienes de un entorno web, probablemente Python sea el más fácil de aprender. Es un lenguaje más generalista que los otros dos y solamente tendrás que aprender el uso de las librerías para hacer análisis de datos (Pandas, Numpy, Scipy, etc.). Si no es el caso y lo tuyo no es programar, SAS es más fácil de aprender que R, que es el lenguaje más diferente de los tres, dado su origen académico-estadístico.
  2. Herramientas User Friendly y GUI: Tanto SAS (SAS Enterprise Guide, SAS Enterprise Miner, SAS Visual Analytics) como R (Rattle, RStudio, Rcommander) tienen buenas interfaces visuales que pueden resolver problemas analíticos sin tener la necesidad de programar. Python dispone de menos (Orange), aunque dispone de una buena herramienta de enseñanza: los notebooks.
  3. Coste de las herramientas. SAS es un software comercial y bastante caro. Además el uso de cada una de sus capacidades se vende por paquetes, así que el coste total como herramienta analítica es muy caro. La parte buena es que tienes un soporte. Por el contrario, tanto R como Python son gratuitos, si bien es cierto que empresas como Revolution Analytics ofrecen soporte, formación y su propia distribución de R con un coste bastante inferior a SAS. Normalmente sólo las grandes empresas (bancos, compañías telefónicas, cadenas de alimentación, INE, etc.) disponen de SAS debido a su coste.
  4. Estabilidad de la herramienta. Al ser un software comercial, en SAS no hay problemas de compatibilidad de versiones. R al tener un origen académico ofrece distintas librerías para hacer un mismo trabajo y no todas funcionan en versiones anteriores de R. Para evitar estos problemas en una gran empresa recomendaría utilizar alguna distribución comercial de Revolution Analytics por ejemplo.
  5. Volumen de datos. Las única diferencia es que SAS almacena los datos en tu ordenador en vez de en memoria (R), si bien es cierto que las 3 tienen conexiones con Hadoop y las herramientas de Big Data.
  6. Capacidad de innovación. Si necesitas utilizar las últimas técnicas estadísticas o de Machine Learning SAS no es tu amigo. Es un software comercial que para garantizar la estabilidad de uso entre versiones retrasa la incorporación de nuevas técnicas. Aquí el líder es R seguido de Python.

Conclusión: no es fácil quedarse con una herramienta de analítica y las personas que trabajamos en grandes compañías estamos habituados a trabajar con varias. SAS ofrece soluciones integradoras a un coste elevado. R tiene muchas capacidades de innovación debido a su origen y Python tiene la ventaja de ser un lenguaje de programación generalista que además puede servir para hacer Data Mining o Machine Learning. La elección dependerá de lo que estés dispuesto a pagar y tus necesidades específicas. Yo tengo la suerte o desgracia de trabajar en una gran empresa, así que dispongo de las 3.

Tendencias en lo que a demanda de perfiles con conocimiento de R, SAS y Python se refiere (Fuente: http://www.statsblogs.com/2013/12/06/sas-is-abandoned-by-the-market-for-advanced-analytics/)
Tendencias en lo que a demanda de perfiles con conocimiento de R, SAS y Python se refiere (Fuente: http://www.statsblogs.com/2013/12/06/sas-is-abandoned-by-the-market-for-advanced-analytics/)

Más información en:

  • http://www.analyticsvidhya.com/blog/2014/03/sas-vs-vs-python-tool-learn/
  • http://blog.datacamp.com/r-or-python-for-data-analysis/

8 pensamientos sobre “Eligiendo una herramienta de Analítica: SAS, R o Python”

  1. Añadiría que si uno tiene que lidiar con datos y pasar bastante tiempo observándolos, limpiando, estructurando,…para ver pistas….descubrir cosas aberrantes, construir nuevo sindicadores,….ANTES de decidirse por análisis a llevar a cabo….

    Es bueno utilizar software estadístico que te permite de un modo amigable darle muchas vueltas a las cosas….Hay que tener en cuenta que practicante todos los procesos funcionan con un comportamiento aleatorio en torno a un patrón (el que se intenta modelizar) y otro comportamiento diferente al anterior con patrones y duración muy diversa, dependiendo de lo que ocurra….Esta parte no se puede modelizar con el modelo anterior y esta parte casi siempre está en los datos; para encontrarla y tomar decisiones es importante observar los datos….y en ello los software estadísticos ayudan porque presentan una gran variedad de herramientas para segregar, …etc

    En Europa nos ha llegado SAS, SPSS, MINITAB …y creo que el menos caro es MINITAB. Puede sorprender lo que se puede llegar a VER con cualquiera de estos software en un click (si se sabe dónde MIRAR)

    saludos

  2. Hola Lourdes,

    totalmente de acuerdo en que la elección de la herramienta es algo secundario, lo primero es analizar y entender los datos. Respecto al coste de las herramientas, depende del uso y el volumen de datos a manejar. En este artículo sólo hemos analizado 3, las que más en uso están actualmente, pero el abanico es infinito (Scala, Julia, Matlab…). De todas formas tanto R como Python son gratuitas y como explicamos en el artículo, ambas tienen interfaces “user friendly” para evitar la programación.

    Saludos.

  3. Muy interesante el post. Aprovecho para lanzar unas preguntas, por si me puedes orientar:

    1) ¿Crees que R puede ser una buena opción para gran compañía (banco o seguros por ejemplo??
    2) ¿Conoces algún caso de proyecto de migración?, sobre todo SAS -> R, ¿alguna empresa que lo haya hecho?. Yo sólo conozco casos de empresas que lo nuevo lo hacen en R/Phyton, pero ninguna migración. Si se puede decir la empresa bien, sino basta con sector de actividad, tamaño y si el volumen de procesos SAS era importante
    3) De plantearte una migración SAS -> R, ¿qué recomendaciones críticas darías?

    Gracias!!

    1. Buenos días Juan,

      gracias por tu comentario. Respondiendo a tus preguntas:

      1) ¿Crees que R puede ser una buena opción para gran compañía (banco o seguros por ejemplo??
      – Sería interesante ver, más que el tamaño de la empresa, las acciones que hacéis sobre una herramienta de tratamiento de datos. He visto grandes empresas que con R les resulta suficiente, y otras que no. Depende del uso intensivo que hagáis y la complejidad de las funciones y volumen de datos que tengáis. También afecta la calidad de los datos que tengáis. En definitiva, habría que detallar un poco más para vuestro caso.

      2) ¿Conoces algún caso de proyecto de migración?, sobre todo SAS -> R, ¿alguna empresa que lo haya hecho?. Yo sólo conozco casos de empresas que lo nuevo lo hacen en R/Phyton, pero ninguna migración. Si se puede decir la empresa bien, sino basta con sector de actividad, tamaño y si el volumen de procesos SAS era importante
      – Te recomiendo echar un vistazo a los siguientes enlaces, puesto que es algo que nos preguntan con bastante frecuencia, y tiene bastante desarrollo la respuesta:
      http://blog.revolutionanalytics.com/2016/11/sas-to-r-migration.html
      https://www.r-bloggers.com/sas-to-r-migration/
      https://info.microsoft.com/sas-to-r-migration-registration.html

      3) De plantearte una migración SAS -> R, ¿qué recomendaciones críticas darías?
      – En los enlaces anteriores sale bastante información en este sentido.

      Cualquier otra cosa que necesites, nos dices.
      Saludos,

  4. Hola Alex,

    Muchas gracias por tu contestación, sin duda muy útil. Aprovecho tu ofrecimiento a más dudas.
    Tal y como dices, alguna de las preguntas es necesario detallarlas más, así que lo hago:

    Respecto a la pregunta 1):

    “1) ¿Crees que R puede ser una buena opción para gran compañía (banco o seguros por ejemplo??
    – Sería interesante ver, más que el tamaño de la empresa, las acciones que hacéis sobre una herramienta de tratamiento de datos. He visto grandes empresas que con R les resulta suficiente, y otras que no. Depende del uso intensivo que hagáis y la complejidad de las funciones y volumen de datos que tengáis. También afecta la calidad de los datos que tengáis. En definitiva, habría que detallar un poco más para vuestro caso”

    Por aterrizarlo más en la pregunta 1) me refiero a empresa grande (banco o empresa de seguros de primer nivel). Con un uso intensivo de SAS tanto para tareas de data management o reporting tradicional, como en tareas de analítica avanzada (modelos). Usado por TI y por usuarios de diferentes departamentos (marketing, finanzas, operaciones….), hablamos de unos 200 usuarios de SAS y de un catálogo de más de 5000 programas .sas o proyectos .egp. A nivel de calidad del dato el escenario es mejorable, pero se parte de una calidad razonable y es algo que quita tiempo, pero se puede trabajar.
    Hay procesos sencillos (extracción, cruce, agregación, cálculos sencillos) y procesos de datos de clientes, riesgos o fraude muy complejos a nivel funcional. A nivel de licencias el 90% usuarios trabaja con SAS E. Guide y BASE y un 10% con SAS E.Miner.
    Cuando dices que a algunas empresas con R les resulta suficiente y otras no, ¿qué características tienen las que no es suficiente?

    Respecto a las preguntas 2) y 3) te agradezco los links (alguno ya los conocía), lo que más me interesa es conocer proyectos reales, casos de uso, por ejemplo “tal empresa del sector eléctrico español acometió la migración y……..”, no sé si conoceís algún caso real.

    Nuestra evaluación técnica del caso va en la línea de lo que exponeís en este artículo y que se nota que conoceís, pero nos interesan mucho casos reales.

    Muchas gracias de antemano y un saludo,

    Juan

  5. 1) ¿Crees que R puede ser una buena opción para gran compañía (banco o seguros por ejemplo??
    – En mi opinión es buena opción para reducir costes de licencias de SAS, pero no para eliminarlo completamente. Un banco tiene muchas fuentes de datos de grandes volúmenes, Ahora mismo, lo ideal es hacer un tablón de datos para optimizar los procesos puramente analíticos. Estos procesos analíticos se pueden hacer en R con resultados muy buenos, pero la creación del tablón en si, es trabajo de SAS BASE. En el manejo, cruce, ordenación, segmentación de grandes cantidades de datos, SAS es bastante más eficiente.
    2) ¿Conoces algún caso de proyecto de migración?, sobre todo SAS -> R, ¿alguna empresa que lo haya hecho?. Yo sólo conozco casos de empresas que lo nuevo lo hacen en R/Phyton, pero ninguna migración. Si se puede decir la empresa bien, sino basta con sector de actividad, tamaño y si el volumen de procesos SAS era importante.
    Conozco un caso en un gran banco que terminó cancelándose. Principalmente por lo que he comentado, las comparativas de tiempo y recursos entre hacerlo con SAS y con R eran muy ventajosas para SAS. Estamos hablando de cruce de tablas de varios teras.
    3) De plantearte una migración SAS -> R, ¿qué recomendaciones críticas darías?
    Yo lo haría en dos partes, optimizaría los procesos de SAS para crear uno o varios tablones de salida, sencillos de manejar por R, y si recursos y tiempo no son problema, ya iría hacia atrás con la migración del resto de procesos.

Deja un comentario

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