¿Cuánta gente usará R (vs Python vs otros) dentro de 1000 años?

Pues no lo sé. Seguramente, nadie. Pero como he visto esto (que no es otra forma que una representación palabrera de una matriz de transiciones de Markov) y el debate R vs Python para el análisis de datos ha resonado estos últimos días con cierta fuerza, voy a ensayar un pequeño divertimento matemático que me traslada a una clase práctica de Álgebra I en mis años de estudiante. Es el siguiente: # creo la matriz de transición cols <- c("r", "python", "otros") mt <- c(227, 108, 33, 31, 140, 7, 58, 27, 68 + 73) mt <- matrix(mt, nrow = 3, byrow = T) colnames(mt) <- rownames(mt) <- cols mt <- prop.table(mt, 1) # la diagonalizo tmp <- eigen(mt) # efectivamente, la diagonalización "funciona" tmp$vectors %*% diag(tmp$values) %*% solve(tmp$vectors) # y dejo discurrir 1000 años tmp$vectors %*% diag(tmp$values^10000) %*% solve(tmp$vectors) Como resultado, podemos estimar que el en futuro, el 33% de los data scientists estarán usando R contra el 53% que usará Python y el 13% que se decantará por otras herramientas. O, casi seguro, no.

18 de diciembre de 2013 · Carlos J. Gil Bellosta

¿Te queda lejos el aeropuerto?

He construido el mapa porque, a pesar de sus innegables deméritos gráficos, como la profusión de topos rojigualdas, pudiera resultar de interés. No tanto por lo que representa, la distancia de los puntos de la península Ibérica a una lista obsoleta de aeropuertos (en la que no consta, p.e., el de Logroño), sino por el procedimiento que tal vez alguien pueda en su día reaprovechar para un mejor fin. ...

10 de diciembre de 2013 · Carlos J. Gil Bellosta

Gradientes e ilusiones ópticas

Hoy, mirando y tratando de comparar Uruguay y España no he podido dejar de acordarme de

9 de diciembre de 2013 · Carlos J. Gil Bellosta

¿Cuántos peces hay en un lago?

Quien haya estudiado estadística o probabilidad en algún tipo de institución que ofrece educación reglada se habrá topado con el problema de estimar el número de peces de un lago. Esencialmente, lo que puede hacerse (dado que es imposible realizar un censo completo) es lo siguiente: Pescar cierto número de peces, $p_1$, marcarlos y devolverlos al lago. Pescar cierto número de peces, $p_2$, y contar cuántos de ellos fueron marcados el día anterior, $n$. Estimar el número de peces como $p_1 p_2 / n$ (dado que la proporción de peces marcados en el lago, $p_1 / x$ debiera ser similar a la de pescados el segundo día, $n / p_2$). Con R puede hacerse una estimación (incluso del error), así: ...

5 de diciembre de 2013 · Carlos J. Gil Bellosta

Ayuda de R en español

He ejecutado hoy tres ficheros secuencialmente: #!/bin/bash wget -nd -r -l1 --accept gz https://stat.ethz.ch/pipermail/r-help-es/ zcat *.gz > all_mails rm *.gz en sh, #!/usr/bin/python import mailbox from email.utils import parsedate from time import mktime for message in mailbox.mbox('all_mails'): fecha = parsedate(message["date"]) print str(fecha[0]) + "-" + str(fecha[1]) en Python y finalmente #!/usr/bin/Rscript library(zoo) meses <- read.table("horas.txt")[,1] meses <- paste(meses, "-1", sep = "") meses <- table(meses) meses <- zoo(meses, order.by = strptime(names(meses), format = "%Y-%m-%d")) png("uso_r_help_es.png") plot(meses) dev.off() en R para construir y constatar que la lista de correo de ayuda de R en español está en crisis. (Nota para quienes entienden mejor las explicaciones textuales que el siempre unívoco código: los programas anteriores descargan los correos enviados a r-help-es desde sus orígenes, extraen sus fechas de envío y representan gráficamente su número por mes). ...

4 de diciembre de 2013 · Carlos J. Gil Bellosta

Requisitos para mi taller de Hadoop + R en las V Jornadas de Usuarios de R

El jueves 12 de diciembre impartiré un taller titulado Big data analytics: R + Hadoop en las V Jornadas de Usuarios de R. Va a ser un taller práctico y eso exige de los asistentes que quieran aprovecharlo disponer de una plataforma (¡no trivial!) sobre la que seguirlo y poder realizar los ejercicios. Además de poder seguir ahondando en el asunto después y por su cuenta. Los requisitos son los siguientes: Software: ...

2 de diciembre de 2013 · Carlos J. Gil Bellosta

Óscar Perpiñán sobre gráficos base vs. lattice vs ggplot2

Óscar Perpiñán es alguien a quien tenéis que conocer necesariamente si os interesan, entre otras cosas, temas como la visualización de datos espaciotemporales. Y tiene un blog muy recomendable. Recientemente me ha dado permiso para reproducir aquí una respuesta suya en un hilo planteado en r-help-es sobre los distintos mecanismos existentes en R para generar gráficos. Lo hago a continuación con mínimos retoques tipográficos: La ventaja esencial de los gráficos grid (lattice y ggplot2) frente a los gráficos base es su mayor flexibilidad para añadir o modificar el contenido. Un gráfico grid es un objeto más en R y, como tal, puede ser manipulado con los métodos que cada paquete define. Existen dos librerías fundamentales en el mundo grid, lattice y ggplot2. ...

29 de noviembre de 2013 · Carlos J. Gil Bellosta

¿Dónde van los ejes?

Buscando una versión pirata del libro Show Me the Numbers de Stephen Few di con un curso homónimo del mismo del que rescato y aprovecho para divulgar la respuesta a una pregunta que no me había planteado antes: ¿dónde van los ejes? Y la respuesta, sin palabras:

28 de noviembre de 2013 · Carlos J. Gil Bellosta

Cuatro principios para tomar mejores decisiones

Proceden de un número de McKinsey Quarterly de este año y se organizan alrededor del acrónimo WARP: W (widen your options, incrementa tus opciones): considera al menos dos opciones robustas para cada toma de decisiones. R (reality-test your assumptions, somete tus hipótesis a un baño de realidad): trata de realizar pequeñas pruebas de verificación. A (attain some distance, distánciate): trata de revisar el asunto como si te fuese ajeno, desde fuera. P (prepare to be wrong, prepárate para el fracaso): plantea un plan de salida claro desde el principio: si no logro esto y esto en tal plazo…

27 de noviembre de 2013 · Carlos J. Gil Bellosta

Un pequeño problema de probabilidad

El tuit de John Allen Paulos me indujo a escribir number.numbers <- function(n){ sum(cumsum(sample(0:n)) < n) + 1 } res <- replicate(10000, number.numbers(1000)) código con el que, efectivamente, puede comprobarse que la media es, efectivamente, e. Ahora bien, ¿alguien se atreve a explicar por qué? (No leas esta pista: (s??)?s??).

22 de noviembre de 2013 · Carlos J. Gil Bellosta