En este blog se exploran las posibilidades de analizar datos y crear modelos basados en la Teoría de la Información usando Powerhouse

martes, 17 de enero de 2012

¿Por qué segmentar en forma automática si puedo hacerlo manualmente?

Es una práctica bastante común segmentar una cartera de clientes utilizando métodos manuales. Pero una segmentación automática tiene varias ventajas y en este artículo trataré de comparar ambos métodos utilizando un ejemplo con datos reales.

El objetivo de una segmentación es encontrar grupos de clientes que se parezcan entre sí y que como grupo se distingan de otros segmentos.  La comparación entre clientes se realiza en base a las variables elegidas para identificarlos. Por ejemplo, una empresa que vende electrodomésticos procesó las ventas de 5 años de una muestra de 10.000 clientes y eligió las siguientes variables para crear los segmentos:

  1. Visitas anuales
  2. Productos comprados anualmente
  3. Venta anual
  4. Margen porcentual anual

Antes de realizar la segmentación se calcularon los promedios de cada variable en el total de la muestra
El primer intento de segmentación lo realizó utilizando el Margen, ya que uno de los objetivos del proyecto fue encontrar segmentos con distintos márgenes. Se utilizó el siguiente criterio (arbitrario):
Si el margen <= 5%, segmento 1.
Si es >5% y <= 15%, segmento 2,
Si es >15%, segmento 3
La siguiente tabla muestra los promedios de cada variable en su segmento
Los segmentos discriminan muy bien el margen, lo cual es lógico debido al método utilizado para agrupar los clientes. Pero el resto de las variables no muestra demasiadas diferencias. Esto es razonable. De hecho, dos segmentos distintos podrían tener algunas de sus variables con promedios similares. El problema de esta segmentación es que la única variable que distingue los segmentos es el margen, por lo que la utilidad de los mismos es casi nula.
El segundo intento se realizó utilizando las visitas y los productos comprados.
Combinando 3 intervalos de visitas y 2 intervalos de productos comprados, se obtuvieron 4 segmentos (combinando 3 intervalos con otros 2, deberíamos obtener 6 pares, pero como existe una correlación muy alta entre la cantidad de visitas y los productos comprados, se obtienen solamente 3 pares). La siguiente tabla muestra los promedios

Las visitas y los productos ahora están bien discriminados entre los segmentos. La venta, debido a que es función de las visitas y productos comprados, también está discriminada. Pero el margen es casi el mismo en todos los segmentos!

Una tercera alternativa sería incluir el margen en los criterios de separación, pero en este método manual existen varios criterios arbitrarios:
  1. Las variables elegidas para discriminar los segmentos
  2. Los intervalos de las variables
  3. La cantidad de segmentos a crear

¿Quién nos asegura que los criterios de separación coinciden con una segmentación natural? O sea, cómo sabemos por ejemplo, que un grupo de clientes similares visitan 5 y no 8 veces al año el local. En una segmentación manual, este valor (5, 8 o cualquier otro valor) es uno de los criterios de separación que debe elegirse.
¿Cómo sabemos que una variable, por ejemplo la edad, realmente discrimina el comportamiento de los clientes?

Una segmentación realizada con un algoritmo que sea capaz de resolver estas cuestiones utilizando todas las variables a la vez, podrá encontrar los segmentos naturales que muy probablemente resuelvan el problema de negocio original.

La siguiente tabla de promedios muestra los segmentos encontrados por Powerhouse



El segmento 4 tiene el mayor margen, pero como la venta es casi la cuarta parte de la venta del segmento 3, quizás este último sea el segmento más interesante.
El segmento 1 merece un análisis más profundo para averiguar las razones de por qué, siendo muy similar al 2, el margen es negativo.

En este ejemplo utilicé un modelo con pocas variables para mostrar las ventajas de utilizar métodos automáticos de segmentación. Si la cantidad de variables es mayor, el método manual es más complicado y con más razón se justifica utilizar métodos automáticos de búsqueda de segmentos naturales.

domingo, 2 de octubre de 2011

La información vs. el número de bins

