Datanalytics

Archivo

Entradas Etiquetadas ‘gráficos’

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

Jueves, 29 de diciembre de 2011 Sin comentarios

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:

¿Gusta más?

Categories: gráficos, r Tags: ,

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

Jueves, 15 de diciembre de 2011 1 comentario

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.

Los gráficos de embudo son una alternativa pensada para evitar este tipo de sesgos. Por ejemplo

relaciona la proporción de casos de cáncer con el tamaño de la población añadiendo, si se me permite el término, curvas de isosignificancia para facilitar la comparación entre entidades desiguales en tamaño.

El que quiera saber más al respecto, tiene un artículo de Spiegelhalter sobre gráficos de embudo. Además, existe la posibilidad de crearlos, cuando menos, con

Estadísticas de incendios forestales en España

Lunes, 12 de diciembre de 2011 Sin comentarios

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.

La información del año en curso tiene carácter provisional y está sujeta a ajustes derivados de la discriminación de los incendios que tienen lugar en terreno forestal de aquellos que sólo han afectado a terrenos agrícolas o urbanos y de la medición y clasificación de las superficies recorridas por el fuego.

Los datos de la estadística definitiva proceden del proceso informático (¡menos mal!) de los Partes de Incendio Forestal, [...] que recoge para cada incendio más de 150 campos. Estos datos proceden de las comunidades autónomas, que los envían al ministerio dentro del primer trimestre del año siguiente (¡inaudita presteza!).

Finalmente, el ministerio emite un informe provisional de dos hojas para el año en curso y un libraco con todo tipo de rudimentos gráficos de Excel —con sobreabundancia, por supuesto, de gráficos de tarta—.

¿No podía, mejor, darnos acceso a los datos crudos para que podamos sacar nuestras propias conclusiones? ¿No somos ya mayorcitos?

¿Escalas logarítimicas? Puede, pero…

Viernes, 25 de noviembre de 2011 2 comentarios

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,

El autor de la entrada indica cómo en la gráfica lineal apenas puede apreciarse la información de los primeros 25 años y algunas circunstancias sobre ciertos periodos significativos en que las gráficas parecen dar impresiones distintas. El autor juzga que la interpretación correcta es la que proporciona la escala logarítmica. Y yo creo que está en lo cierto, sin ser experto en la materia.

Pero pienso, además, ¿es el uso de la escala logarítmica en sí la que soluciona los problemas de interpretación o hay motivos que hacen que eso sea así?

Creo que la medida relevante para mostrar en el gráfico no son tanto los dólares nominales (de PIB y de deuda) como los dólares constantes o, incluso, los dólares constantes por estadounidense. Como tanto la pérdida de valor del dinero como la evolución de la población son (aproximadamente) exponenciales, la escala logarítmica corrige en gran medida el efecto distorsionador de la extrema diacronía de los datos. Pero no deja de ser una aproximación a la solución correcta.

Pero puestos a corregir, pienso yo, bien habría valido la pena aplicar los multiplicadores correspondientes para que las magnitudes resultasen comparablesa lo largo del tiempo .

Categories: gráficos Tags:

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

Jueves, 24 de noviembre de 2011 Sin comentarios

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.

Por eso me limitaré a colgar los vídeos de las charlas del Medialab Prado a las que me referí hace unos días. Primero, la correspondiente a El arte funcional: regreso a las raíces de la visualización de Alberto Cairo:

En segundo lugar, Desgranando visualizaciones; Eurovision y la Crisis, de Alberto Alcaraz:

¡Disfrutad!

Categories: gráficos, números Tags: ,

“Bump charts” para comparar gráficamente proporciones entre periodos

Martes, 8 de noviembre de 2011 Sin comentarios

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.

La menos grave —la que lo es más la pospongo para otra ocasión— es la de los recursos gráficos. Nos regalan esta gráfica

en la que se compara la proporción de empresas dentro de las categorías A, B, C y D en dos periodos distintos. Por algún motivo prefieren representar los datos utilizando coordenadas polares en lugar de, como poco, barras en que las magnitudes que merece la pena comparar fuesen adyacentes.

Pero, para estos fines, incluso las barras suponen un dispendio de graficaca. Una solución más limpia para la representación de este tipo de datos son las llamadas bump charts. Como ejemplo, extraigo del anterior enlace la siguiente:

Sustancialmente, creo yo, más fácil de comparar.

Visualización de la incertidumbre sobre el futuro

Miércoles, 19 de octubre de 2011 Sin comentarios

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

que ilustra el carácter incierto de toda proyección a futuro en lugar de sucumbir a la presión de quienes preferirían una cifra redonda.

