lunes, 15 de diciembre de 2014

Visualización con un heatmap en Excel para evolución ventas por rango horario a lo largo del tiempo

Basándome en el libro "Data Analysis using SQL and Excel" de Gordon S. Linoff mostramos un ejemplo que, a través de un mapa de calor en Excel, nos permite visualizar información de la tendencia de venta de cada spot en distintas franjas horarias durante los últimos 15 días.

En el capítulo 8 de libro de Gordon ("Customer Purchases and other repeated events") plantea una solución para ver la evolución de las compras de los clientes en la BBDD de ejemplo del libro.
(Los 3 primeros pantallazos que adjunto están sacados de este extraordinario libro.)


El eje de las Y recoge el amount (cantidad vendida en $), las X recogen el mes y el año de la venta. Realmente más que una recta de regresión se trata de una serie temporal. El caso es que sirve para ver la evolución (creciente o decreciente) de cada cliente a lo largo del tiempo y ver si esta incrementando su gasto o disminuyéndolo.






La solución que yo planteo se basa en la lógica que acabo de describir. Necesito obtener una medida que nos resuma la evolución de los resultados de los distintos pases que emitimos a distintas horas de un determinado spot.

Para ellos tomados los últimos 15 días y para cada spot en las distintas horas en las que se ha emitido medimos en número de ventas que ha tenido el producto asociado a ese spot. Y de esto obtengo el slope o pendiente de la recta de regresión que forman los días en el eje de la X y la rentabilidad de ese spot.

La query resultante tiene un aspecto parecido a lo que muestro a continuación:



El principio básico es el mismo que para la query anterior, pero genero un slope para cada programa y para cada hora del día (cogemos emisiones desde las 7 de la mañana hasta las 23 de la noche.

Todos estos valores me los llevo a PowerPivot:

que finalmente lo representamos mediante una tabla dinámica a la que formateamos mediante una escala de color:



Observamos que además del programa, se añaden dos niveles de agregación, Categoría y si se trataba o no de una acción de marketing, con lo que las posibilidades de segmentar basados en criterios de negocio se multiplican en función de las necesidades que surjan.

Conseguimos así, el objetivo de la llamada data visualization, citando a Des Traynor,  exempleado de google y socio cofundador de Intercom:

"The purpose of a data visualisation is to highlight what can’t be otherwise seen. 
[...] In some cases it’s more important that the viewer sees the comparison, not the data."

En una sola hoja de Excel podemos analizar la situación de los resultados de una parrilla de programación.

Saludos.



miércoles, 7 de mayo de 2014

Cómo afrontar un modelado analítico. El customer signature


Una de las primeras tareas que se deben afrontar dentro de un entorno de CRM analítico (aquel que se utiliza para analizar la información de los clientes con el fin de conseguir conocerlos mejor y personalizar nuestra oferta hacia ellos) es crear un repositorio centralizado y un formateado de datos específico, habitualmente llamado customer signature.


El Customer Signature es una estructura de datos que recoge la principal información de un cliente de forma resumida, ubicándola en un único sitio. Es una vista integrada y unificada del cliente. 

Para la mayoría de las aplicaciones de minería de datos se requiere una tabla plana que recoja la información y que habitualmente está a nivel de cliente. 

En cierto modo es una especie de maestro de clientes. Es muy útil para la generación de informes y para emplazar la información resumida y agregada (en un entorno diseñado con una finalidad analítica) de un cliente, tanto socio demográfica como basada en sus hábitos de comportamiento de compra.

En un entorno de CRM – especialmente en retailing- se le suele denominar MICF (marketing customer information file) o incluso mining data mart

Estas estructuras resultan especialmente adecuadas para posteriores análisis y modelados analíticos utilizando algoritmos de estadística avanzada y de minería de datos. 

Habitualmente este tipo de información se suele recuperar de un data mart del CRM de la empresa. Pero es necesario enriquecerlo con atributos derivados y KPI’s informativos que resumen todos los aspectos de la relación de los clientes con la compañía (agregados y medias, ratios,Deltas,…). 

El customer signature se puede realizar con cualquier lenguaje de script (Perl, Python, R,…), con alguna herramienta de ETL (como SSIS, PowerCenter o Kettle), o directamente con T-SQL

Hacerlo con T-SQL tiene la ventaja a la hora de preparar los datos de que hace uso del procesado en paralelo propio de los motores de BBDD. En la mayoría de los casos en que he tenido que realizar un tipo de estructura con un simple script en T-SQL, es más que suficiente para agregar y resumir la información más importante de un cliente. 

En una entrada posterior, entraré más en detalle sobre el tipo de información que suele llevar un customer signature y añadiré algunos ejemplos en T-SQL del tipo de información que debe llevar.