Usualmente cuando el cliente solicita la implementación de algún modelo en un cubo nos encontraremos valores que no podemos clasificar en las agrupaciones propias del negocio y los datos. Esto inicia cuando el usuario trabaja con las aplicaciones y, en ausencia de información completa debe tomar la mejor decisión posible con dicha falta de valores y utiliza datos tales como:

  • no definido
  • no clasificado
  • no aplica
  • N/A <- ampliamente utilizado con modelos interpretados con R
  • N/D
  • espacios en blanco
  • NIL <- valor representante de nulos en la industria Naviera
  • y otros cientos de nombres creativos que quieran emplear

Esta situación es perfectamente aceptable, compresible, manejable… para aplicaciones transaccionales; pero… en un modelo analítico esto se convierte en un tema de atención porque induce “si quieren llamarlo de alguna manera” a errores en el soporte para toma de decisiones. Veamos cómo nos afectan; en el actual proyecto que estoy trabajando tiene como objetivo la toma de decisiones sobre el transporte con barcos y su consumo de combustible, pues este consumo anualmente suele superar el valor de un barco… (¡Casi increíble!). Hasta aquí todo perfecto, pero una forma de analizar dicho costo es por atributos referentes a la construcción del barco que tienen una relación casi directa con su rendimiento de combustible. Y fue aquí donde nació este post. Como es tradicional cuando tenemos que “completar” la información dentro de las aplicaciones y carecemos de dicha información al 100% optamos generalmente en dejarlo para después, pero… ¿Cuándo llega ese después? Y la respuesta es: rara vez llega. Hasta que le produzca dolor a alguien… Y es justo en este momento en que nuestro cubo cumple dos funciones:

  1. Acelera el proceso de dolor
  2. Y con el tiempo crea una cultura en los usuarios de no producir el dolor

Imaginemos el cubo y su forma de ordenar los valores, usualmente los datos de dicha dimensión serán ordenados por el contenido de dicho atributo de manera tal que tenga lógica para el ser humano, es decir, en la mayoría de los casos será alfabéticamente o incremental para números (esto se cumple hasta que le indiquemos alguna manera de cómo hacerlo según requiera el análisis), entonces… ¿Qué efectos nos producen los valores “No definidos”, “N/A”, “N/E”, «NIL», » «, etc… ? Pues bien, ocurrirán una serie  de acontecimientos y  entre los mas importantes encontraremos:

  1. Los valores no deseados («No definidos») quedaran escondidos en el resto de la dimensión, dificultando su identificación.
  2. Cuando exista más de un valor de “indefinido” o “error” los hechos asociados serán diluidos en dichos errores (5 valores para no definidos en mi caso).
  3. Eleva la complejidad de interpretación del cubo.
  4. Induce al descuadre de reportes por parte de diferentes departamentos por olvidos de las reglas de negocio.

Esto va creando un balance no deseado para la toma de decisiones, por ejemplo estas son algunas de las incógnitas que se verían propensas a equivocaciones una distribución entre los multiples valores mencionados.

  • ¿Cómo decidimos la mejor estrategia de utilización de barcos?
  • ¿Cómo distribuir la flota para optimizar el gasto?
  • ¿Sería mejor cambiar o actualizar  algunos barcos y con esto se pagarían por el ahorro producido?

Entonces surge la gran pregunta… ¿Cómo hacemos para clasificar lo no clasificado? Esto es la parte más fácil. Una técnica (que en mi opinión es la mas versátil) es convertir o mostrar todos aquellos valores en un grupo que cumpla estas condiciones:

  1. Que siempre se muestre en el primer lugar en la lista de datos
  2. Que sea un valor lo suficientemente llamativo para que sea percibido bajo cualquier circunstancia
  3. Que produzca un cierto sentido de urgencia por reparar los datos en su origen

Y para tal efecto usamos un carácter especial… en nuestro caso será “***” (tres asteriscos) esto aparte de que hace que el cubo se vea feo (en el buen sentido de la palabra), hace al mismo tiempo que el cubo se vea agradable. (Extraña paradoja…) ¿Verdad? Al hacer que cualquier dato no clasificado se convierta en *** hacemos que se presenten en primer lugar en la dimensión, provocando que quien consulte el cubo se pregunte: ¿Cómo eliminar esos valores?, ¿Cómo tener información mas precisa y mejor distribuida?, ¿Por qué tenemos información pendiente en el transaccional?, ¿Quien es el responsable de arreglar el dato en el origen?  En fin… estas entre otras preguntas más, y por lo general al completar o limpiar los datos transaccionales obtendremos información limpia y que realmente sea de ayuda para el negocio, y de aquí en adelante el resto es historia… una mejor historia…

y les dejo una pequeña muestra de como se ve el mismo cubo con ambas patrones.

Cubo Not Defined vrs Asteriscos

Un saludo desde Costa Rica

Ricardo Estrada Rdez