Gráficos

Patrones hexagonales con R

R

Navegando por internet di con el gráfico

(que puede encontrarse aquí) además de un enlace al código en Matlab usado para generarlo.

Diríase que lo programó un contable. Tratad de seguirlo y veréis por qué lo digo.

Y por entretenerme, traté de generarlo con R. Y creo que de una manera algo más intuitiva:

  1. Creo una función que sabe pintar un hexágono en una posición dada.
  2. Creo una retícula de centros de hexágonos del tamaño adecuado.
  3. Pinto finalmente un hexágono en cada uno de esos centros.

El código es

Representación de datos asociados a grupos

Tropezó precisamente con este problema un compañero mío: ¿cuál es la manera más efectiva de representar 6 o 7 valores numéricos asociados a otros tantos grupos? Es sorprendente que en ninguno de los largos años que uno pasa educándose no le ayuden a resolver ese tipo de problemas (y en cambio sí a saltar un potro o pintar el archifamoso círculo cromático con témperas).

Así que para referencia de todos, dejo aquí un enlace a un artículo que encontré el otro día sobre este asunto del que extraigo y traduzco las observaciones fundamentales a la hora de representar conjuntos de datos tales como los que aparecen representados en el siguiente gráfico (en el que se usa un dotplot):

Gráficos "dinamita", desaconsejados

No sé por qué se llaman así. Ni idea. Vine a enterarme de tal nombre a través de un comentario de Carlos Ortega en la lista de usuarios de R. Parece que se usan habitualmente en diversas áreas y tienen el siguiente aspecto:

Se trata de diagramas de barras a los que se añaden unos apéndices que tratan de medir la variabilidad a la que se entiende que están sujetas aquellas. Una representación alternativa del mismo conjunto de datos ilustra el motivo por el que se desaconseja su uso:

Graficaca en el recibo de la luz (y por imperativo legal, para más inri)

Tras una sobremesa en la que tratamos el ya manido tema de los gráficos de tarta, me hace llegar mi tertuliano Jorge Sobrino una solapilla que le adjunta Iberdrola al recibo de la luz que parece una broma de mal gusto. Es muy parecida a la siguiente:

La gráfica compara el llamado mix de producción eléctrica de la compañía con el nacional en el periodo de referencia. O, al menos, ese parece ser su objetivo. Pero advertirán los más agudos de mis lectores cómo la elección de una gráfica de tartas dificulta la comparación, que es el presunto objetivo de esas manchas de colores con pretensiones cuantitativas. ¿No podían haber preferido, por ejemplo y sin pensar demasiado, barras adyacentes?

Un articulillo de Tukey

Hoy ando demasiado ocupado para escribir. Y como es posible que alguno de mis lectores no lo esté tanto como para no leer, le dejo un artículo de Tukey (abajo del todo en el enlace anterior) para que conozca al personaje, si no ha tenido el gusto previo, disfrute en cualquer caso y, en todos, sepa de dónde vienen los rootograms que implementa el paquete latticeExtra de R.

Virguería con R

R

A la pregunta, tal vez con una formulación mejorable de un usuario de la lista de R, sobre cómo representar una distribución normal bivariada con correlación 0.5 en 3D di ayer esta solución:

library(mvtnorm )

x <- y <- -20:20 / 10
z <- matrix(0, length(x ), length(y ) )

m <- c(0,0)
sigma <- matrix(c(1, 0.5, 0.5, 1 ), 2 )

for(i in 1: length(x ) )
        for(j in 1:length(y ) )
                z[i,j] <- dmvnorm(c(x[i], y[j] ), c(0,0), sigma )

persp(x, y, z )

No obstante, la solución alternativa de Carlos Ortega es toda una virguería que merece ser reproducida en estas páginas:

Gráficos de pares de variables mejorados (con R)

Un gráfico de pares de variables —que no he sabido traducir mejor desde el original inglés pairplot— es algo como lo siguiente:

