Skip to contents

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 adelgazamiento iteraciones 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