Nueve reinas con SAS (y R también)

No sé si habéis visto la película argentina Nueve reinas. Trata de unos timadores que engatusan a incautos para sacarles la platica. Pero no voy a hablar de esas nueve reinas sino de las ocho de Solve Eight Queens Puzzle With SAS Macro. De su introducción extraigo y traduzco: The Little SAS Book contiene un excelente ejemplo para ilustrar las diferencias entre SAS como lenguaje de programación y C++ mostrando lo complicado que puede resultar procesar conjuntos de datos con un lenguaje de propósito general. Son 28 líneas de código C++ y 5 de SAS para leer un fichero delimitado e imprimirlo por pantalla. Es un ejemplo perfecto de cómo SAS es un lenguaje de cuarta generación con un alto nivel de abstracción y expresividad. ...

23 de enero de 2012 · Carlos J. Gil Bellosta

Disponibles los vídeos sobre periodismo de datos en MediaLab Prado

Informaba el otro día en estas páginas sobre la formación en captura de datos que hubo, dentro del ciclo charlas sobre de periodismo de datos, en MediaLab Prado. Al final, una de esas imprevisibles circunstancias de última hora me impidió asistir. Pero, menos mal, ya están disponibles los vídeos para echarles un vistazo este fin de semana.

20 de enero de 2012 · Carlos J. Gil Bellosta

Cosa prodigiosa, ahora con palabras (II)

Tal como prometí hace ahora una semana, voy a añadir las palabras que faltaban en aquella entrada. Pero primero, imaginad un bar en el que se venden cafés y cervezas. El coste de servir un café es de 1.10 euros pero se vende por 1. El coste de servir una cerveza es 1.30 euros pero se vende por 1.10. Entran los clientes y piden o café o cerveza. ¡Y resulta que a fin de mes el bar hace dinero! ...

19 de enero de 2012 · Carlos J. Gil Bellosta

R, en el 'top 20' de Tiobe

Más evidencias sobre la emergencia de R: ha entrado en el top 20 de lenguajes de programación elaborado por Tiobe por primera vez en enero de 2012: La lista, según avisa el mismo Tiobe, no es científica: se basa en un índice de popularidad elaborado a partir de información de ofertas laborales, buscadores de internet, etc. Nótese también que es el primero de los lenguajes de programación que no es de propósito general sino de dominio (la estadística). Nótese también su posición relativa con respecto a Matlab (23) y SAS (32). ...

18 de enero de 2012 · Carlos J. Gil Bellosta

Muestreando la distribución uniforme sobre la esfera unidad en n dimensiones

Debo esta entrada a la diligencia de Juanjo Gibaja, que se tomó la molestia de ubicar los teoremas relevantes en el libro Simulation and the Monte Carlo Method de Rubinstein y Kroese. Esencialmente, como la distribución normal multivariante (con matriz de covarianzas I) es simétrica, entonces, dadas $X_1,\dots, X_m \sim N( 0, I_n )$ independientes, los m puntos del espacion n-dimensional $X_i/| X_i |$ siguen una distribución uniforme sobre su esfera (su superficie, vale la pena reiterar) unidad. ...

17 de enero de 2012 · Carlos J. Gil Bellosta

Eles, "casts" y el rizo del rizo de la programación eficiente (con R)

Ante las preguntas de alguno de mis lectores, voy a proporcionar una explicación acerca de la misteriosa L. Bueno, voy más bien a dejar que la deduzcan ellos mismos a partir de la siguiente serie de bloques de código: a <- rep( 0, 10 ) typeof( a ) object.size( a ) b <- rep( 0L, 10 ) typeof( b ) object.size( b ) ############## a <- 1:10 typeof( a ) object.size( a ) a[1] <- 10 typeof( a ) object.size( a ) a <- 1:10 a[1] <- 10L typeof( a ) object.size( a ) ############## a <- 1:10 tracemem( a ) a[1] <- 2 a <- 1:10 tracemem( a ) a[1] <- 2L ############## system.time( replicate( 1e5, { a <- (1:100); a[1] <- 12 } ) ) system.time( replicate( 1e5, { a <- (1:100); a[1] <- 12L } ) ) Lectores míos, no seáis perezosos y haced, cuando menos, ?tracemem en vuestra consola. Una vez leída la página de ayuda, ¿se os ocurre algún truco para ahorrar mucha memoria cuando trabajáis con objetos (p.e., matrices) grandes de enteros?

