Me ha llegado noticia de una entrada en un blog, Visualizing Bayesian Updating, en el que se muestra visualmente cómo se actualiza la distribución a posteriori conforme aumenta el número de ensayos en un problema bayesiano simple. Explica también los fundamentos estadísticos del asunto.

Yo me limitaré a ofrecer una nueva versión del código —que no funcionaba copiando y pegando sin más— en el que he introducido ciertas modificaciones. Es el siguiente:

sim.bayes <- function(p=0.5, N=10, y.lim=15)
{
  plot( 1, xlim = c(0,1), ylim = c(0, y.lim),
        xlab = 'p', ylab = 'Posterior Density',
        type = "n" )
  legend('topright',
      legend=c('Prior','Updated Posteriors','Final Posterior'),
      lty=c(2,1,1),col=c('black','black','red'))

  exitos <- cumsum( rbinom( N, 1, p ) )

  foo <- function( exitos, n.pruebas, col = "black", lwd = 1, lty = 1 ){
    curve( dbeta( x, exitos + 1, n.pruebas - exitos + 1 ),
            add = TRUE, col = col, lwd = lwd, lty = lty )
    print( paste(exitos, "éxitos y ", n.pruebas - exitos, "fracasos") )
  }

  foo( 0, 0, lty = 2 )
  mapply( foo, exitos, 1:N )
  foo( exitos[N], N, col='red', lwd = 2 )
}

sim.bayes(p = 0.6, N = 20, y.lim = 5)

Quiero pensar que mis lectores encontrarán útil el ejemplo de uso de la función mapply (para recorrer dos vectores simultáneamente), curve (para representar gráficamente funciones).