Reúne las opciones del muestreador en un objeto que usan dl_ajustar(), dl_ajustar_solo_prior(),
dl_etiquetas(), dl_sensibilidad() y dl_correr().
Usage
dl_opciones_mcmc(
simulaciones = 1000L,
cadenas = 4L,
iteraciones = 50000L,
calentamiento = 10000L,
adelgazamiento = 10L,
nucleos = 1L,
motor = c("mh", "rcpp")
)Arguments
- simulaciones
Número de simulaciones posteriores que se guardan por sexo.
- cadenas
Número de cadenas.
- iteraciones
Iteraciones por cadena (incluye el calentamiento).
- calentamiento
Iteraciones de calentamiento (adaptación) por cadena; múltiplo de 200 y menor que
iteraciones.- adelgazamiento
Se guarda una de cada
adelgazamientoiteraciones después del calentamiento.- nucleos
Procesos en paralelo para las cadenas (en Windows se usa 1).
- motor
"mh"(por defecto: la log-posterior en R) o"rcpp"(la misma en C++, más rápida; requiere Rcpp y un compilador).
Value
Objeto de clase dl_mcmc_opts, una lista con los campos draws (simulaciones), chains
(cadenas), iter (iteraciones), warmup (calentamiento), thin (adelgazamiento), cores
(nucleos), todos enteros, y engine (motor). Los campos conservan sus nombres de la versión 0.2.2.
Details
Los valores por defecto son los de una corrida de producción: 4 cadenas de 50 000 iteraciones, 10 000 de
calentamiento y una de cada 10 guardada, es decir, 4 x 4000 = 16 000 simulaciones guardadas por sexo, de las que
se toman 1000 equiespaciadas. Si simulaciones es mayor que las que guardan las cadenas
(cadenas x (iteraciones - calentamiento) / adelgazamiento), un aviso lo dice y el ajuste tiene las que
hay. Para una prueba rápida sirven cadenas cortas, como las de dl_correr(rapido = TRUE) (100 simulaciones, 2
cadenas de 2000 iteraciones con 1000 de calentamiento), pero no llegan a converger: sus números no sirven para
publicar.
Los dos motores evalúan la misma log-posterior. "mh", en R, es la referencia y el valor por defecto; "rcpp",
en C++, la evalúa varias veces más rápido y conviene en las corridas de producción. Los dos motores coinciden
hasta el redondeo, no bit a bit (la log-posterior, hasta 1e-9; la ecuación de la prevalencia, hasta el último
bit): dan estimaciones equivalentes, no idénticas. Por eso el motor no se elige solo según lo que haya instalado:
una corrida se repite exactamente con el mismo motor, la misma semilla y las mismas opciones. "rcpp" necesita
el paquete Rcpp y un compilador de C++ (en Windows, Rtools); el núcleo se compila la primera vez que se usa y
queda guardado para las sesiones siguientes.
nucleos reparte las cadenas entre procesos (con parallel); el resultado no cambia con el número de procesos.
En Windows se usa 1.
See also
dl_ajustar(), dl_mh() (el muestreador), dl_rhat() y dl_ess() (la convergencia).
Ajuste nacional:
dl_ajustar(),
dl_ajustar_solo_prior(),
dl_estimaciones()
Examples
# las opciones de producción
dl_opciones_mcmc()
#> <dl_mcmc_opts> simulaciones 1000 | cadenas 4 | iteraciones 50000 | calentamiento 10000 | adelgazamiento 10 | núcleos 1 | motor mh
# cadenas cortas para una prueba (las de dl_correr(rapido = TRUE))
op <- dl_opciones_mcmc(simulaciones = 100, cadenas = 2, iteraciones = 2000, calentamiento = 1000)
op
#> <dl_mcmc_opts> simulaciones 100 | cadenas 2 | iteraciones 2000 | calentamiento 1000 | adelgazamiento 10 | núcleos 1 | motor mh
op$draws
#> [1] 100
# el motor en C++ (se compila al ajustar)
dl_opciones_mcmc(motor = "rcpp", nucleos = 4)
#> <dl_mcmc_opts> simulaciones 1000 | cadenas 4 | iteraciones 50000 | calentamiento 10000 | adelgazamiento 10 | núcleos 4 | motor rcpp
# simulaciones de más: un aviso, y el ajuste tendrá las que guardan las cadenas
dl_opciones_mcmc(simulaciones = 500, cadenas = 2, iteraciones = 2000, calentamiento = 1000)
#> Warning: dl_opciones_mcmc(): se piden 500 simulaciones y las cadenas guardan 200 (cadenas x (iteraciones - calentamiento) / adelgazamiento): el ajuste tendrá 200. Para tener más, aumenta `iteraciones` o `cadenas`
#> <dl_mcmc_opts> simulaciones 500 | cadenas 2 | iteraciones 2000 | calentamiento 1000 | adelgazamiento 10 | núcleos 1 | motor mh