<< Back

¿Qué hay de nuevo en Tableau 2020.3? #1 Predictive modeling functions (parte 1)

¡Aleluya, visualizadores! Parece que por fin Tableau ha decidido meterse en modelos de predicción. Eso es una gran noticia para todos los que nos gusta hacer nuestros pinitos en Data Science e incorporarlos a las visualizaciones. Puede no sirva para análisis más complejos, pero sí hace ciertas aproximaciones que, de otra forma, habríamos tenido que calcular en un lenguaje de programación (R, Python) sin ninguna necesidad.

Con esta idea en mente, me puse a investigar lo poquito que hay todavía de información (aquí) y rápidamente lo llevé a Tableau para aprender practicando. Veo que existen dos cálculos de tabla, MODEL_PERCENTILE y MODEL_QUANTILE que, como su propio nombre indica, predicen la probabilidad de que las marcas caigan en el percentil/quantil dado. Mis primeras impresiones son extrañas. No termino de entender por qué llaman a esta herramienta ‘predictive’, cuando al final no está prediciendo nada. Más bien permite explorar estadísticamente (tipo EDA) las relaciones entre los datos de manera que podamos entender qué valores o rangos de valores son mucho más probables de darse sobre el total; como si fuera un gráfico box-plot. Aunque no es exactamente lo que imaginaba, veo potencial en esta funcionalidad.

1. Crea y visualiza el modelo predictivo:

Vamos a Tableau y abrimos la base de datos de Sample – EU Superstore, que básicamente se ha convertido en mi mejor amiga junto al café soluble. Es muy útil en lo que a hacer pruebas y experimentar se refiere. Echando un vistazo a los diferentes campos que tenemos (Categoría, Localización, Precio… Hay de todo), trato de pensar cuál de ellos es susceptible de querer ser predicho en un caso de uso real. Por hacerlo más interesante, decido crear un nuevo campo calculado, Shipping Time (days), que calcula la diferencia de fecha en días entre la fecha de compra (Order Date) y la de recepción (Shipping Date).

A continuación, siguiendo las instrucciones de Tableau (aquí), creo otro nuevo campo calculado, que he llamado Predictor Shipping Time que será el que contenga la predicción y que retornará un número entre 0 y 1, para cada marca, dependiendo de si es mayor, menor o igual que el valor esperado. Veréis que, ante la duda, he puesto como predictores todos los campos (medidas agregadas o dimensiones con ATTR()) que me parecía podían influir ciertamente en el tiempo de envío a predecir.

Una vez creado, lo arrastramos a la vista y colocamos una dimensión en la marca Detalles; en este caso yo he decidido usar las categorías (Category). Hacemos click derecho en la píldora azul de Predictor Shipping Time en filas o columnas (donde lo haya soltado cada uno) y especificamos que lo queremos calcular usando la dimensión que hemos puesto en detalles (para mí, Category). Oh, no! Algo va mal! Ha aparecido este pop-up:

2. ¿Cómo escoger los predictores adecuados?

Vale, demasiados predictores. De modo que no podía poner todos los que a mí me diera la gana. En Tableau encontramos un artículo titulado Choosing Predictors (aquí) que nos va a ayudar a elegir. Para las medidas, utilizamos la correlación. Es importante saber que este modelo propio de Tableau es de Regresión Lineal, lo cual implica que funcionará mucho mejor cuanto más correlacionadas estén la variable a predecir y el predictor. Por ello, vamos a otra hoja distinta y creamos un scatterplot para la primera medida, Discount. Repetimos el proceso con las demás y comparamos los resultados:

Al ser Shipping Time, Discount y Quantity medidas de tipo discreto, tampoco vamos a distinguir esa acumulación en forma de línea recta que caracteriza a las relaciones lineares poderosas. A primera vista se aprecia que, de las cuatro, las que más se concentran entorno a la línea de tendencia son Profit y Sales. ¡No te confundas! Dado que las otras dos son discretas, en muchos casos las marcas se estarán acumulando unas encima de otras y no podemos saber cuantas hay para cada valor. Cambiamos la opacidad de todas las marcas al 10% y lo comprobamos de nuevo:

¡Sorpresa! Parece que la cantidad de unidades por pedido (Quantity) también es proporcional al tiempo de envío. No obstante, no sólo nos valemos del ojímetro para decidir cuáles escoger. Al pasar el ratón por encima de la línea de tendencia, aparecen una serie de valores que son resultado de la correlación. Uno de ellos es R-Squared; cuanto más cercano a 1 y alejado de 0, mayor relación linear indica. Comparamos los cuatro Squared values, descubriendo que el más alto es el de Quantity, con 0.54; seguido de Sales con 0.18; Profit, 0.03; y, a mucha distancia, Discount, con un valor de 0.01 *10^2. Si lo piensas, tiene sentido que, al contrario que el precio, el beneficio y la cantidad, el descuento no tenga relación con el tiempo de entrega.

Vamos ahora con las dimensiones. Esto es algo más confuso porque cada uno de los valores que pueda tomar esa variable categórica puede tener una relación distinta. La mejor forma de verlo es quedarnos con las tres medidas que hemos elegido y poner la dimensión en la marca Color. Por ejemplo, usando Category en el color, vemos diferentes líneas para cada categoría; y al pasar por encima de cada una de ellas obtenemos sus valores R-squared, los cuales resultan ser mucho más elevados para Office Supplies que para las otras dos.

Ya no nos extraña que, con Ship Mode, R-squared para el envío Standard sea la más alta, seguida muy de cerca por la primera clase y la segunda, mientras que el envío en el mismo día esté muy muy poco relacionado.

La siguiente dimensión, Subcategory, tiene demasiadas opciones, así que queda descartada. Lo mismo ocurre con Manufacturer, Product Name y, dentro de la jerarquía Localización, para todos sus campos. Sin embargo, existe otra dimensión relacionada con el espacio que sí podemos probar, denominada Region, que solo tiene tres categorías. Y todas con valores R-squared muy similares, por lo que ésta sí que es una dimensión que podemos utilizar en la predicción general.

La conclusión que sacamos de todo esto es que las únicas variables con las que podemos contar son Quantity, Region, Sales y Profit (si eso), en este orden de importancia; porque una mala elección de predictores podría perjudicar a la precisión del modelo. Así queda nuestro nuevo campo calculado Predicted Shipping Time:

Mucho menos aparatoso, ¿verdad? Os preguntaréis, ¿y qué de qué nos sirven esas dimensiones que presentaban buenos R-squared únicamente en algunas categorías? Una opción sería crear un modelo predictivo para cada una de ellas y tener en cuenta solo las más correlacionadas. Si hacemos esto, habría que crear dos diferentes modelos filtrando la categoría Office Supplies, incluyendo Category como predictor; y otro filtrando los envíos Standard, First y Second class, que incluya Ship Mode.

¡Pero aún no está listo! Porque al volver a intentar el paso 1. Crea y visualiza el modelo predictivo, nos sigue dando un error:

¿Por qué será? (¡Os dejo con el cliffhanger! La solución, dentro de tres días, el lunes, en este mismo blog.)

Irene Saravia

Madrid

Leave a Reply

Your email address will not be published. Required fields are marked *