La semana pasada, un alumno de la maestría de Data Mining de la Universidad de Buenos Aires, me preguntó qué tan estable eran las mediciones de información con respecto al número de bins elegidos. Esta es una respuesta detallada y con un ejemplo realizado en Powerhouse.

La cantidad de información absoluta, medida por su entropía en bits, depende del número de bins (o de la cantidad de categorías en variables categóricas). Por lo tanto este análisis utiliza las medidas de información expresadas en forma relativa.
Tanto el ruido como la información transmitida se calculan como un porcentaje de la información necesaria para reducir completamente la incertidumbre de la variable a predecir. Por lo tanto el ruido y la información transmitida vienen dadas por:

Ruido% = H(Y|X) / H(Y)
 Información transmitida% = T(X:Y)/H(Y)

La variable a predecir Y tiene una entropía dada por su distribución y representa su incertidumbre. Cuando un modelo codifica la información proveniente de un conjunto de variables X y la transmite, la incertidumbre de Y se reduce. Cuanto mayor sea esta reducción, más preciso será el modelo.
Lo que resta de incertidumbre luego de utilizar la información transmitida por el modelo, lleva el nombre de ruido.

La siguiente tabla muestra diferentes medidas de información sobre una misma tabla de datos y utilizando las mismas variables predictoras. Lo que cambia es el número de bins de X y de Y, que varía entre 5 y 200.


Se puede notar que la información transmitida relativa (dada por Tx%) es muy estable en todo el rango de bins. Lo mismo sucede con el Ruido, lo que no debería sorprender ya que es función de la transmisión (H(Y)-T(X:Y)=Ruido).
Otro punto interesante es el R2 del modelo, ya que se mantiene muy estable en todos los rangos, tanto sobre la muestra de desarrollo (TR) como la de prueba (TS)

Los datos usados en este ejemplo fueron obtenidos de
 http://astrostatistics.psu.edu/datasets/SDSS_quasar.html

Se utilizó el 70% de los datos para la muestra de desarrollo y el 30% restante para la de pruebas. La variable z (redshift) fue elegida para predecir. El método de binning fue el de Menor Pérdida de Información (LIL).
Las variables seleccionadas para realizar el modelo fueron r_mag, z_mag y M_i.

miércoles, 21 de septiembre de 2011

La información como marco de referencia (Parte IV)

En el artículo anterior analizamos un modelo de scoring desde una perspectiva infométrica. El modelo canaliza y codifica la información de entrada en una forma que define los mensajes o estados de la salida. Parte de la información de entrada se pierde por equivocación y parte se transmite como ruido. Pero ¿cómo seleccionamos las variables que transmitan la mayor información con el menor ruido posible?

Esta es otra de las ventajas que nos ofrece la capacidad de medir información. Antes de analizar un algoritmo para seleccionar variables me gustaría hacer un comentario respecto de la información. Cuando decimos que una variable transmite información acerca de otra variable, haciendo que se reduzca su incertidumbre, estamos asumiendo implícitamente que existe una relación entre ambas variables. Lo que no estamos asumiendo, y esto es muy importante, es el tipo de relación.

Dicho de otro modo, la relación entre variables puede ser lineal o no. La información mutua entre variables no asume un tipo particular de relación, por lo tanto puede aplicarse a datos cuyas variables se relacionen en forma no lineal. Para más detalles sobre este tema se puede consultar el siguiente artículo: http://powerhousedm.blogspot.com/2008/10/correlacin-e-informacin-mutua.html

Ahora estamos en condiciones de describir el algoritmo de selección de variables. Supongamos que contamos con unas 100 variables que podrían servir para predecir otra variable:

Paso 1: recorremos las 100 variables en busca de aquella que transmita la mayor información posible acerca de la variable a predecir. Esta será la primera variable seleccionada.

Paso 2: recorremos las variables restantes y calculamos la información transmitida por las variables seleccionadas anteriormente más la que estamos evaluando.  El grupo de variables con mayor cantidad de información define la variable a seleccionar.

Paso 3: continuamos con el paso 2 hasta que la información ganada por la nueva variable seleccionada no justifique la pérdida de representatividad.

Este último paso merece una mayor explicación. A medida que se agregan variables, la  información transmitida aumenta pero se necesita una mayor cantidad de casos para cubrir todas las posibilidades. Cuando la cantidad de casos es fija, agregar variables simplemente reduce las posibilidades de que los datos representen la población. Es esta la razón por la cual los modelos que resultan confiables, suelen estar basados en unas pocas variables. Para más detalles se puede consultar el artículo http://powerhousedm.blogspot.com/2007/11/cuntos-datos-necesito-para-obtener-un.html

El algoritmo descripto aquí trabaja muy bien en la práctica ya que tiene las siguientes características:

1.        Aumenta las probabilidades de seleccionar una variable que interactúe con una o más variables seleccionadas previamente. Esto se debe a que dos o más variables que interactúan  agregan más información que tomadas por separado.

2.       Minimiza la posibilidad de seleccionar variables colineales. Esto se debe a que si dos variables están fuertemente relacionadas, una vez que se seleccionó una de ellas, la otra aportará muy poca información nueva.

3.       La cantidad de variables seleccionadas depende exclusivamente de los datos (cantidad y calidad) y se calcula automáticamente en cada ciclo.

Aquellos que deseen probar el algoritmo pueden descargar Powerhouse y seguir paso a paso los tutoriales: http://www.dataxplore.com.ar/descargas.php


viernes, 16 de septiembre de 2011

La información como marco de referencia (Parte III)

