Tutorial Tableau. Comparar cálculos LOD
Herramientas: 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 valorNulo
. - En la pestaña
Condición
, filtramos para obtener sólo las bicicletas que tienen igual o menos de 50 viajes.
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])})
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.
Si nos fijamos, a este nivel de detalle de la vista, los valores obtenidos para los campos Calc Agregacion
y 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
EXLUDE
se 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 tipoFIXED
se 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:
- 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ónTrip Route Category
). - La agregación de nivel de detalle anidada con
EXCLUDE
muestra dos valores (ditinto para cadaTrip Rpute Category
, replicados para cadaBike 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ónTrip 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 dimensionesTrip Rpute Category
yPassholder Type
, replicados para cadaBike 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ónTrip 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
yPassholder 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
oMIN
, 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
).