LOD calc, average, challenge, Workout Wednesday

Por: Rosario Gauna @rosariogaunag

En la semana 25 de Workout Wednesday, @LukeStankenos tenía preparado uno de sus retos maquiavélicos y no conforme, él publicó en twitter la siguiente imagen. Link al Reto.

Screen Shot 2018-06-21 at 2.38.49 PM

¿Qué opinan? Definitivamente creo que Luke buscaba ser excluido de varias listas de amigos.

En el reto, Luke nos solicita utilizar clusters y era un tema que yo no conocía. Por lo cual, lo primero que hice fue buscar material del tema y por supuesto no tuve problemas en encontrar rápidamente lo que buscaba.  Una vez revisado el material, pude constatar que el trabajo duro de los clusters, lo realiza Tableau. Mi primer punto a favor.

Ahora faltaba el tema de cómo hacer la gráfica. La gráfica sólo se trata de líneas y círculos, pero aun así no lograba descifrar el truco?

Leí los “spoilers” que nos dio Luke y me puse a probar ideas. Sin embargo, el empezar sin un plan definido, aunque en muchas ocasiones me funciona muy bien, en otras ocasiones me lleva por caminos complejos. Después de más intentos de lo que pensé, logré terminar el reto.

Ahora al repasar la solución final, puedo ver que los pasos requeridos no son complejos.

Cuando esto me sucede, me gusta darme un tiempo para comprender mejor que es lo que pedía el reto, que fue lo que hice y que puedo mejorar.

A continuación, comparto los pasos de mi última versión.

Paso 1: Trabajar los datos para contar con dos marks para cada dato. Una de las técnicas para lograr este objetivo es crear la “Union” de los datos de “Orders” de Superstore consigo misma.

La “Union” nos permite contar con dos “marks” para cada elemento a graficar. ¿Para qué necesito de dos “marks”? En este ejercicio utilizaremos una de las “marks” para traficar el punto de inicio de la línea (punto pequeño) y la otra “mark” para traficar el punto final de la línea (punto grande).

Para identificar si se trata de los datos de la primera copia o de la segunda copia, Tableau crea en forma automática una nueva dimensión llamada “Table Name” con los valores “Orders” y “Orders1”.

Paso 2: Utilizar la funcionalidad de Cluster de Tableau.

Primero entendamos ¿Para qué nos sirven los Clusters?

Los Clusters nos ayudan en el análisis de datos complejos, al crear agrupaciones de las dimensiones considerando similitudes entre los datos analizados. De tal forma que los elementos de un cluster tienen un comportamiento más similar entre ellos, que con el resto de los elementos de otros clusters.

Para este ejercicio, los clusters se definirán con:

  • Las dimensiones de “Sub-Category” y “Region”.
  • Los valores que se evaluarán para encontrar patrones similares son: el porcentaje promedio de utilidad 2015 y el promedio simple del descuento 2015.

Paso 2.1 Crear la variable de “Profit Ratio”.

Profit Ratio = SUM([Profit]) / Sum([Sales])

Cabe aclarar que el promedio de descuento que nos solicita el reto es un promedio simple y no el promedio ponderado. Por lo cual no se requiere por el momento calcular otra variable.

Si desea probar con el monto del descuento con promedios ponderados. Simplemente calcule el valor de descuento en $ y después obtenga la proporción que representan la suma de los descuentos en $ vs. la suma de las ventas.

Paso 2.2 Crear la gráfica base para definir los clusters con las dimensiones y “measures” a analizar.

Mover a los estantes de:

  • Filter ⬅  “Year” y seleccionar año 2015.
  • Columns ⬅  “Discount” y con el click derecho cambiar agregación a “Average”
  • Rows ⬅  “Profit Ratio”
  • Detail ⬅  “Sub-Category” y “Region”

Paso 2.3 Utilizar la opción de crear Clusters de Tableau.

En el menú “Analytic” seleccionar el modelo de cluster y arrastrar la opción a la gráfica. El número de clusters o agrupaciones a utilizar en el reto es tres.

Si tiene un número diferente, deberá ajustar el número a tres clusters.

Paso 2.4 Definir como una nueva dimensión el agrupador de Clusters calculado en el paso previo.

Seleccionar el campo de clusters recién creado ubicado en el estante de colores y arrastrarlo a dimensiones. Renombrar la nueva dimensión como “Clusters 2015”

Quiero aclarar que esta gráfica fue creada exclusivamente con la finalidad de definir los clusters. Una vez cumplido su objetivo, se puede eliminar si así lo prefiere.

Paso 3: Calcular la variable “Year”