16 de enero de 2012 · Carlos J. Gil Bellosta

Localidad, globalidad y maldición de la dimensionalidad

Escribo hoy al hilo de una pregunta de la lista de correo de quienes estamos leyendo The elements of statistical learning. Hace referencia a la discusión del capítulo 2 del libro anterior en el que trata: El compromiso (trade off) entre el sesgo y la varianza de los modelos predictivos. Cómo los modelos locales (como los k-vecinos) tienden a tener poco sesgo y mucha varianza. Cómo los modelos globales (como los de regresión) tienden a tener poca varianza y mucho sesgo. Cómo la maldición de la dimensionalidad afecta muy seriamente a los modelos locales y mucho menos a los globales. Y voy a tratar de ilustrar esos conceptos con un ejemplo extraído de mi experiencia de consultor. ...

12 de enero de 2012 · Carlos J. Gil Bellosta

Cosa prodigiosa, sin palabras (I)

Hoy voy a hacer mención a una cosa prodigiosa. Pero sin palabras. Voy a regalar a mis lectores tres pedazos de código que son este jugar <- function( n, make.step ){ tmp <- rep( 0L, n) for( i in 2:n ) tmp[i] <- make.step( tmp[i-1] ) tmp } juego.s <- function( x, prob.perder = 0.51 ){ x + ifelse( runif(1) < prob.perder, -1L, 1L ) } res.juego.s <- replicate( 1000, jugar( 1000, juego.s )[1000] ) hist( res.juego.s ) fivenum( res.juego.s ) este juego.c <- function( x ){ prob.perder <- ifelse( x %% 3 == 0, 0.905, 0.255 ) juego.s( x, prob.perder ) } res.juego.c <- replicate( 1000, jugar( 1000, juego.c )[1000] ) hist( res.juego.c ) fivenum( res.juego.c ) y este otro juego.fin <- function( x ){ sample( c( juego.c, juego.s), 1 )[[1]](x) } res.juego.fin <- replicate( 1000, jugar( 1000, juego.fin )[1000] ) hist( res.juego.fin ) fivenum( res.juego.fin ) Es una cosa tan maravillosa que no les voy a robar la oportunidad de averiguar por sí mismos en qué consiste. La semana que viene, en la segunda entrega, comentaré el código anterior y explicaré a qué se refiere y, si nadie lo ha dado a conocer antes, dónde reside lo miraculoso del asunto. ...

12 de enero de 2012 · Carlos J. Gil Bellosta

Una cifra, ya que estamos con el IRPF

La entrada de hoy la podía haber hecho en Twitter porque va a ser breve. Pero, ya que he tocado el tema de los impuestos y no tengo mucho tiempo, regalo a mis lectores una cifra sorprendente extraída de las páginas de la Agencia Tributaria. Mirad los siguientes datos correspondientes al 2009: Indican que en tal año, 16.7 millones de españoles declararon rendimientos del trabajo por un importe medio de casi 20.000 euros por barba, etc. Pero prestad atención a los rendimientos de actividades económicas, que son ...

11 de enero de 2012 · Carlos J. Gil Bellosta

Escribir el libro "Estadística con R" en tres meses, ¿quimera?

No sé si es quimera o no. Se me ocurrió el otro día. Dejo mi idea aquí escrita para ver por dónde respira la comunidad. Se trata, sí, de un libro extenso sobre R. Que cubra el 90-95% de los métodos estadísticos que utilizan los usuarios —en sentido amplio— de la estadística: médicos, sociólogos, etc. Con R. Con la teoría justa pero, eso sí, con referencias a fuentes fiables: se supone que sus lectores saben ya algo de estadística, pero tal vez no cómo afrontar su problema con R. Una especie de recetario bien hecho. Un vademécum. ...

10 de enero de 2012 · Carlos J. Gil Bellosta