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. ...

18 de mayo de 2010 · Carlos J. Gil Bellosta

¡Hasta Microsoft!

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. ...

10 de mayo de 2010 · Carlos J. Gil Bellosta

Datatables: tablas con búsqueda binaria en 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. ...

9 de mayo de 2010 · Carlos J. Gil Bellosta

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ó ese año (el portal realiza una encuesta análoga con periodicidad anual). 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).

5 de mayo de 2010 · Carlos J. Gil Bellosta

Para que copien, peguen y disfruten: addenda

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: Asigna a una variable las coordenadas x de un triángulo. Asigna a otra variable las coordenadas y del triángulo. Selecciona una muestra aleatoria de tamaño 100k (con reemplazo, obviamente) de los vértices de dicho triángulo. Crea una función, iter, que calcula iterativamente una sucesión de puntos. La función genera una sucesión de puntos comenzando por uno al azar. Por eficiencia, es mejor asignar espacio previamente. En este caso es un vector de longitud igual al de la muestra de puntos. El bucle calcula de hecho la sucesión de puntos. Cada uno de ellos es el punto medio entre el anterior y el vértice (elegido al azar, recordemos) correspondiente. Por lo tanto, la sucesión de puntos trata de acercarse a los vértices del triángulo en una especie de caminata aleatoria sin en realidad llegar a poder alcanzar jamás ninguno de ellos. (Supongo que este algoritmo le habría quitado el sueño malamente al pobre Zenón). Finalmente, se representan los puntos gráficamente en el plano. El resultado, como todo atento lector de las páginas 42 a 45 de este libro debería haber reconocido, es el triángulo de Sierpinsky (como dice el autor del libro, el resultado es dicho triángulo querámoslo o no). ...

21 de abril de 2010 · Carlos J. Gil Bellosta

Para que copien, peguen y disfruten

El otro día hablé de una señora que había hecho algunos comentarios poco avisados sobre R. A las alegaciones de que el código de R que publicó en su página no es siquiera código de R respondió diciendo que lo había copiado “de internet” (¡cuánto de pernicioso hay en esas páginas por donde uno navega sin temor de Dios!). Para incrementar la probabilidad de que, cuando esto vuelva a ocurrir, el código pegado de internet sea más bonito que el arriba mencionado, dejo acá este (e invito a mis lectores a ejecutarlo): ...

21 de abril de 2010 · Carlos J. Gil Bellosta

Los "mejores" paquetes de R (I): la red social de los participantes en r-help

Hace no mucho leí un articulillo de SAS sobre el impacto de ciertas marcas en determinadas redes sociales. Como este tema, así como sus posibles aplicaciones, siempre me ha intrigado, llevado de la curiosidad y del aburrimiento, decidí realizar un estudio análogo. El artículo de SAS utiliza como materia prima resúmenes de publicaciones científicas que tratan de determinados medicamentos. A los autores les interesa conocer de qué marca de medicamentos escribe cada autor ponderando a éstos últimos en función de su impacto. El impacto lo miden a través de su peso en la red de colaboraciones científicas: tiene alto impacto un autor que ha escrito muchos artículos en colaboración con otros autores que también han escrito muchos artículos. ...

18 de abril de 2010 · Carlos J. Gil Bellosta

La opinión sobre R de una pobre señora

Me llegan noticias de una pobre señora que, se conoce, tiene un blog en el que habla de cosas que, da la impresión, le trascienden. Dice lo siguiente: Contrary to what some people seem to think, R is definitely not the next big thing, either. I am always surprised when people ask me why I think that, because to my mind it is obvious. Vamos, que no cree en R y que, además, esa idea suya le parece la más obvia del mundo. Para apoyar su argumento, muestra el siguiente ejemplo de código en R, supuestamente muy feo (más, de hecho, de lo que se imagina): ...

14 de abril de 2010 · Carlos J. Gil Bellosta

¿Puedo cambiar mi código retroactivamente?

La verdad, me gustaría, me gustaría volver atrás y modificar algunas docenas de líneas de código en R que malescribí como un diletante por no estar al tanto de una función de R cuya verdadera utilidad descubrí recientemente (gracias le sean dadas, de nuevo, a Jorge Iván Vélez). La verdad, no tengo excusa. Incluso se habló de ella en nuestro blog hermano. Y es que nunca me había percatado de la potencia de la función mapply. He aquí el problema: se tienen dos listas de la misma longitud y se quieren transformar los objetos de la primera en función de datos extraídos de los objetos correspondientes de la segunda. En los tiempos oscuros que duraron hasta anteayer, me veía abocado a utilizar un bucle que llevase la contabilidad del índice para poder recorrer ambas listas simultáneamente: ...

29 de marzo de 2010 · Carlos J. Gil Bellosta

Proyectos de R en el Google Summer of Code 2010

El Google Summer of Code es una iniciativa de Google por la cual la empresa otorga becas a estudiantes para que estos colaboren en determinados proyectos de código abierto. Y las becas no son moco de pavo: cada estudiante aceptado recibiría 5000 dólares de Google. En estas colaboraciones, los estudiantes participan bajo la tutela de un mentor. Se buscan, por tanto, mentores con proyectos y estudiantes que quieran participar en alguno de ellos. ...

28 de marzo de 2010 · Carlos J. Gil Bellosta