domingo, 15 de mayo de 2011

Treemap con intervalos de confianza



Esta es una idea generada a partir de un trabajo práctico de la materia Visualización de Información de la maestría en Data Mining que estoy cursando. El trabajo práctico pedía implementar un treemap.

Un treemap es una forma de mostrar información jerárquica usando rectángulos que ocupan el total del espacio de forma proporcional al valor de una variable.

La vuelta de tuerca que le di es mostrar la variabilidad de los datos a través de la animación, mostrando la media y los límites superiores e inferiores de un intervalo de confianza de forma alternada, en base a un nivel de confianza que se puede establecer interactivamente.

Los datos del ejemplo

Elegí mostrar 17.486 manos de póquer jugadas entre 29/10/2009 y 12/04/2011 en mesas on line de 6 jugadores, modalidad Texas Hold’em No Limit, apuestas entre u$s0,05/0,10 y u$s0,10/0,25. Las manos quedaron registradas en la base de datos del programa Holdem Manager, que permite realizar análisis y seguimiento del juego.

En la modalidad Texas Hold’em se reparten dos cartas a cada jugador, que luego se combinan con 5 cartas comunitarias. Hay cuatro rondas de apuestas.

En mesas de 6 jugadores las posiciones son las siguientes:

  • SB (Small blind, ciega pequeña): Apuesta de forma obligada la mitad de la apuesta mínima antes de ver sus cartas.

  • BB (Big blind, ciega grande): Apuesta de forma obligada la apuesta mínima antes de ver sus cartas.

  • EA (Early position, posición temprana): El primero luego de las ciegas. Jugar primero es una desventaja.

  • MD (Medium position, posición media): El siguiente a la posición temprana.

  • CO (Cutoff, posición de corte): El anteúltimo.

  • BTN (Button, botón que indica quien reparte): Es el último en actuar, lo que supone una ventaja.


Las cartas se pueden agrupar en las siguientes categorías (tomadas del Holdem Manager):

  • As y carta alta (As y K o As y Q)

  • As y distinto palo

  • As y mismo palo (cuando las dos cartas son del mismo palo se indica con una s (suited), por ejemplo A9s)

  • Conectores distinto palo (los conectores son dos cartas seguidas, por ejemplo 98 o T9 (T indica el diez (ten)))

  • Conectores mismo palo

  • Un hueco y distinto palo (un hueco es cuando falta una carta en el medio, por ejemplo KJ o 42)

  • Un hueco y mismo palo

  • Dos huecos y distinto palo (cuando faltan dos cartas en el medio, por ejemplo KT o 52)

  • Dos huecos y mismo palo

  • Par de ases

  • Par alto (KK, QQ o JJ)

  • Par medio (TT, 99, 88 o 77)

  • Par bajo (66, 55, 44, 33 o 22)

  • Mismo palo (otras)

  • Distinto palo (otras)


El jugador decide si jugar la mano o no principalmente en base a la posición y a las cartas que recibe. Si la posición es una de las ciegas y decide no jugar, pierde la apuesta obligada, por lo que en general estas posiciones tienen una expectativa perdedora.

Entonces resulta interesante analizar con qué categoría de cartas se jugó en cada posición y cuál fue el resultado. Quizás se pueda establecer si se está teniendo una estrategia equivocada con alguna categoría de manos o con algunas manos en particular.


La visualización

Los datos se muestran en rectángulos por categorías de manos, y se puede hacer zoom con clic izquierdo para ver la posición (SB, BB, EA, etc.) dentro de cada categoría, y luego para ver las manos en particular dentro de cada posición. Se puede volver a un nivel superior haciendo clic derecho.

El color de los rectángulos indica si esa agrupación de manos dio una ganancia positiva (verde) o negativa (rojo). El brillo también muestra la magnitud de la ganancia o pérdida. Colores oscuros indican manos en las que el resultado fue cercano a cero. Nótese que habiendo hecho zoom a una agrupación en particular, un recuadro puede ocupar un espacio grande pero tener un color oscuro, lo que indica que si bien dentro de la agrupación ese subconjunto es importante, no lo es a nivel general.

El intervalo de confianza muestra cuáles son las ganancias o pérdidas mínimas y máximas en base a los datos registrados, a un nivel de confianza determinado. Los recuadros se agrandan y achican en base a estos valores, y pueden cambiar de color si pasan de ganancia a pérdida o viceversa. A medida que se requiere un nivel de confianza superior, los intervalos se agrandan y la animación se precipita. Cuando se requiere un nivel de confianza inferior los intervalos se achican y la variabilidad se atenúa.

Los intervalos de confianza se calculan en base a la distribución t:

y ± t(α/2,W−1) * SE

donde y es la media aritmética,
α es el nivel de error (1-nivel de confianza)
W es el tamaño de la muestra
SE es el error estándar


Resultados del análisis

En base a la visualización, puede verse que para establecer intervalos de confianza pequeños se debe bajar mucho el nivel de confianza solicitado. Esto es esperable ya que se trata de un juego con alta incidencia del azar.

De todas maneras se pueden sacar algunas conclusiones interesantes:

  • Primero notemos que los pares de ases son claramente ganadores, y que para cualquier mano jugar en BTN y en CO da mejores resultados que jugar en BB y SB, conocimiento básico de cualquier jugador.

  • Pero me resulta inesperado lo notablemente redituables que se muestran los conectores de distinto palo.

  • Y como alerta se destaca la importante pérdida que he tenido con As y carta alta. Debo jugar de manera más conservadora estas manos.



Las herramientas

Se utilizó el lenguaje Processing (processing.org) y la implementación de treemaps que aparece en el capítulo 7 de Visualizing Data (Ben Fry, 2008).

Para establecer los intervalos de confianza se utilizó la biblioteca statdistlib (sourceforge.net/projects/statdistlib/) de Dr. Peter N. Steinmetz y Gregory Warnes.

Los resultados se verificaron con SPSS Statistics 17.0.