
"La ciencia más útil es aquella cuyo fruto es el más comunicable"
Leonardo Da Vinci
Siguiendo los pasos de nuestra metodología para el analista de negocio, llegamos al paso 3 que corresponde a “M" DE MANEJAR LOS DATOS”
En esta fase, toca extraer los datos de las herramientas, tratarlos, limpiarlos y dejarlos listos para empezar a trabajar.
Es una parte del proceso absolutamente decisiva, pues será el momento en el que detectemos si la calidad de los datos es suficientemente buena como para seguir avanzando, o si es preciso replantearse todo el plan. Además, exploraremos la información para descubrir si ofrece lo que vamos a necesitar para los siguientes pasos, y validaremos a continuación que tenemos todos los campos necesarios para el análisis.
Según el volumen de datos a tratar, y el tipo de operaciones a realizar, tendremos que disponer de herramientas más o menos sofisticadas para ello. Así, por ejemplo, si tenemos una pequeña tabla de datos con unos cientos de filas, probablemente una hoja de cálculo (Excel, Google Spreadsheets), sea más que suficiente para explorar el dataset, y realizar así algunas tareas básicas como reemplazar caracteres, transformar alguna variables, y tener una toma de contacto inicial con nuestro conjunto de datos.
En cambio, cuando el volumen de datos crece, ya no es posible realizar una inspección visual fila a fila sobre todo el conjunto, tal y como solemos hacer cuando trabajamos con una hoja de cálculo. Es en este momento cuando debemos recurrir al uso de lenguajes que, por sus características, nos ofrecen el entorno de trabajo ideal para poder manejar los datos. Estoy hablando de R o Python.
Ambos lenguajes se encuentran más asociados a los perfiles relacionados con científicos de datos, que a los de los analistas, ya que se requieren conocimientos avanzados de programación. Todo ello debido a que las herramientas tradicionales tienen muchas dificultades para trabajar con grandes volúmenes de datos (hablo de millones de registros y muchos megabytes de información) y además no nos permiten aplicar ciertas técnicas de análisis mas complejas. Por esto, como digo, esta clase de operaciones, en general, están más cerca de perfiles Data Scientist, cercanos a la capa técnica, que de el de los analistas, más cercanos a la capa de negocio.
No obstante existen opciones intermedias que nos ayudan a manejar los datos. Por mencionar una, tenemos OpenRefine, que es la versión opensource del antiguo Google Refine, que permite tratar tablas enormes de datos y, sobre todo, cambiar formatos, estandarizar valores, cambiar caracteres, etc. No es la mejor herramienta para esta clase de tareas, pero sí que resulta más accesible que R o Python, pues se maneja desde un entorno gráfico, y no requiere conocimientos avanzados de programación o un lenguaje concreto.
Por tanto, sería un punto intermedio entre la clásica hoja de cálculo, y los sistemas más potentes como R o Phyton, cuya curva de aprendizaje es más pronunciada.
En todo caso, nuestro objetivo no es centrarnos en hablar de herramientas. Queremos centrarnos en las operaciones que vamos a llevar a cabo sobre nuestros datos para poder avanzar en nuestra metodología.
Por tanto, ¿qué se plantea nuestro equipo de Data Scientist y/o Analistas cuando ha de enfrentarse a un análisis y alcanza el (M)anejo de los datos? Vamos a ello:
Realizamos un análisis exploratorio de los datos
Este análisis consiste en:
• La comprobación de los formatos de las distintas variables que tenemos en nuestro conjunto de datos.
• La visualización de las primeras y últimas filas, para saber que su importación en el entorno que estemos usando es el correcto.
• Realizamos una descripción básica a nivel estadístico: valores medios máximos, mínimos y desviaciones, lo cual nos da una foto inicial precisa del conjunto de datos sin necesidad de recurrir a inspeccionar visualmente todas las filas, algo imposible y muy subjetivo.
• Siempre realizamos gráficos exploratorios: diagramas de barras, histogramas de frecuencia o de densidad, que nos ayudan a ganar conocimiento sobre el conjunto de datos.
• Además, prestaremos especial interés en esta fase, a la presencia de valores nulos que nos indican que hay variables que no están informadas, y por tanto carecen de información.
Por poner un ejemplo muy básico, si estamos trabajando con los datos de un eCommerce y descubrimos que durante un cierto número de días las métricas de transacciones e ingresos se han ido a cero, probablemente estemos ante algún tipo de error de medición que ha provocado una pérdida de calidad en los datos.
En este caso el analista debe ser capaz de decidir cual es la mejor forma de proceder: ¿descartamos los datos de los días que no tenemos transacciones?, ¿los rellenamos de alguna manera?
En el primer caso, si los descartamos, lo más probable es que nos obligue a descartar de la información que tenemos, otras variables que sí necesitamos para nuestro análisis y para las cuales tenemos datos en esos días.
En el segundo, debemos elegir la mejor forma para “rellenar” dichos datos ausentes. Aquí no sirve con una simple media de las transacciones en días previos, o en el mismo periodo anterior.
En estos casos, si seguimos disponiendo de un volumen relevante de datos, lo habitual es que desechemos los días con datos a cero y los saquemos fuera de nuestro dataset. Tras esto, habrá que evaluar el impacto que ha tenido dicha operación sobre el dataset completo, y si las series de datos siguen siendo suficientes en volumen y relevancia como para proseguir con el análisis.
Comprobamos los outliers, es decir, los valores atípicos o extremos
Puede que no tengamos ningún día con cero transacciones o conversiones, pero ¿y si aleatoriamente tenemos días donde un sistema de pago ha dado problemas a la hora de lanzar los datos, y sólo ha registrado unas pocas ventas? ¿o si por una razón u otra, nuestra herramienta de medición ha tenido problemas algunos días para registrar las ventas con ciertos nombres de producto?
Estos ejemplos pueden parecer extremos, pero son situaciones reales que nos hemos encontrado y que, si no se presta la debida atención a los datos, pueden llevarte a realizar análisis erróneos y, por supuesto, a obtener insights no ajustados a la realidad.
Por tanto, dentro de nuestro dataset, y para las métricas de que disponemos, tendremos que buscar los valores extremos por arriba o por abajo.
Podemos hacerlo con algún método exploratorio básico (incluso graficando los datos), o con un modelo matemático que los detecte automáticamente en base a cálculos sobre las desviaciones típicas o la dispersión.
Volviendo al caso del ejemplo del eCommerce, localizar outliers es imprescindible. Y no sólo por los errores en los datos a los que antes aludíamos. No podemos olvidar, que en los negocios, en ocasiones, ocurren hechos impredecibles que rara vez se vuelven a producir. Echando la vista atrás, nos hemos encontrado por ejemplo, con pedidos de más de 10.000 € a una tienda de ropa online realizado por una tienda que revendía sus productos, o una reserva de más de 30 habitaciones en una cadena hotelera realizada por la empresa que organizaba un evento en un lugar cercano.
Son casos raros, pero que en la vida real ocurren. El problema es que, si necesitamos modelar los datos para desarrollar modelos predictivos, medir el impacto sobre una determinada métrica, etc., será preciso eliminar esta clase de distorsiones que nos pueden llevar a obtener datos poco precisos o erróneos.
El siguiente punto, consistirá en enriquecer el conjunto de datos
Si seguimos con el ejemplo del eCommerce, puede que a nuestros datos de transacciones realizadas online por cada uno de los usuarios, queramos añadir la fecha de primera compra, o la cantidad de devoluciones que un cliente ha solicitado.
Estos datos no vendrán de nuestra herramienta de analítica, si no del backend interno de la empresa que puede ser de nuestro CRM, ERP, Business Intelligence o la fuente de datos disponible. Esta operación en ocasiones es tan simple como hacer un join entre tablas, y en otras puede ser un verdadero quebradero de cabeza que requiera horas de trabajo.
En todo caso, el objetivo es claro: añadir datos a nuestro dataset para alcanzar el objetivo final que nos hemos marcado, y poder llegar al siguiente paso de manera segura.
Una vez que tenemos todos los datos, puede darse el caso de que tengamos que añadir variables o métricas nuevas al dataset que no estaban previamente presentes. Las métricas son las más “sencillas”, pues en general parten de otros datos del propio dataset para calcularse.
Por seguir con el ejemplo del eCommerce, imaginemos que tenemos las compras realizadas en un periodo determinado por cada uno de nuestros usuarios. Una métrica interesante podría ser el importe medio que han gastado cada uno de los usuarios, además de saber el número de compras realizadas, o los días medios transcurridos entre ellas.
Eso sí, además de las métricas calculadas a partir de los datos existentes, puede que nos interese trabajar con variables categóricas.
Puede ser una tan simple, como asignar un 0 o un 1 a cada cliente según sea cliente recurrente o nuevo. O puede que tengamos que añadir variables más elaboradas, como el nivel que asignamos al cliente según su volumen de gasto en un periodo previo, la antigüedad, e incluso, datos demográficos de los que dispongamos.
Todas estas variables nos permitirán, más adelante, realizar análisis más ricos y potentes, por lo que merece la pena entender bien los pasos previos para llegar al manejo de los datos con las necesidades claras, y así poder generar un dataset que sea exactamente lo que necesitamos para seguir avanzando.
Ordenamos los datos y procedemos a la limpieza de los mismos
En muchas ocasiones, puede que necesitemos abordar, ordenar y limpiar nuestro dataset. Todo depende del origen de los datos, y de su calidad. Este concepto de ordenar no se refiere a ordenar de mayor a menor las filas de una tabla (que probablemente para el análisis posterior será irrelevante). Nos referimos a ordenar la información de manera que tengamos lo que necesitamos en el formato requerido, y eliminemos lo que nos sobre.
Por poner un ejemplo muy básico, supongamos que tenemos una columna con un porcentaje donde los datos se presenten como “10,4%”. Este formato será muy poco práctico a la hora de trabajar con él desde una herramienta como R o cualquier otro entorno de manejo de datos en bruto. Por tanto, tendremos que transformar dicha columna de datos a su formato numérico estándar, es decir, a “0,104”.
Y no olvidemos el concepto denominado Tidy data
Esta filosofía, básica para trabajar en Data Science con grandes volúmenes de datos, consiste en simplificar al máximo el dataset y disponer de una variable por columna y una observación por fila. Con esto, en lugar de trabajar con un dataset con docenas de columnas y posibles combinaciones para una misma observación (cliente, transacción, día, etc.), trabajaremos con unas pocas columnas (a veces una sola), e incrementamos el volumen de filas.
Dado que herramientas como R son mucho más eficientes trabajando con esta clase de datasets, ahorraremos tiempo y ganaremos en eficiencia a la hora de pasar al punto siguiente de la metodología.
En resumen, el objetivo de esta clase de técnicas, como comprobar los valores atípicos o incorporar nuevas fusiones de datos u ordenar el dataset o simplificarlo, no es otro que el de preparar los datos que extrajimos en el paso previo, para poder empezar ahora a buscar en los datos, que es el paso siguiente de nuestra metodología MAMBO.
Y como habéis comprobar si habéis llegado hasta aquí, es una parte fundamental del proceso de análisis sin el que probablemente no lograríamos nuestra meta: responder una pregunta de negocio.
Si necesitas aclarar alguna duda al respecto, puedes consultar nuestro podcast sobre el tema: