Tutorial Tableau. Comparar cálculos LOD

Herramientas: Tableau

Aviso: Este documento es un complemento a las sesiones que imparto sobre visualización de datos y analítica visual, y en ningún caso pretende ser un manual comprehensivo sobre Tableau.

Introducción

En este ejercicio prepararemos diversos campos calculados y los combinaremos con distintas dimensiones para exclarecer cuál es la relación entre unos y otros.

Una buena forma de trabajar con cálculos y observar si el resultado es el esperado, consiste en visualizar distintos cálculos en forma de tabla de texto. Para ello, usaremos las píldoras especiales Nombres de medidas y Valores de medidas ya vistas en el punto “Tabla” del ejercicio 04.

Además vamos a filtrar los datos para quedarnos con unos pocos y facilitar las comparaciones.

Aplicamos un filtro a la dimensión Bike ID con la siguiente configuración:

  • En la pestaña General, excluimos el valor Nulo.
  • En la pestaña Condición, filtramos para obtener sólo las bicicletas que tienen igual o menos de 50 viajes.
Configuración del filtro para la dimensión Bike ID

Cálculos iniciales

Vamos a trabajar con distintos tipos de cálculos (más información sobre tipos de cálculos en el ejercicio 06: Optimización) para, posteriormente, observar cómo afecta la inclusión de dimensiones a estos cálculos. Los cálculos con los que vamos a trabajar son:

  • Agregación básica
  • Expresión de nivel de detalle
  • Expresiones de nivel de detalle anidadas

Cálculo básico

Con este cálculo básico obtendremos la media de la duración del nivel de detalle en el que estemos trabajando. Como no aplicamos ningúna expresión de nivel de detalle, el cálculo se realizará teniendo en cuenta la partición de los datos derivada de las dimensiones utilizadas en la vista.

// Calc Agregacion

AVG([Duration])

Cálculo de nivel de detalle (LOD)

Las expresiones de nivel de detalle nos permiten indicar precisamente qué dimensiones se han de tener en cuenta a la hora de realizar los cálculos, y cómo (excluir, incluir…).

Para este ejemplo, vamos a calcular la media de duración de uso para cada bicicleta. Para ello, necesitamos que el cálculo se realice a partir de la partición creada por la dimensión Bike ID. Como no sabemos si dicha dimensión está o no incluida en la vista, vamos a utilizar el tipo FIXED.

// Calc LODE

AVG({FIXED [Bike ID] : AVG([Duration])})
CUIDADO! Si no incluimos la expresión de nivel de detalle dentro de una función de agregación, aunque el editor de código no de aviso de error, no podremos utilizar este cálculo en la visualización.
Error al no agregar la expresión de nivel de detalle

Esta fórmula nos devolverá la media de de uso de cada bicicleta. Si cada bicicleta sólo tiene un valor (porque no está más particionada), la media de esa media sera el mismo valor (de hecho, podríamos usar otro estadístico de resumen). Sin embargo, si cada bicicleta tiene más de un valor (porque está particionada por otra dimensión), Tableau calculará la media de las medias, y propagará ese nuevo valor (ver a modo de ejemplo el caso de la bicicleta con ID 5906 cuando añadimos la dimensión Trip Route Category).

Cálculo de nivel de detalle anidado (LOD)

En el caso de que queramos obtener la media de uso de todas las bicicletas, tenemos que subir un nivel de agregación en los cálculos. Con el cálculo que hemos realizado en el paso anterior, hemos obtenido una lista con un valor para cada bicicleta; ahora queremos obtener un único valor resumen de dicha lista (en este caso, la media).

Como el valor que queremos obtener es la media de uso de TODO EL GRUPO (habiendo calculado previamente la media de uso de CADA bicicleta), tenemos que eliminar la dimensión Bike ID del cálculo, ya que de otra forma no podremos obtener el dato que nos interesa.

Podemos realizar este cálculo de dos formas que, siendo similares, tienen una repercusión distinta en el valor final obtenido.

Exclude

Las expresiones de nivel de detalle de tipo EXCLUDE sirven precisamente para eliminar una dimnesión de la partición de un cálculo.

// Calc LOD anidado EXCLUDE
AVG({ EXCLUDE [Bike ID] :
    AVG({ fixed [Bike ID] : AVG([Duration])})
    }
)

Fixed sin dimensiones

Otra forma de indicar a Tableau que no tiene que tener en cuenta ninguna dimensión en su cálculo es usar una expresión de nivel de detalle de tipo FIXED sin indicar ninguna dimensión:

// Calc LOD anidado FIXED
AVG({ FIXED :
    AVG({ fixed [Bike ID] : AVG([Duration])})
    }
)

Dimensiones

Una vez que ya hemos preparado los campos calculados con los distintos tipos de cálculo, vamos a ir incluyendo dimensiones a la vista para ver cómo afectan a los cálculos.

Dimensión Bike ID

Vamos a empezar con esta dimensión por dos motivos:

  • Es la única mencionada explicitamente en nuestros cálculos de nivel de detalle
  • Es la que estamos utilizando como filtro de los datos

Tenemos que recordar que Bike ID no es el nivel más desagregado de los datos, por lo que un mismo código de bicicletas puede aparecer más de una vez (como de hecho ocurre). De ahí la necesidad de agregar los datos.

Dimensión Bike ID

Si nos fijamos, a este nivel de detalle de la vista, los valores obtenidos para los campos Calc Agregaciony Calc LOD son idénticos para cada bicicleta. Esto se debe a que al estar la dimensión Bike ID incluida en la vista (y solo esta dimensión), la agregación básica se realiza a nivel de bicicleta, que es exactamente lo que le hemos buscado con el campo calculado Calc LOD. Por lo tanto, hasta aquí todo bien.

Sin embargo, si nos fijamos en los valores para Calc LOD anidado EXLCLUDE y Calc LOD anidado FIXED, observamos dos cosas:

  • Los valores de los dos campos no son iguales. Esto se debe a que las expresiones EXLUDEse calculan después de aplicar los filtros de dimensiones (3661 es la media de la media de uso de las bicicletas que se ven en pantalla), mientras que las de tipo FIXEDse calculan antes (1600 es la media de la media de uso de todas las bicicletas).
  • Los valores de los cálculos se propagan en todas las filas: el resultado de estos cálculos, con este nivel de detalle de la vista, es un único valor, no una lista. Tableau propaga ese valor a todas las filas.

Trip Route Category

Si añadimos una nueva dimensión a la vista, los valores de los cálculos cambian:

Dimensiones Bike ID + Trip Route Category
  • La agregación simple se adapta al nivel de partición de la vista (Bike ID + Trip Rpute Category).
  • La agregación con expresión de nivel de detalle simple muestra la media de uso para cada bicicleta, y replica el valor en todas las subfilas (al ser de tipo FIXED no tiene en cuenta la dimensión Trip Route Category).
  • La agregación de nivel de detalle anidada con EXCLUDE muestra dos valores (ditinto para cada Trip Rpute Category, replicados para cada Bike ID), cuando esperábamos un único valor. Dejamos la explicación para más adelante en este mismo artículo.
  • La agregación de nivel de detalle anidada con FIXED muestra el valor que esperamos, a saber, la media de uso de las bicicletas (para todas las bicicletas, no solo las filtradas).

Trip Route Category + Passholder Type

  • La agregación simple se adapta al nivel de partición de la vista (Bike ID + Trip Rpute Category + Passholder Type).
  • La agregación con expresión de nivel de detalle simple muestra la media de uso para cada bicicleta, y replica el valor en todas las subfilas (al ser de tipo FIXED no tiene en cuenta la dimensión Trip Route Category).
  • La agregación de nivel de detalle anidada con EXCLUDE muestra hasta cinco valores distintos (uno por cada combinación distinta de las dimensiones Trip Rpute Category y Passholder Type, replicados para cada Bike ID según corresponda). De nuevo, dejamos la explicación para más adelante.
  • La agregación de nivel de detalle anidada con FIXED muestra el valor que esperamos, a saber, la media de uso de las bicicletas (para todas las bicicletas, no solo las filtradas).

Explicación de los cálculos

  • La agregación simple se adapta al nivel de partición de la vista (Bike ID + Trip Rpute Category + Passholder Type).
  • La agregación con expresión de nivel de detalle simple muestra la media de uso para cada bicicleta, y replica el valor en todas las subfilas (al ser de tipo FIXED no tiene en cuenta la dimensión Trip Route Category).
  • La agregación de nivel de detalle anidada con EXCLUDE se calcula de la siguiente manera:
    • Primero, se calcula la expresión interior, a saber, la media de duración para cada bicicleta.
    • El siguiente nivel (EXCLUDE [Bike ID]) crea una partición en la que no se tiene en cuenta el identificador de la bici, pero sí Trip Route Category y Passholder type; en ese nivel de agregación, lo que encuentra es una serie de valores que se corresponden con las medias de las bicis (¡no la media de las filas del dataset original!). Calcula la media de esos valores.
    • Finalmente, calcula la media de cada valor resultante (la partición no cambia, porque no hay nuevas dimensiones en juego). Este gráfico muestra los cálculos paso a paso:

  • La agregación de nivel de detalle anidada con FIXED en ambas expresiones realiza el cálculo de la siguiente manera:
    • Primero, se calcula la expresión interior, a saber, la media de duración para cada bicicleta.
    • La expresión exterior FIXED no incluye ninguna dimensión, lo que equivale a decir que no queremos ninguna partición (o que sea el nivel máximo de agregación). Obtiene esa cifra realizando la media de uso de la media de uso de TODAS las bicicletas (no solo las filtradas), ya que las expresiones de nivel de detalle se calculan antes de aplicar los filtros de dimensiones.
    • Finalmente, calcula la media de cada valor resultante del cálculo anterior (en este caso podríamos haber calculado otros estadísticos de resumen, como MAX o MIN, ya que a esta altura estamos trabajando con un único valor).

Filtros de contexto

¿Cómo podríamos obtener el valor de la media de duración de uso de las bicis que están en la vista? (las filtradas, no todas).

Podemos hacer que el filtro de las dimensiones se aplique antes que las expresiones FIXED haciendo que sea un filtro de contexto (que se aplican antes, como podemos ver en este diagrama)

Una dimensión utilizada como filtro de contexto pasa a tener el color gris. Si observamos la última columna, observamos que el valor que muestra ahora es 3661 en lugar del anterior 1600 (y vemos que coincide con el cálculo del campo Calc LOD anidado EXCLUDE de la tabla en la que solo se usa la dimnesión Bike ID).

Recursos


Más posts