95 | | 1. Crear la definición del modelo como un {{{Struct @BSR.ModelDef modelDef}}} |
96 | | 1. Parametrizar la configuración como una instancia de {{{BysMcmc::@Config config}}} |
97 | | 1. Crear el gestor del modelo BSR como una instancia de la clase {{{BysMcmc::@Cycler cycler}}} |
98 | | 1. Crear el gestor de la estimación BSR como una instancia de la clase {{{BysMcmc::@Estim estim}}} |
99 | | 1. Generar la cadena MCMC llamando al método {{{estim::Run}}} |
100 | | Si queremos generar múltiples cadenas, los 4 primeros pasos siguen siendo los mismos, salvo que en el paso 2 hay que guardar una copia de config para recuperar la configuración tras el proceso de mezcla |
101 | | 1. Generar unos pocos puntos iniciales muy alejados entre sí |
102 | | 1. Resetear el modelo llamando al método {{{cycler::Initialize}}} |
103 | | 1. Generar un paseo aleatorio sobre-disperso en la región factible, es decir, con más probabilidad cerca de la frontera que en el interior. |
104 | | 1. Extraer unos pocos puntos iniciales lo más alejados entre sí que sea posible partiendo del centro de masas. |
105 | | 1. Cambiar los parámetros de configuración de las estimaciones locales para que |
106 | | 1. no haga ''burn-in'' ni ''thinning'' estándar[[BR]] |
| 95 | 1. Preparación del modelo |
| 96 | 1. Creación de la definición del modelo como un {{{Struct @BSR.ModelDef modelDef}}} |
| 97 | 1. Creación de la configuración como una instancia de {{{BysMcmc::@Config config}}} |
| 98 | 1. Creación del gestor del modelo BSR como una instancia de la clase {{{BysMcmc::@Cycler cycler}}} |
| 99 | 1. Creación del gestor de la estimación BSR como una instancia de la clase {{{BysMcmc::@Estim estim}}} |
| 100 | 1. Generación de la cadena MCMC llamando al método {{{estim::Run}}} |
| 101 | Si queremos generar múltiples cadenas, la preparación del modelo sigue siendo igual, salvo que en el paso 1.2 hay que guardar una copia de config para recuperar la configuración tras el proceso de mezcla. |
| 102 | 1. Preparación del modelo ... |
| 103 | 1. Generación de unos pocos puntos iniciales muy alejados entre sí |
| 104 | 1. Reseteo del modelo llamando al método {{{cycler::Initialize}}} |
| 105 | 1. Generación de candidatos a puntos iniciales mediante un paseo aleatorio sobre-disperso en la región factible, es decir, con más probabilidad cerca de la frontera que en el interior. |
| 106 | 1. Extracción de {{{K}}} puntos iniciales lo más alejados entre sí que sea posible partiendo del centro de masas. |
| 107 | 1. Reconfiguración de las estimaciones locales para que |
| 108 | 1. no hagan ''burn-in'' ni ''thinning'' estándar[[BR]] |
119 | | 1. Para cada punto inicial {{{x0[k]}}} generar de forma independiente una cadena MCMC de la distribución a posteriori |
120 | | 1. Resetear el modelo llamando al método cycler::Initialize |
121 | | 1. Asignar el punto inicial con la sentencia {{{Real cycler::_.sampler::setStore(x0[k]);}}} |
122 | | 1. Crear el k-esimo gestor de la estimación BSR como una instancia local de la clase BysMcmc::@Estim local_estim |
123 | | 1. Generar la k-esima cadena local MCMC llamando al método {{{local_estim::Run}}} |
124 | | 1. Devolver la cadena llamando a {{{ cycler::loadFullMcmc(?) }}} |
| 121 | 1. Para cada punto inicial {{{x0[k], k = 1 ... K}}} se genera de forma independiente una cadena MCMC para la distribución a posteriori |
| 122 | 1. Reseteo del modelo llamando al método cycler::Initialize |
| 123 | 1. Asignación del punto inicial con la sentencia {{{Real cycler::_.sampler::setStore(x0[k]);}}} |
| 124 | 1. Creación del k-esimo gestor de la estimación BSR como una instancia local de la clase BysMcmc::@Estim local_estim |
| 125 | 1. Generar la k-esima cadena local MCMC llamando al método {{{local_estim::Run}}} |
| 126 | 1. Retorno de la cadena llamando a {{{ cycler::loadFullMcmc(?) }}} para evitar pisarla en el disco. |
| 127 | 1. Chequeo de convergencia de las cadenas correspondientes a una misma variable. En principio el método es para comparar dos muestras. En principio, para extenderlo a más de dos muestras, habría que aplicarlo a todos los {{K*(K-1)/2}}} pares posibles pero eso podría suponer demasiado trabajo, por lo podría ejecutarse sobre un conjunto representativo de pares elegidos aleatoriamente, que podrían ser entre {{2*K}}} y {{4*K}}} pares. |
| 128 | 1. Burn-in individualizado de cada cadena |
| 129 | 1. Mezclado de las partes no quemadas por concatenación simple. |
| 130 | 1. Reporte de de resultados sobre la cadena conjunta |