Es posible ahora construir gráficos de pares más sofisticados e informativos usando el paquete GGally de R. Usando el código (extraído de SAS and R)

library(GGally)

ds <- read.csv("http://www.math.smith.edu/r/data/help.csv")
ds$sex <- as.factor( ifelse(ds$female==1, "female", "male") )
ds$housing <- as.factor( ifelse(ds$homeless==1, "homeless", "housed") )
smallds <- subset(ds, select=c("housing", "sex", "i1", "cesd"))

ggpairs(smallds,
        diag=list(continuous="density", discrete="bar"),
        axisLabels="show")

se obtiene la siguiente versión mejorada:

Gráficos de embudo para controlar la varianza en muestras pequeñas

Publiqué hace un tiempo una entrada en esta bitácora sobre el problema que representa la desigualdad de los tamaños muestrales a la hora de comprender cierto tipo de datos, como por ejemplo, los que trata de representar el gráfico

que muestra la incidencia del cáncer de riñón en distintas zonas de en EE.UU. Como indiqué entonces, los valores extremos se encuentran en zonas menos pobladas: cuanto menor es la población, más probables son las proporciones inhabituales.

Estadísticas de incendios forestales en España

El Ministerio de Medio Ambiente recoge estadísticas sobre incendios forestales. Lo hace, por así decirlo, a la vieja usanza:

La Dirección General de Medio Natural y Política Forestal del Ministerio de Medio Ambiente y Medio Rural y Marino acumula los datos provinciales y obtiene las cifras nacionales del año en curso. Estas cifras se muestran en un cuadro que las compara con las del decenio anterior en el mismo intervalo de fechas.

¿Escalas logarítimicas? Puede, pero...

Encontré el otro día una entrada en la bitácora de Bissantz, una empresa alemana de herramientas de visualización y minería de datos que trataba sobre las ventajas y desventajas del uso de escalas lineales y logarítmicas en cierto tipo de gráficos. Y los ilustraba con un ejemplo que me hizo pensar si no habría algo más.

El gráfico malo, en escala lineal, es

que representa la evolución del PIB y la deuda estadounidense durante las últimas décadas y tiene una serie de carencias con respecto al gráfico de los mismos datos en escala logarítmica,

Vídeos de las charlas de Alberto Cairo y Alberto Alcaraz

Diríase que estos días no escribo de otra cosa. Pero como que toca. Ya cambiaré de cuerda.

En realidad, hoy debería haber escrito sobre unas conferencias de MicroStrategy a las que acudí ayer “para hablar de mi libro”, es decir, dar la tabarra a empresas que usan, más o menos subrepticiamente R en sus productos para que sepan que existe una asociación de usuarios en ciernes y, con un poco de suerte, aflojen algún billete. Porque, aparte de eso, sólo pude constatar que la parte relevante del empresariado español no lee a Tufte.

"Bump charts" para comparar gráficamente proporciones entre periodos

Hojeaba el otro día en informe Reporta 2011, que evalúa la calidad de la información que sobre su actividad publican las empresas cotizadas en las bolsas españolas. Y aunque haya que valorar la intención de los autores, resultan tan manifiestas ciertas carencias analíticas que mal servicio les haría de no afeárselas desde mi bitácora. Que conste que no me refiero a errores de fondo, materia en la que no entro, sino a los mecanismos para tratar y presentar resultados numéricos a la hora de armar el informe.

Visualización de la incertidumbre sobre el futuro

Recomiendo a mis lectores el artículo Visualizing Uncertainty About the Future de D. Spiegelhalter, M. Pearson e I. Short. Trata sobre qué tipo de representaciones gráficas son más adecuadas para transmitir información acerca de la probabilidad de fenómenos futuros a distintos tipos de audiencias, incluidas las más anuméricas.

Abarca desde los incipientes trabajos de Nightingale y Neurath hasta Gapminder y los más modernos desarrollos de la infografía. Aplaude, por ejemplo, la iniciativa del Banco de Inglaterra de publicar información sobre la posible evolución de indicadores económicos futuros de la forma