El "método delta", ahora con NIMBLE

NIMBLE ha sido uno de mis más recientes y provechosos descubrimientos. Mejor que hablar de él, que otros lo harán mejor y con más criterio que yo, lo usaré para replantear el problema asociado el método delta que me ocupó el otro día.

Casi autoexplicativo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
library(nimble)

src <- nimbleCode({
    T_half <- log(.5) / k
    k ~ dnorm(-0.035, sd = 0.00195)
})

mcmc.out <- nimbleMCMC(code = src,
    constants = list(),
    data = list(), inits = list(k = -0.035),
    niter = 10000,
    monitors = c("k", "T_half"))

out <- as.data.frame(mcmc.out)

# hist(out$T_half), sd(out$T_half), etc.

Cosas:

  • El código contenido en src se compila (vía C++) por eficiencia en algunos casos y lo contrario, como este, en otros. Aún no he visto la manera, aunque presuntamente es posible, de no tener que pasar por ello.
  • El método que ilustro se extiende naturalmente a expresiones más complejas, con varias variables, etc.
  • Eh, ¿y qué os parece NIMBLE tal como lo he presentado para simular datos?