R

useR! 2010

Mientras en España no sabemos aún qué pasa con las II Jornadas de Usuarios de R (de hecho, ni siquiera se han corregido las faltas de ortografía de la página de internet de las primeras), las useR! 2010 marchan a todo trapo: en Gaithersburg, Maryland, los días del 20 al 23 de julio no va a faltar ni rms.

No va faltar una charla a cuenta de la empresa a la que otras debieran parecerse. Habrá que tener a mano el enlace  para cuando uno de los habituales cretinos encorbatados nos vuelva a espetar eso de pero R es una cosa como tan de… universidad…

Gráficos en R con símbolos arbitrarios

R

Hace no mucho, en un blog hermano, se habló de cómo podían utilizarse símbolos distintos en los gráficos de R. También hablé yo de funcionarios y renta per cápita.

Ahora combino ambas entradas y algo más de mi cosecha para mostrar un gráfico hecho con R utilizando símbolos arbitrarios (las banderas de cada país).

El secreto de cómo lo he hecho (y el código completo, claro) lo revelaré la semana que viene. Entre tanto, ¿a alguno de mis lectores se le ocurre cómo pudo haberse hecho?

Algoritmos genéticos para la caracterización de máximos en random forests

R

En minería de datos se buscan modelos que permitan hacer predicciones acerca del comportamiento de los sujetos del estudio. Pero, típicamente, cuanto más complejas son las técnicas, menos intuición ofrecen acerca del porqué de la predicción, pierden inteligibilidad. Existe una omnipresente tensión entre inteligibilidad (una propiedad altamente deseable, incluso, en ocasiones, por requisito legal) y precisión.

Un modelo puede resumir mejor o peor una colección enorme de observaciones, pero en ocasiones los mismos modelos son demasiado complejos o herméticos como para ofrecer una interpretación plausible de los datos: ¿qué caracteriza a las observaciones para las que mi modelo predice los valores más altos (o bajos)?

Agregador de noticias sobre R en español

R

Me es grato anunciar que está disponible (una versión beta de) un agregador de noticias sobre R en español. Ha sido desarrollado con el objetivo de proporcionar a la comunidad de usuarios un punto de acceso único a cuantas noticias sobre R se publiquen en la blogosfera en español. Es equivalente a su versión en inglés.

También está disponible como RSS.

Contenido agregable

Actualmente, el motor de agregación lista entradas en blogs que:

De números y funcionarios

El otro día apareció una noticia en El País sobre los funcionarios en España y el resto de Europa en el que aparecía este gráfico.

Como me resultaron curiosos los datos relativos a nuestros vecinos, me entretuve en sacarles algo de punta. Así que fui a la Wikipedia y asocié a cada país su renta per cápita PPA (son datos del 2008, creo) y obtuve esto:

Funcionarios en Europa según PPA

Por respeto a la sagacidad de mis lectores (por ser lectores y míos los entiendo bien armados intelectualmente) me abstengo de realizar comentarios.

Regresión por cuantiles en R y SAS

Hace un tiempo, con la aburridora perspectiva de un largo viaje en metro hasta mi casa ensombreciendo mi futuro más inminente, decidí regalarme algún tipo de amena lectura. A tal fin, imprimí un articulillo que, bajo la perspectiva de SAS, me introducía a una técnica que se vino a mí como por azar. O, bajo otro punto de vista, una técnica que, también por azar, había esquivado hasta tal fecha un encontronazo con mi husmeadora curiosidad.

¡Hasta Microsoft!

R

El otro día incurrí de nuevo en la tan habitual como aburridora conversación acerca del papel que pueda jugar R en la empresa; más propiamente, tal vez, en determinadas áreas de determinadas empresas.

Carpetovetónico él, encumbrado a un otero mesetario, lo circunscribía al impermeable mundo académico español. Puede, sí, que la montaña no venga a Mahoma motu proprio; pero no hay que olvidar que a Mahoma no le faltan cumbres a las que encaramarse.

Datatables: tablas con búsqueda binaria en R

R

No hace mucho me enfrenté con un problema en el trabajo. Quería cruzar dos tablas, una de algunos miles de millones de registros y otra de algunos cientos de miles para, simplemente, contar el número de filas finales que aparecían por fecha.

Cada una de las tablas tenía algunos filtros y agregaciones; el cruce final se realizaba sobre las subconsultas resultantes. El gestor de bases de datos que utilizamos, Teradata (sin comentarios), no podía con el cruce: las decisiones que tomaba internamente el presunto optimizador de consultas conducían inexorablemente a un error de espacio.

R, ¿la herramienta de minería de datos más utilizada?

Pues eso es lo que parece indicar esta encuesta en el preciso momento en el que escribo. Cada uno le podrá otorgar la validez que desee, pero algún tipo de repercusión tendrá cuando:

  • Hace unos años, cuando trabajaba para cierto fabricante de software, nos pasaron un correo invitándonos a emitir un voto en la que se realizó en ese año (el portal realiza una encuesta análoga cada año). Además, desde nuestras casas para que no se cancelasen por abusar del mismo rango de IPs.
  • Hoy me ha llegado un correo de otro fabricante de software en cuya lista de distribución participo con idéntico objetivo.

Por lo anterior, por el impacto mediático, por todo, invito a mis lectores a que participen en la encuesta (hasta que acabe el plazo, se vota en la página del enlace, en la parte de abajo).

Para que copien, peguen y disfruten: addenda

R

Ayer dejé publicadas unas cuantas líneas de R y la promesa de contar de qué iba la cosa. Adelantando acontecimientos, he recibido comentarios públicos y privados al respecto que en esta entrada trataré de contestar.

El código era, una vez mínimamente desofuscado (no quería dar demasiadas pistas):

vertice.x <- c(0,1,2)                            # 1
vertice.y <- c(0,1,0)                            # 2
muestra <- sample( 1:3, 100000, replace = T )    # 3
iter <- function( ini, v ){                      # 4
   out <- rep( ini, length(v) )                  # 5
   for( i in 2:length(v) )
      out[i] <- ( out[i-1] + v[i] ) / 2          # 6
   out
}
plot( iter( runif(1), v.x[ muestra ] ),
      iter( runif(1),  v.y[ muestra ] ), pch = "." )

He aquí lo que hace: