R

Intervalos de credibilidad para la beta: una alternativa

A partir de los comentarios de Olivier Núñez a mi entrada anterior casi homónima, se nos ha ocurrido a ambos de forma independiente y simultánea una manera alternativa de calcular el intervalo: minimizando su longitud.

a <- 3
b <- 5
alfa <- 0.05

# versión de la entrada anterior:
f <- function(x){
  (dbeta(x[2], a, b) - dbeta(x[1], a, b))^2 +
    (pbeta(x[2], a, b) - pbeta(x[1], a, b) -1 +  alfa)^2
}

res <- optim(c(a/(a+b), a/(a+b)), f)
res$par
#[1] 0.08052535 0.68463436

# nueva versión
f.alt <- function(x){
  qbeta(x+0.95, a, b) - qbeta(x, a, b)
}

res.alt <- optim(0.025, f.alt)
qbeta(c(res.alt$par, res.alt$par + 0.95), a, b)
#[1] 0.08054388 0.68464900

Una curiosa trasposición legal (hecha, manifiestamente, a malagana)

Nlp, R

El parlamento de la Unión Europea aprueba directivas. Los parlamentos nacionales las trasponen, es decir, las convierten en leyes nacionales (véase el enlace anterior).

No sé hasta qué punto la trasposición tiene que ser literal. La única experiencia seria que tengo es con esta y sus trasposiciones nacionales a España y el RU. Y era notorio cómo cada país, aprovechando las ambigüedades del texto original, arrimaba el ascua a su sardina.

He perdido el rato comparando la ley de reutilización de datos del sector público con la directiva que traspone (los enlaces, debajo). Que se parecen, por cierto, como un huevo a una castaña. En particular, la ley española añade provisiones que no aparecen en la directiva para asegurarse de que las administraciones públicas no se obligan ni comprometen a nada. Por lo que si en lugar de haber ley, no la hubiera, las cosas no cambiarían en absoluto. Pero esa es otra historia.

Intervalos de credibilidad para la distribución beta

Tengo un parámetro, la p de una binomial, que supongo distribuido según una beta. Me da igual para el caso si la distribución a priori es o no informativa. Solo digo que la distribución a posteriori es otra beta con parámetros a y b.

Quiero construir un intervalo de credibilidad para p, es decir, encontrar un subintervalo de [0,1]

  • dentro del cual la densidad de la beta sea mayor que fuera y que
  • capture $latex 1-\alpha$ de la probabilidad total.

Gráficamente,

Programa Profesional de Iniciación a R

Del 9 de junio al 9 de julio impartiré un curso de iniciación a R.

Se trata de una versión extendida de mi curso de introducción a R que, como novedad fundamental, pasa de 12 a 30 horas de duración. El programa, sin embargo, es esencialmente el mismo: aquello, todo ello y no más que aquello que de R podría usarse en Endesa, el Banco de Santander, Deloitte o el Ministerio de Sanidad.

Todo por no RTFM (o cómo usar matplotlib con R)

R

Quien escribió Call matplotlib from R podía haberse ahorrado bastante trabajo de la peor especie (programación de bajo nivel con C++) leyendo los benditos manuales (de rPython, en este caso).

Le bastaba hacer

library(rPython)

x <- seq(0, 2*pi, length = 100)
sx <- sin(x)
cx <- cos(x)

python.assign("x", x)
python.assign("sx", sx)
python.assign("cx", cx)

python.exec("import matplotlib.pyplot as plt")

python.exec("plt.rcParams.update({'figure.figsize' : (7,4)})")
python.exec("plt.plot(x, sx)")
python.exec("plt.plot(x, cx, '--r', linewidth=2) ")
python.exec("plt.legend(('sin(x)', 'cos(x)'))")
python.exec("plt.savefig('2015-04-02-pyplot.png')")

para obtener

2015-04-02-pyplot

con una fracción del esfuerzo y sin reinventar la rueda.

Spark ha muerto, ¡larga vida (y buena migración) a Shinyapps!

R

Primero, y por evitar confusiones, este no es el Spark que se nos muere. Se muere un servidor de RStudio donde se colgaban aplicaciones desarrolladas en shiny, spark.rstudio.com.

El nuevo servicio se llama shinyapps.io. Que viene a ser lo mismo pero más formal, con sus tokens, sus claves, su modelo freemium y sus servicios pro de pago.

Migrar aplicaciones, como mi vetusto detector de idiomas, viene a ser equivalente a colgarlas modo ex novo en shinyapps.io:

TelegRam[.]me!

Telegram es un sistema de mensajería por internet similar a Whatsapp, aunque con algunas diferencias notables:

  • No es de Facebook
  • Una vez tienes una cuenta, puedes usarla desde distintos dispositivos (Linux incluido)
  • Tiene menos usuarios
  • Es programable

De lo último es ilustración esta “conversación” que tuve con la cuenta @TeleR:

telegram

Los detalles, aquí. Y el crédito, para Rubén Tobalina.

Taller de mapas con R el 14 de abril en Madrid

Mi entrada de hoy es para anunciar un taller de mapas con R que tendrá lugar el día 14 de abril de 18 a 21 horas en Martina Cocina (cómo llegar).

Lo impartirá Beatriz Martínez, socióloga dedicada a la investigación social y de mercados, que ha trabajado en numerosos proyectos: desde investigación digital al desarrollo rural o programas de inclusión social. Está especializada en la la visualización de datos. Algunos de sus trabajos pueden verse en visualizados.com.

Pues sí: un curso de redes sociales con R

R

Debido a la positiva acogida de la propuesta para organizar un curso de redes sociales con R… pues se va a hacer.

  • Cuándo: Los días 9 (jueves), 15 y 22 (miércoles ambos) de abril, de 18:00 a 20:30-21:00 horas.
  • Lugar: Las cuevas de MartinaCocina (Cascorro 11, 28005 Madrid).
  • Programa: Las partes 1-6 de este tutorial. Se completará en modo taller resolviendo por el camino las dudas que surjan y discutiendo los conceptos que aparecen en él. No tiene formato de clase magistral. Se espera la participación activa de los asistentes.
  • Prerrequisitos: Cierto conocimiento de R es recomendable. Sospecho que no será provechoso para quienes, cuando menos, desconozcan los rudimentos de la programación (no necesariamente en R).
  • Otras consideraciones: Las plazas son limitadas. Probablemente quede quien no pueda asistir. Por eso se espera de quienes obtengan una plaza un mínimo compromiso y seriedad, es decir, asistencia.
  • Registro: Aquí. En unos días se cerrará el registro y, de exceder el aforo, se procederá a un sorteo para asignar las plazas; véase el punto anterior sobre la seriedad, el compromiso y la asistencia.