Year = DATEPART(‘year’, [Order Date])

Paso 4: Comprender dos requerimientos claves del reto.

Antes de continuar, repasemos dos requerimientos del reto:

  • Los puntos pequeños son para la combinación “Sub-category” y “Region”
  • Los puntos grandes son para los clusters.

Para lograr presentar los puntos pequeños y los puntos grandes en la gráfica, utilizaremos la duplicidad de los datos definida en el primer paso del procedimiento.

Utilizaremos la primera copia de los datos identificados en la variable “Table Name” con el valor de “Orders” para definir los valores de los puntos pequeños.

Y la segunda copia de la tabla de datos la utilizaremos para definir los valores de los puntos grandes.

Paso 5: Calcular la variable “Avg Profit Ratio”. Para obtener los valores del eje de las “y” de los dos puntos.

REQUERIMIENTO FORMULA
Para Puntos Pequeños

El valor deberá calcularse a nivel:

–       Year

–       Sub-Category

–       Región

Avg Profit Ratio=

 

IIF([Table Name]=”Orders”,

 

{FIXED [Year], [Sub-Category], [Region] : SUM([Profit]) / SUM([Sales])},

Para Puntos Grandes

El valor deberá calcularse a nivel:

–       Year

–       Clusters 2015

{FIXED [Year], [Clusters 2015] : SUM([Profit]) / SUM([Sales])})

Paso 6: Calcular la variable “Avg Discount”. Para obtener los valores del eje de las “x” de los dos puntos.

REQUERIMIENTO FORMULA
Para Puntos Pequeños

El valor deberá calcularse a nivel:

–       Year

–       Sub-Category

–       Región

Avg Discount =

 

IIF([Table Name]=”Orders”,

 

{FIXED [Year], [Sub-Category], [Region] : AVG([Discount])},

Para Puntos Grandes

El valor deberá calcularse a nivel:

–       Year

–       Clusters 2015

{FIXED [Year], [Clusters 2015] : AVG([Discount])})

Paso 7: Calcular la variable “Label”, que nos ayudará a personalizar el encabezado en los tooltips.

REQUERIMIENTO FORMULA
Para Puntos Pequeños

El encabezado incluye las dimensiones:

–       Sub-Category

–       Región

–       Cluster

Label =

IIF([Table Name]=”Orders”,

 

[Sub-Category] + ”  |  ” + [Region] + ”  |  ” + [Clusters 2015],

Para Puntos Grandes

El encabezado será el nombre del Cluster

[Clusters 2015])

Paso 8: Cambiar el nivel de agregación de las “Avg Profit Ratio” y “Avg Discount” a “Average”

Paso 9: Crear la gráfica correspondiente a los años 2015 y 2016. Definir el tipo de la gráfica de líneas.

Mover a los estantes de:

  • Filter ⬅  “Year” y seleccionar años 2015 y 2016
  • Columns ⬅   “Year”
  • Columns ⬅   “Avg Discount” debe mostrarse con agregación a “nivel Average”
  • Rows ⬅   “Profit Ratio” debe mostrarse con agregación a nivel Average
  • Detail ⬅   “Sub-Category”, “Region”
  • Path ⬅   “Table Name”

Paso 10: Complementar la gráfica para incluir un segundo eje para mostrar la información en puntos. Mover al estante de Rows una nueva copia de lavariable de “Profit Ratio” e indicar que se trata de un eje dual sincronizado.

Paso 11: Cambiar el tipo de la gráfica a círculos.Posicionarse en el estante de “Marks” correspondiente al segundo eje y seleccionar el tipo de gráfica de círculos.

Agregar nuevos elementos a los estantes:

  • Color ⬅   “Clusters”
  • Size ⬅   “Table Name”
  • Tooltips ⬅   “Label”

Paso 12: Ajustar los Tooltips.

Paso 13: Ajustar los colores utilizados y formatos.

Paso 14: Duplicar la gráfica para los años 2017 y 2018. Sólo ajuste el filtro respectivo de “Year”

¡Listo!  

Link a Tableau Public

Picture01

Espero que esta recapitulación les sea de utilidad.

También espero que @AnnUJackson, @LukeStanke y @RodyZakovich no quieran hacernos dudar en los próximos retos sobre si tenerlos o no tenerlos en nuestra lista de amigos de la semana.

Ya hablando en serio, lo que realmente deseo es agradecerles a cada uno de ellos por su esfuerzo para traernos nuevos retos cada semana.

Si tiene alguna pregunta sobre el blog, no dudes en ponerte en contacto conmigo en Twitter (@rosariogaunag)

¡Saludos!

Rosario Gauna

Advertisements