Algunos de los consejos que dan los autores son:

  1. Usar múltiples representaciones porque no habrá una única que se ajuste a las necesidades de toda la audiencia, teniendo en cuenta que no toda puede tener una adecuada formación numérica.
  2. Utilizar palabras y números para ilustrar los gráficos.
  3. Usar gráficos que permitan la comparación de la parte con el todo, teniendo cuidado con las escalas y magnificando si procede las probabilidades pequeñas.
  4. Para evitar el sesgo del marco, proporcionar porcentajes o frecuencias que muestren los resultados en las dos alternativas que se contrasten y utilizar denominadores de igual tamaño para las proporciones.
  5. Tratar de evitar recursos que produzcan una respuesta emotiva o afectiva.
  6. Evitar la graficaca y el uso de, por ejemplo, el área para representar magnitudes.

Visualización de la actualización bayesiana (y unas cuantas funciones de R)

Lunes, 12 de septiembre de 2011 Sin comentarios

Me ha llegado noticia de una entrada en un blog, Visualizing Bayesian Updating, en el que se muestra visualmente cómo se actualiza la distribución a posteriori conforme aumenta el número de ensayos en un problema bayesiano simple. Explica también los fundamentos estadísticos del asunto.

Yo me limitaré a ofrecer una nueva versión del código —que no funcionaba copiando y pegando sin más— en el que he introducido ciertas modificaciones. Es el siguiente:

sim.bayes <- function(p=0.5, N=10, y.lim=15)
{
  plot( 1, xlim = c(0,1), ylim = c(0, y.lim),
        xlab = 'p', ylab = 'Posterior Density',
        type = "n" )
  legend('topright',
     legend=c('Prior','Updated Posteriors','Final Posterior'),
     lty=c(2,1,1),col=c('black','black','red'))
 
  exitos <- cumsum( rbinom( N, 1, p ) )
 
  foo <- function( exitos, n.pruebas, col = "black", lwd = 1, lty = 1 ){
    curve( dbeta( x, exitos + 1, n.pruebas - exitos + 1 ),
           add = TRUE, col = col, lwd = lwd, lty = lty )
    print( paste(exitos, "éxitos y ", n.pruebas - exitos, "fracasos") )
  }
 
  foo( 0, 0, lty = 2 )
  mapply( foo, exitos, 1:N )
  foo( exitos[N], N, col='red', lwd = 2 )
}
 
sim.bayes(p = 0.6, N = 20, y.lim = 5)

Quiero pensar que mis lectores encontrarán útil el ejemplo de uso de la función mapply (para recorrer dos vectores simultáneamente), curve (para representar gráficamente funciones).

Treemaps en R

Viernes, 9 de septiembre de 2011 1 comentario

Hay cierto interés por los treemaps en general y existen paquetes como treemap y la función map.market del paquete portfolio que permiten construirlos y obtener gráficos como este

que representa la capitalización bursátil de las empresas del IBEX-35 y el porcentaje que destinan al dividendo. Pero me produce cierto desasosiego utilizar áreas y colores para representar magnitudes: ¿es fácil comparar el tamaño relativo de TEF y ELE? ¿Cuánto mayor es ITX que BBVA? ¿Y el dividendo de MAP comparado con el de ACS?

No estoy seguro de hasta qué punto ese tipo de gráficos resultan superiores a otros tal vez menos impactantes como

o

¿Qué opinarán mis lectores?

Nota: Como siempre, el código:

library( ggplot2 )
library( treemap )
 
dat <- read.table( "http://www.datanalytics.com/uploads/datos_treemap.txt", sep = "\t", header = T )
dat$div[ is.na( dat$div ) ] <- 0
 
tmPlot( dat, index = "valor", vSize = "cap", vColor = "div", sortID = "-cap" )
 
p.text <- ggplot( dat, aes( x = cap, y = div, label = valor ) ) + geom_text()
p.text <- p.text + scale_y_continuous( name = "% dividend")
p.text <- p.text + scale_x_continuous( name = "capitalization")
p.text
 
dat$valor <- as.factor( dat$valor )
dat$valor <- reorder( dat$valor, -dat$cap )
 
p.bar <- ggplot( dat, aes( valor, weight = cap, fill = div ) ) + geom_bar()
p.bar <- p.bar + opts( axis.text.x = theme_text( angle = 90 ) )
p.bar <- p.bar + scale_y_continuous( name = "capitalization")
p.bar
Categories: gráficos, r Tags: , ,

Un paseo por Google Fusion Tables

Viernes, 2 de septiembre de 2011 Sin comentarios

El siguiente vídeo contiene una entrevista con Alon Halevy, que dirige el Data Group en Google Research. Aunque confunda Suecia y Finlandia, merece la pena la presentación que hace de Google Fusion Tables, una plataforma para compartir, combinar, distribuir y representar gráficamente conjuntos de datos.