Diferencia de medias a la bayesiana con salsa de stan

El habitual problema de la diferencia de medias suele formularse de la siguiente manera: hay observaciones $y_{1i}$ e $y_{2i}$ donde $$ y_{ji} \sim N(\mu_j, \sigma)$$ e interesa saber si $\mu_1 = \mu_2$. Obviamente, se desconoce $\sigma$. De cómo resolvió Gosset el problema están los libros de estadística llenos. En R, set.seed(1234) N1 <- 50 N2 <- 50 mu1 <- 1 mu2 <- -0.5 sig1 <- 1 sig2 <- 1 y1 <- rnorm(N1, mu1, sig1) y2 <- rnorm(N2, mu2, sig2) t.test(y1, y2) # Welch Two Sample t-test # # data: y1 and y2 # t = 4.7059, df = 95.633, p-value = 8.522e-06 # alternative hypothesis: true difference in means is not equal to 0 # 95 percent confidence interval: # 0.5246427 1.2901923 # sample estimates: # mean of x mean of y # 0.5469470 -0.3604705 En rstan, ...

25 de junio de 2015 · Carlos J. Gil Bellosta

Busco viñetista (para MicroDatosEs)

Las viñetas son complementos importantes para un paquete, para que un usuario circunstancial pruebe y use un paquete. Uno de los míos, MicroDatosEs carece de ellas. Me gustaría poder añadirle una o más que ilustraran cómo usarlo. Por ejemplo, para reproducir algunos de los números que ofrece el INE en sus notas de prensa. Por eso te ofrezco la posibilidad de que te conviertas en viñetista. Eso te convertiría en colaborador del paquete (que es algo que cabe en un currículo). Eso sí, no subiría cualquier cosa. ...

24 de junio de 2015 · Carlos J. Gil Bellosta

SparkR 1.4: carga de ficheros CSV

He instalado Spark 1.4 recientemente y he comenzado a cacharrear. Antes de nada, quiero cargar datos. Advierto que ha cambiado sustancialmente la API de SparkR. Entre otras novedades, desapareció (o más bien, se escondió) la función textFile, que permitía leer ficheros línea a línea. Ahora está pero no se exporta. La verás solo si haces SparkR:::textFile. ¿Signo de deprecación? Se pueden crear un DataFrame (tablas distribuidas de Spark) a partir de un data.frame de R: ...

23 de junio de 2015 · Carlos J. Gil Bellosta

rPython & Anaconda

Nota: publico hoy en inglés en atención al público potencial de la entrada. rPython lets R users call Python code. Anaconda is a completely free enterprise-ready Python distribution for large-scale data processing, predictive analytics, and scientific computing. Not surprisingly, some users want to call Anaconda Python rather than their system’s default Python. However, Anaconda is a very particular package: unlike most other packages, whose files are scattered in a diversity of locations, it is self contained in a single directory. This helps Anaconda solve some problems, like the library hell. It is intended to provide the same experience regardless of the specifics of the host system. ...

22 de junio de 2015 · Carlos J. Gil Bellosta

La encuesta de presupuestos familiares, en MicroDatosEs

Hoy he subido una nueva versión del paquete MicroDatosEs a r-forge que incluye herramientas para cargar los datos de la Encuesta de Presupuestos Familiares. Aún no está en CRAN, pero estáis invitados a probarla instalando la versión de desarrollo mediante install.packages("MicroDatosEs", repos="http://R-Forge.R-project.org") La parte del paquete que se encarga de la EPF es obra de Diego Paniagua, que es uno de los estudiantes del Experto en Data Science de la UTAD. La aportación a este paquete es, de hecho, parte de su proyecto final. ...

18 de junio de 2015 · Carlos J. Gil Bellosta

Liberado Spark 1.4

El anuncio de la liberación de la versión 1.4 de Spark se ha materializado. Está aquí. ¿Qué trae de novedad la versión 1.4? La integración con SparkR —antes había que instalarlo con algo de dolor independientemente— y, aparentemente, data.frames distribuidos y, cuentan, una sintaxis similar a la de dplyr —honestamente, hubiera preferido otra— para manipularlos. Iré desgranando por aquí novedades. Y estoy pensando organizar una install & tutorial party un día de estos en Madrid. ¿Alguien se animaría?

17 de junio de 2015 · Carlos J. Gil Bellosta

Paralelismo en R: memo[rándum]

Esta es una nota que me dejo a mí mismo sobre paralelización en R para no tener que ir buscándola en otras partes: library(parallel) foo <- function(i){ Sys.sleep(i) } cl <- makeCluster(4) system.time(parSapply(cl, 1:4, foo)) # user system elapsed # 0.025 0.006 4.007 system.time(sapply(1:4, foo)) # user system elapsed # 0.039 0.033 10.001 stopCluster(cl)

15 de junio de 2015 · Carlos J. Gil Bellosta

¿Cuánta gente ha habido sobre la faz de la tierra?

Una vez oí que 70000 millones, de los que 7000 estaban vivos actualmente. Oí mal porque, buscando, he encontrado esto, de donde extraigo: y ¡Un 6.5% de todos los que hemos sido estamos vivos! Y me pregunto: ¿cuál será el porcentaje equivalente entre todos los que han sabido leer y escribir? ¿Cuántos de los que han sabido hacer música? ¿Cuántos de los escritores? ¿Cuántos de los que han tenido una existencia que no se redujese a subsistir precariamente?

11 de junio de 2015 · Carlos J. Gil Bellosta

Ver 53000 filas

Me preguntaban cómo ver con R una tabla con 53000 filas. Mi yo menos diplomático quiso contestar: define ver. Lo reformulé más amablemente y se me contestó: como en Excel. La pregunta es: ¿permite Excel ver 53000 registros? De hecho, ¿se pueden ver 53000 registros? Impresos a razón de línea por centímetro, ocuparían 530 metros y andar a paso vivo del primero al último costaría cinco minutos. Con 53000 registros, ver (como trasunto de entender) es una cosa distinta de tener delante. Lo siento, pero ver otra cosa que la facturación de los últimos quince días o los movimientos de la cuenta del último mes es algo distinto de lo que vacuamente promete Excel.

10 de junio de 2015 · Carlos J. Gil Bellosta

Oh, no, ¡datastepr!

Hoy no estoy de humor. He tratado de completar mi primer anillo en dos años y ha resultado un total fracaso. Mi bici buena estaba pinchada: me he enterado a un kilómetro de casa. He tenido que salir en otra, una de esas viejas de Decathlon, que no sé bien cómo apareció una vez en mi casa, que pesa un quintal y que cambia de marchas cuando y como quiere. No solo me he quedado a la mitad del recorrido sino que, además, he podido constatar cómo el paisanaje de Madrid ha descompuesto todas las fuentes que en el proyecto original jalonaban el recorrido. Supongo que con la inestimable ayuda, por omisión, de nuestros munícipes. Aquello, más que un anillo ciclista, parecía Mad Max I. ...

9 de junio de 2015 · Carlos J. Gil Bellosta