Validación cruzada en paralelo

Estoy sin tiempo, así que os suelto el código y me largo a casa a no cenar. Es así: library(parallel) cl <- makeCluster(8) # solo si hay aleatorización # clusterSetRNGStream(cl, 123) clusterEvalQ(cl, { # las librerías necesarias tienen que cargarse # en cada esclavo library(rpart) # en la práctica, hay que cargar los datos # (¿desde fichero?) en cada esclavo my.data <- iris # lo mismo con las funciones necesarias foo <- function(x, dat){ train <- 1:nrow(dat) %% 10 != 1 mod <- rpart(Species ~ ., data = dat[train,]) res <- predict(mod, dat[!train,]) } }) res <- parSapply(cl, 0:9, function(x) foo(x, my.data), simplify = F)

6 de junio de 2014 · Carlos J. Gil Bellosta

Mínimos cuadrados con restricciones

Sí, había restricciones. No me preguntéis por qué, pero los coeficientes tenían que ser positivos y sumar uno. Es decir, buscaba la combinación convexa de cuatro vectores que más se aproximase a y en alguna métrica razonable. Y lo resolví así: # prepare constrained optimization y <- dat.clean$actual x <- t(dat.clean[,2:5]) # target function: L2 first, then other metrics L2 <- function(coef){ sum(abs((y - colSums(x * coef)))^1.5) } # restrictions: coefs > 0, sum(coefs) ~ 1 ui <- rbind(diag(4), c(-1,-1,-1,-1), c(1,1,1,1)) ci <- c(0,0,0,0,-1.000001,0.999999) theta <- rep(0.25, 4) best.coef <- constrOptim(theta, L2, grad = NULL, ui = ui, ci = ci) coefs <- best.coef$par Objetos aparte de x e y, hay: ...

5 de junio de 2014 · Carlos J. Gil Bellosta

Errores de tipo M y de tipo S

A los estadísticos se nos acusa en ocasiones de contestar preguntas tontas en las que nadie está interesado. (Nota: de alguna manera conseguí el artículo al que se refiere el enlace anterior; pero ahora no veo que exista ninguna copia libre por ahí. Si alguien la consigue, por el bien del resto de los lectores, que me avise o que lo haga saber en los comentarios). A lo que iba. Muchos estadísticos tienen el cerebro reprogramado para tratar de no cometer los llamados errores de tipo I y errores de tipo II (y para ello tratan de estimar una cosa de dudosa utilidad, $P(D|H)$, donde $D$ son los datos y $H$ es cierta hipótesis (que, generalmente, a nadie interesa y que es más difícil de plantear correctamente de lo que parecería). ...

4 de junio de 2014 · Carlos J. Gil Bellosta

Nuevo curso: "Big & open data: análisis y programación con R"

Este verano, la Escuela Complutense de Verano ofrece el curso Big & open data: análisis y programación con R. Lo anuncio por aquí por tres motivos: Por su interés intrínseco. Por si alguno de los lectores de estas páginas estuviese interesado. Porque yo participo/participaría en el programa contando cosas de lo más jugosas.

2 de junio de 2014 · Carlos J. Gil Bellosta

Inserción eficiente (?) de datos vía RJDBC

Las bases de datos son instrumentos magníficos con dos defectos fundamentales: es difícil meter datos en ellas y es difícil sacar datos de ellas. Pero guardarlos… los guardan estupendamente. Estos días me ha tocado subir a una base de datos tablas bastante grandes y las herramientas proporcionadas por RJDBC para ello, esencialmente dbWriteTable han fallado. Internet no se pone de acuerdo sobre si es un bug de RJDBC o si la culpa la tiene el driver de la base de datos que estoy obligado a utilizar. Como fuere, me ha tocado descender un escalón de abstracción y jugar directamente con la API del driver para ejecutar prepared statements. ...

27 de mayo de 2014 · Carlos J. Gil Bellosta

¿Dónde estudiar el curso puente hacia la licenciatura en estadística?

Casi siempre que escribo aquí lo hago para contar algo. Creo que por primera vez creo que voy a usar esta plataforma para pedir consejo a mis lectores. El caso es el siguiente. Tengo un conocido —que me ha pedido que no divulgue su nombre— que estudió en su día la diplomatura de estadística. Lleva años trabajando distintas cosas más o menos próximas al asunto de sus estudios e incluso hizo un máster de algo. Pero el bendito plan Bolonia lo ha desdiplomado: me cuenta que todo lo que cursó de COU en adelante es papel mojado. ...

26 de mayo de 2014 · Carlos J. Gil Bellosta

plot.ly: visualización de datos multilenguaje

He recibido hoy un correo sobre plot.ly, que es, según sus autores, una herramienta colaborativa para el análisis y la visualización de datos. Gustará seguramente a los interesados en las APIs: en el fondo, el software reside en la nube. Permite, por ejemplo, integrar gráficos interactivos en IPython. Aunque no he visto ejemplos de cómo integrarlo con knitr. A ver si saco algo de tiempo…

23 de mayo de 2014 · Carlos J. Gil Bellosta

APIdays Mediterránea, 29 y 30 de mayo en Barcelona

Aquellos que tengáis la suerte de estar en Barcelona a finales de mes, la tendréis por partida doble: la edición de APIdays Mediterránea de este año tendrá lugar ahí los días 29 y 30 de mayo. El año pasado participé en la edición de Madrid. Este año no va a poder ser. Pero si tenéis ocasión, os recomendaría muy particularmente las charlas de Alberto González Paje sobre web scraping, Xavier Badosa, el autor de JSON-stat, sobre la diseminación de información estadística oficial y, un poco más alejados del asunto central de este blog, las de ...

22 de mayo de 2014 · Carlos J. Gil Bellosta

La complejidad de la ley

El otro día publiqué código para bajar el BOE completo. Pero no conté qué me llevó a escribirlo. El motivo es que, en un tiempo en que andaba menos ocupado que ahora, quise ver si se podía medir la complejidad de la ley. En realidad, la de los textos legales. ¿Debería haber motivo para que estos sean más impenetrables —de serlo— que un manual de Python? En eso consistía ese proyecto en el que acabé no embarcándome. ...

21 de mayo de 2014 · Carlos J. Gil Bellosta

V Jornadas de la Enseñanza y Aprendizaje de la Estadística y la Investigación Operativa

Los días 16 y 17 de junio tendrán lugar en Madrid las V Jornadas de la Enseñanza y Aprendizaje de la Estadística y la Investigación Operativa. Cosa de la que tal vez no hubiese llegado a tener constancia de no haber sido por la gentileza de la organización, que me ha invitado a impartir un taller introductorio al big data. Serán cuatro horas y media en la mañana del 17 organizadas de la siguiente manera: ...

20 de mayo de 2014 · Carlos J. Gil Bellosta