Las variables independientes contienen información. En el ejemplo que estamos analizando llevan en conjunto, 12.16 bits de información (no es necesario conocer cómo calcular este valor pero para aquellos que les interese pueden consultar http://powerhousedm.blogspot.com/2011/09/la-informacion-como-marco-de-referencia.html)
Pero no toda esta información es útil para predecir la variable deseada. De hecho vimos en el artículo anterior que la información útil, la que se transmite, es 0.24 bits.  Entonces, ¿qué sucede con los 11.92 bits restantes? (12.16-0.24=11.92) ¿Dónde fue a parar esta información?
La respuesta tiene que ver con los diferentes patrones de comportamiento que se asocian a un mismo estado o mensaje de salida. Dicho de otro modo, hay varias maneras de decir lo mismo. Esto se denomina técnicamente Equivocación.
Un esquema general de lo visto hasta el momento aclarará este tema
El modelo recibe a través de las variables independientes,  12.16 bits de información.  Parte de esta información se considera Equivocación y parte se Transmite. Ya que se transmiten 0.24 bits, el resto 11.92 bits  se considera Equivocación y nos indica que existen muchos patrones distintos que se asocian con un mismo mensaje de salida.
Siempre se cumple la siguiente ecuación:

Información de Entrada = Información Transmitida + Equivocación

En el ejemplo

12.16 bits = 0.24 bits + 11.92 bits

La información que se necesitaría para predecir sin errores si un cliente se fugará o no, es de 0.39 bits (en los ejemplos anteriores tomamos 0.40). Al canal de transmisión ingresan 0.24 bits provenientes de la entrada más 0.15 bits de Ruido. 

Siempre se cumple la siguiente ecuación:
Información Requerida = Información Transmitida + Ruido
En el ejemplo

0.39 bits = 0.24 bits + 0.15 bits

Para lograr un buen modelo es necesario que las variables seleccionadas contengan la mayor información útil y el menor ruido posible. En el ejemplo, las variables independientes, también llamadas variables de entrada, transmiten 0.24 bits o 61% de la información necesaria para predecir la variable de salida (¿se fuga o no?).  La incertidumbre restante, 0.15 bits o 39% es lo que denominamos Ruido.

En el siguiente artículo veremos que este nuevo enfoque nos permite diseñar un método para seleccionar las variables con mayor información y menor ruido posible.

jueves, 15 de septiembre de 2011

La información como marco de referencia (Parte II)

En el artículo anterior (http://powerhousedm.blogspot.com/2011/09/la-informacion-como-marco-de-referencia.html) vimos que las variables independientes de un modelo transmiten información que ayuda a reducir la incertidumbre de la variable a predecir.

En el ejemplo anterior, la incertidumbre de lo que hará el cliente es de 0.40 bits pero conociendo su comportamiento (a través de las variables independientes) la reducimos a 0.16 bits. O sea, gracias al modelo tenemos más certeza de lo que hará el cliente. Pero no podemos estar 100% seguros. Todavía hay 0.16 bits de incertidumbre.
¿Por qué no es posible reducir a 0 bits? El culpable es el ruido. Supongamos que identificamos un patrón de comportamiento que se repite 100 veces en los datos. Este patrón no es otra cosa que una determinada combinación de valores de las variables independientes.

Si este patrón siempre estuviera asociado al mismo resultado final (se Fuga SI o No), entonces el ruido sería 0. Pero generalmente esto no sucede. De las veces que aparece el mismo patrón, algunas veces está asociado con Fuga=Si y otras con Fuga=No. Cuanto más similar sea esta distribución con la distribución de la variable a predecir, más ruido contendrán los datos, al menos en este patrón.
El modelo no podrá hacer mucho si los datos contienen demasiado ruido.  Es más, estos 0.16 bits establecen un límite teórico a lo que cualquier herramienta de modelado podrá obtener de estos datos. En este ejemplo los datos contienen un 40% de ruido (0.16/0.40).

En el siguiente artículo analizaremos la información desde el punto de vista de las variables independientes

miércoles, 14 de septiembre de 2011

La información como marco de referencia (Parte I)

La compañía ACME tiene un serio problema: cada mes pierde alrededor de un 8% de sus clientes. Si bien es cierto que también adquiere nuevos clientes, el resultado neto es una pérdida del 3%. A este paso en 9 meses habrá perdido un 25% de sus clientes.

Para mejorar la situación, decide identificar los clientes con altas probabilidades de fuga y tratar de retenerlos.
Veamos cómo se ve esta situación desde el punto de vista de la información


La compañía tiene sus Clientes que se comportan de determinada manera. Este patrón de comportamiento es representado como Mensajes que serán codificados por el Modelo para transmitir uno de dos mensajes: el cliente se va o se queda.
Los mensajes de entrada están formados por las variables que capturan el comportamiento de los clientes. El modelo fue armado para identificar patrones y asociarlos con una de dos respuestas posibles.

Antes de armar el modelo, existe una incertidumbre acerca de si los clientes permanecerán o se irán a la competencia, que puede expresarse en bits. En este ejemplo la incertidumbre es aproximadamente 0.40 bits (los detalles de cómo se mide esta información no son necesarios para el propósito de este artículo, pero pueden consultarse en http://powerhousedm.blogspot.com/2010/05/como-medir-la-informacion-que-lleva-un.html)
Las variables que capturan su comportamiento envían información a través del modelo, con el propósito de reducir la incertidumbre. En este ejemplo, las variables aportan 0.24 bits de información. Entonces gracias al modelo la incertidumbre sobre lo que hará el cliente (permanece o se va), se reduce de 0.40 bits a 0.16 bits (0.40 – 0.24). Si en vez de valores absolutos queremos expresar la reducción de incertidumbre en valores relativos, diríamos que el conjunto de variables con los que se desarrolló el modelo aportan el 60% (0.24 bits) de la información necesaria para predecir si el cliente se fugará o no con un 100% de exactitud (0.40 bits).

También podríamos decir que la incertidumbre de la variable a predecir se reduce a un 40%, una vez que se conocen las variables independientes.
En el siguiente artículo veremos cómo se interpretan estos 0.16 bits de incertidumbre restante.

miércoles, 7 de septiembre de 2011

Powerhouse para descargar

A partir de esta semana se encuentra una licencia de demostración de Powerhouse para bajar libremente en http://www.dataxplore.com.ar/descargas.php

Una vez completados los datos, se recibirá un mail con un link para acceder al instalador. También están disponibles 3 tutoriales y los datos para seguir paso a paso el desarrollo de tres modelos, predicción, scoring y clustering.