La red Asia

La red Asia es esto:

Es decir, una red bayesiana. Una red bayesiana clásica sobre la que los interesados podrán saber más leyendo lo que Lauritzen y Spiegelhalter dejaron escrito sobre ella en 1988.

Pero la idea básica es la siguiente:

  • Los nodos superiores (visita a Asia, fumador) son variables observables sobre el comportamiento de unos pacientes.
  • Los nodos inferiores (rayos X, disnea) son variables también observables, síntomas de esos pacientes.
  • Los nodos centrales, los más importantes, no son observables: son diversas enfermedades que pudieran estar padeciendo los individuos en cuestión.

La pregunta que ayuda a resolver esta red bayesiana es la siguiente: conocidas (¡o no!) las variables observadas, ¿cuál es la probabilidad de que un paciente dado padezca alguna de las enfermedades (tuberculosis, bronquitis o cáncer de pulmón) correspondientes a los nodos centrales?

Statistics Online Computational Resource

Sigo sin estar fino para hacer entradas interesantes. Así que de nuevo me voy a limitar a ejercer de divulgador de lo ajeno. Y hoy le corresponde el turno al Statistics Online Computational Resource, un portal nacido con el objetivo de fomentar el conocimiento de la estadística y la probabilidad en línea.

Podría abundar sobre los recursos disponibles en SOCR, pero prefiero ahorrar mi tiempo y el de mis lectores invitándolos directamente a visitarlo y comprobarlo por sí mismos.

Curso de mapas en línea para principiantes

Cuando me preguntan por Vizzuality siempre digo lo mismo: juegan en otra liga. Y no, no me han pagado jamás una cena. Solo los he seguido por las redes sociales, me los he tropezado en charlas, etc. Y se nota.

Aparte de servicios, han creado productos. Y uno de los más conocidos (y útiles) es CartoDB para la creación de mapas en línea. Tiene como motor PostGIS y Vizzuality le ha añadido capas adicionales para la representación de mapas e información sobre ellos. Hay que probarlo.

5000 paquetes de R en CRAN

R

CRAN (el Comprehensive R Archive Network) acaba de superar la barrera de los 5000 paquetes. Reproduzco (y traduzco) un mensaje de Henrik Bengtsson en la lista de desarrollo de R que ofrece más información al respecto:

Pasar de los 4000 a los 5000 paquetes tardó 14.5 meses, un paquete nuevo cada 10.5 horas. Detrás de cada paquete hay gente real. En total, 2900 personas mantienen paquetes, de los que 350 son nuevos, y muchos más que contribuyen a ellos. Mucha más gente a la que agradecer que nunca antes (¡y a quienes hay que citar adecuadamente en las publicaciones!).

PC-Axis ha muerto, larga vida a JSON-stat

Igual exagero en el encabezamiento: PC-Axis, a pesar de sus defectos, a pesar de su antigüedad, etc. goza de excesiva buena salud. Debió haber pasado a mejor vida hace tiempo pero, como pasa con esas cosas, se ha enquistado.

Como alternativa a la altura de los tiempos, está JSON-stat, concebido por Xavier Badosa y que nadie como él describe:

Los principales formatos para el intercambio de datos y metadatos estadísticos están basados en XML: normalmente son complicados y prolijos. JSON-stat es un formato simple y ligero basado en JSON y perfecto para la visualización de datos, aplicaciones móviles o iniciativas de datos abiertos que ha sido diseñado para todo tipo de diseminadores.

Importancia de variables en árboles

Los árboles (o árboles de inferencia condicional) valen fundamentalmente para hacerse una idea de cómo y en qué grado opera una variable en un modelo controlando por el efecto del resto. Su valor reside fundamentalmente en la interpretabilidad.

No obstante lo cual, no es infrecuente construir árboles muy grandes. Y el tamaño dificulta censar qué variables y en qué manera aparecen. Por eso me vi obligado recientemente a crear un pequeño prototipo para extraer el peso de las variables de un árbol.

Un récord personal

El otro día, casi por error, cargué este dataframe en R:

dim(raw)
# [1] 115318140         4

Es todo un récord personal logrado en un servidor con 24GB de RAM bastante caro.

El anterior estaba en otro de algo así como 20 millones de filas y unas 6 o siete columnas. Eso sí, logrado en tiramisu, mi ordenador personal de 8GB de RAM de 400 euros (monitor incluido).

Os preguntaréis si pude hacer algo con ese monstruo. La verdad es que sí: pude muestrear un 10% de las filas y trabajar con ellas sin problemas.

Contando hexágonos en paralelo

Dicen que para realizar gráficos de dispersión con muchos datos no es desaconsejable usar celosías hexagonales. Por motivos que no vienen al caso, me interesa poder realizarlas en paralelo.

El código disponible en R (hexBinning de fMultivar o el de geom_hex de ggplot2) es feo, ininteligible y, en particular, no es paralelizable (o mapreducible). No lo es porque cada hilo, por diseño del algoritmo, crea hexágonos excéntricos.

Así que he desarrollado un algoritmo para crear celosías hexagonales paralelizable. Además, creo que es algo más inteligible que los dos mencionados y, me temo, igual de feo. Pero vectorizado, eso sí (es decir, sin un maldito bucle). Es así:

Sexo, deporte y la cantidad de información mutua

Perdón por el titular. No soy inasequible a las modas.

La cuestión del día de hoy es la siguiente: tenemos una variable X inobservable y otra variable Y potencialmente correlacionada con X. ¿Cuánto podemos decir de X de conocida Y?

Supongamos que ambas son binarias. Si conozco Y poseo 1 bit de información. Si solo conozco X (que me da pistas sobre Y) conoceré una fracción de un bit de información (sobre Y).

Recordatorio: V Jornadas de Usuarios de R, diciembre 2013, Zaragoza

Que sirva esta entrada de recordatorio de que la comunidad de usuarios de R va a celebrar sus V Jornadas en Zaragoza este mes de diciembre.

Este año, como aliciente adicional, contamos con no uno sino tres concursos con el patrocinio de Synergic Partners y Telefónica Digital.

Como miembro del comité organizador de las jornadas, reitero mi invitación a quienes siguen estas páginas a que acudan, participen y, en el peor de los casos, ayuden a difundirlas entre quienes consideren interesados en ellas.