Todos amamos las comparaciones! Antes de comprar un teléfono, averiguamos si es mejor Samsung o Apple. Antes de comprar un viaje, averiguamos sobre el destino. Pues bien, antes de aprender a usar un programa de estadística, es necesario investigar a fondo las distintas alternativas. Mas teniendo en cuenta que para poder usar uno de estos programas de manera mas o menos eficiente, necesitaremos varios meses de práctica. Además, la elección de uno u otro podrá influir de manera decisiva en nuestra futura carrera como profesionales.
En este artículo me enfocaré en los siguientes cuatro programas o lenguajes de programación:
- Python
- R
- SPSS
- SAS
Si bien existen mas programas, como Matlab, eViews y Stata, considero que estos son los cuatro mas importantes en este momento, y los que mas demanda tienen en general. En particular, uso profesionalmente Python y R. Anteriormente usé SPSS y muy poco SAS, por lo que mi experiencia con estos dos últimos es mas limitada, aunque para escribir este artículo realicé algunas consultas a profesionales con mas experiencia en los mismos.
Con la gran cantidad de datos disponibles y el auge de data science, actualmente los profesionales relacionados con la estadística deben saber utilizar de manera prolífica al menos uno de estos sistemas, aunque quienes se especialicen en el análisis de datos deben poder manejar dos de estos o mas, uno de los cuales debe ser Python o R, y es necesario tener conocimiento de SQL.
Suficiente introducción, vamos a ver cual es el mejor! Momento, no tan rápido, cada uno tiene sus pro y sus contra, por lo que deberás tomar la decisión vos mismo.
Python y R son lenguajes de programación de código abierto, mientras que SPSS y SAS son sistemas propietarios comerciales de código cerrado. Para usar SPSS y SAS es necesario comprar una licencia.
Como Python y R son gratuitos y de código abierto, cualquiera puede usarlos de manera profesional sin pagar nada. Esto hace que estén creciendo muy rápido y que cualquier programador puede desarrollar librerías para usar en los mismos. Ambos cuentan con una amplia comunidad dispuesta a ayudar en sitios como Stackoverflow. Comunidades de científicos de datos, como Kaggle, usan Python y R para sus proyectos.
SPSS y SAS no tienen comunidades de usuarios tan grandes, pero sí tienen soporte oficial de los proveedores. Esto puede ser útil para grandes empresas. Si bien la mayoría de los usuarios de Python y R no necesitan este tipo de soporte, ante una duda o problema, además de las comunidades online, existen empresas y profesionales dedicadas a brindar soporte para Python y R.
Python para Estadística
Python es un lenguaje de programación creado por un chico de holanda llamado Guido van Rossum. Guido quiso crear un lenguaje que sea fácil de aprender y poderoso al mismo tiempo. Python es relativamente fácil de aprender, si lo comparamos con otros lenguajes como C. Python es un lenguaje de programación de propósito general. La versión 0.9.0 de Python fue lanzada en 1991.
Al ser un lenguaje de programación de propósito general, Python es usado en muchos programas de PC, en sitios web y juegos. Si bien no fue creado específicamente para estadística, programadores comenzaron a crear librerías para el análisis estadístico con Python. Algunas de las mas conocidas son Pandas, Numpy, Matplotlib, SciPy y scikit-learn.
Python puede gestionar y analizar grandes datasets con relativa facilidad, en este sentido es mejor que R y SPSS. SAS es también de analizar bases de datos de gran tamaño.
Otro punto donde Python tiene mucha ventaja sobre el resto es en data mining y machine learning. Las librerías de Python para este tipo de tareas son mejores a las del resto. Además, Python se implementa en sistemas de producción, como predicciones en tiempo real.
Python puede ser mas difícil de aprender que SPSS y SAS, en especial si no se tiene experiencia con lenguajes de programación.
R
R es un lenguaje de programación creado en la Universidad de Auckland. R fue creado específicamente para analizar datos. Es excelente para realizar predicciones y el análisis de datos.
Al ser de código abierto, R también cuenta con muchas librerías que mejoraron el lenguaje inicial. En los últimos años, librerías como dplyr han hecho que R gane en facilidad de uso y adopción. Muchos consideran que actualmente R es mejor que Python en algunos aspectos, especialmente en estadística descriptiva. ggplot2 es otra excelente librería para crear gráficos y visualizaciones.
Tanto R como Python pueden importar datos de SAS y SPSS.
SAS
SAS es un sistema comercial relativamente caro. Es muy usado en la industria, especialmente en Estados Unidos. En el ámbito farmacéutico, por ejemplo, SAS es el mas utilizado.
SAS fue creado en la Universidad de Carolina del Norte, como una herramienta para analizar grandes datasets de datos de la agricultura. La del mismo demanda aumentó y en 1976 se fundó la empresa SAS.
SAS tiene mucha mas historia que Python y R y por lo tanto existe una gran cantidad de usuarios del mismo. Muchas empresas vienen usando SAS desde hace tiempo y por lo tanto van a seguir usando SAS por muchos años mas, por inercia.
Por esto, especialmente en Estados Unidos, existe una demanda relativamente continua de analista de datos que manejen SAS.
SAS es caro, pero este costo es relativamente bajo para empresas de gran envergadura. Si deseas aprender SAS, existe una versión llamada University Edition, que se ejecuta en una virtual machine y se debe usar con un navegador como Firefox. Esta versión es para uso académico y no comercial.
SPSS
SPSS significa Statistical Package for Social Science y como su nombre lo indica es muy usado en las ciencias sociales, como economía y psicología. Fue desarrollado en 1968 en Standford. IBM compró SPSS en 2009.
SPSS es muy utilizado en universidades y en el ámbito académico, pero no tanto en el sector privado. Como es mucho mas fácil de usar que Python y R, también es usado por muchos estudiantes.
Tiene una interfaz de usuario que con unos pocos clicks permite realizar análisis estadísticos convencionales, con una fracción del tiempo que requeriría realizar el mismo análisis en R y Python. Por ejemplo, regresiones lineales y análisis de ANOVA se pueden hacer en pocos minutos. Los resultados son detallados y los gráficos son aceptables.
SPSS no es muy bueno manejando grandes bases de datos.
Algunas conclusiones
Si eres un investigador de alguna ciencia social y no planeas especializarte en el análisis de datos, SPSS puede ser una opción. Aquellos que quieran trabajar en una industria específica o en Estados Unidos, pueden considerar aprender SAS.
El crecimiento de Python y R ha sido fenomenal en los últimos años, por lo que el futuro de estos dos lenguajes es excelente. Las librerías se vienen mejorando rápidamente. En ciertos aspectos, R supera a Python y en otros como Machine Learning, Python supera a R. Aunque ambos se complementan mutuamente, porque cada uno toma ideas del otro.
En el siguiente gráfico presento los resultados de una encuesta de ButchWorks (consultora) entre mas de mil analistas de datos y científicos de datos de Estados Unidos, en la que simplemente preguntan qué lenguaje prefieren. Podemos ver que con el tiempo, SAS está cayendo en desuso mientras que Python está creciendo rápidamente.
Cabe resaltar que esta encuesta es general, por lo tanto no se refiere a ningún sector en particular. Probablemente en el ámbito corporativo y entre los seniors, SAS supere al resto, mientras que en la academia R (y SPSS) sea mas popular que Python. Sin embargo, la tendencia en general es al crecimiento de Python.
Existen muchos analistas de datos que utilizan estos dos programas, generalmente Python para la preparación y limpieza de datos y R para el análisis. Personalmente tuve algunos inconvenientes con R al analizar grandes bases de datos y también con Python con algunos análisis estadísticos para los que no tenía librerías disponibles, para los cuales tuve que usar R.
Si planeas buscar empleo como data scientist o analista de datos, también deberás conocer SQL.