close
Warning:
Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.
- Timestamp:
-
Nov 3, 2010, 7:16:31 PM (14 years ago)
- Author:
-
Víctor de Buen Remiro
- Comment:
-
--
Legend:
- Unmodified
- Added
- Removed
- Modified
-
v2
|
v3
|
|
5 | 5 | == Introducción == |
6 | 6 | |
7 | | El paquete {{{BysSampler}}} consiste en una jerarquía de clases para el muestreo bayesiano de cadenas de Markov de una distribución de probabilidad vectorial arbitraria, partiendo únicamente del logaritmo de la función de densidad correspondiente. |
| 7 | El paquete {{{BysSampler}}} consiste en una jerarquía de clases para el muestreo bayesiano de cadenas de Markov de una distribución de probabilidad vectorial arbitraria, partiendo únicamente del logaritmo de la función de densidad correspondiente, a la que llamaremos densidad objetivo |
| 8 | |
| 9 | [[LatexEquation( \ln \left( \pi\left( x \right)\right) \forall x\in\mathbb{R}^{n} $$)]] |
| 10 | |
8 | 11 | |
9 | 12 | Existe una batería de métodos disponibles en la literatura capaces en teoría de dar respuesta a este tipo de problemas en determinadas circunstancias: |
… |
… |
|
65 | 68 | ==== {{{Class @RandWalk }}} ==== |
66 | 69 | |
67 | | La clase {{{@RandWalk : @AcceptReject}}} genera los candidatos como un paseo aleatorio en el que en cada paso se da un salto desde el último punto aceptado a otro de su entorno mediante una normal multidimensional [[LatexEquation( Q\left(x,y\right) : y ~ N\left(x,\Sigma\right) )]]. |
| 70 | La clase {{{@RandWalk : @AcceptReject}}} genera los candidatos como un paseo aleatorio en el que en cada paso se da un salto desde el último punto aceptado a otro de su entorno mediante una normal multidimensional [[LatexEquation( Q\left(x,y\right) : y \sim N\left(x,\Sigma\right) )]]. |
| 71 | |
| 72 | Por defecto se tomará [[LatexEquation( \Sigma\ = s^2 I_n )]] donde el tamaño de paso (''step size'') será modificado en cada iteración de forma que el ratio de aceptación {{{Real @Generic::acceptRatio}}} se acerque lo más posible a un valor óptimo o deseado {{{Real @AcceptReject::acceptRatio.target}}} dependiente de cada método. |
68 | 73 | |
69 | 74 | === {{{Class @MetHas }}} === |
… |
… |
|
71 | 76 | |
72 | 77 | ==== {{{Class @MetHas.RandWalk }}} ==== |
73 | | Si se hereda de {{{@RandWalk}}} y {{{@MetHas}}} al mismo tiempo se obtiene la modalidad más usual: el método Random Walk Metropolis-Hastings (RWMH) |
| 78 | Si se hereda de {{{@RandWalk}}} y {{{@MetHas}}} al mismo tiempo se obtiene la modalidad más usual: el método Random Walk Metropolis-Hastings (RWMH). En este caso se tiene una fórmula que da el óptimo ratio de aceptación propuesta en el artículo [http://projecteuclid.org/DPubS/Repository/1.0/Disseminate?view=body&id=pdf_1&handle=euclid.ss/1015346320 Optimal scaling for various Metropolis-Hastings algorithms (''Gareth O. Roberts and Jeffrey S. Rosenthal'')] |
| 79 | |
| 80 | [[LatexEquation( \alpha_n = 0.234 + 0.266*e^{1-n} $$)]] |
74 | 81 | |
75 | 82 | |
76 | 83 | === {{{Class @MulTryMet}}} === |
77 | | La clase {{{@MulTryMet: @AcceptReject}}} implementa el método [http://en.wikipedia.org/wiki/Multiple-try_Metropolis Multiple Try Metropolis (MTM)] basado en generar varios pre-candidatos cada vez y seleccionar uno de ellos de forma también aleatoria pero premiando a los más prometedores según un criterio predefinido mediante una función de pesos producto de la densidad objetivo, densidad de transición de los precandidatos y una función de transición positiva y simétrica llamada [[LatexEquation( \lambda \left( x,y \right) $$)]] . Con una buena selección del número [[LatexEquation( k $$)]] de precandidatos y de la función [[LatexEquation( \lambda \left( x,y \right) $$)]] se puede mejorar bastante la convergencia y disminuir la autocorrelación de la cadena con respecto al método [http://en.wikipedia.org/wiki/Metropolis%E2%80%93Hastings_algorithm Metropolis-Hastings], Evidentemente esto sucede a costa de un mayor numero de evaluaciones de la densidad por lo que no es trivial determinar el valor óptimo de [[LatexEquation( k $$)]]. |
| 84 | La clase {{{@MulTryMet: @AcceptReject}}} implementa el método [http://en.wikipedia.org/wiki/Multiple-try_Metropolis Multiple Try Metropolis (MTM)] basado en generar varios pre-candidatos cada vez y seleccionar uno de ellos de forma también aleatoria pero premiando a los más prometedores según un criterio predefinido mediante una función de pesos producto de la densidad objetivo, densidad de transición de los precandidatos y una función de transición positiva y simétrica llamada [[LatexEquation( \lambda \left( x,y \right) $$)]] |
| 85 | |
| 86 | [[LatexEquation( w\left( x,y \right) = \pi\left( y \right) Q\left( x,y \right)\lambda \left( x,y \right) $$)]] |
| 87 | |
| 88 | Con una buena selección del número [[LatexEquation( k $$)]] de precandidatos y de la función [[LatexEquation( \lambda \left( x,y \right) $$)]] se puede mejorar bastante la convergencia y disminuir la autocorrelación de la cadena con respecto al método [http://en.wikipedia.org/wiki/Metropolis%E2%80%93Hastings_algorithm Metropolis-Hastings], Evidentemente esto sucede a costa de un mayor numero de evaluaciones de la densidad por lo que no es trivial determinar el valor óptimo de [[LatexEquation( k $$)]]. |
78 | 89 | |
79 | 90 | ==== {{{Class @MulTryMet.RandWalk}}} ==== |
80 | | La clase {{{@MulTryMet.RandWalk : @MulTryMet, @RandWalk}}} implementa la modalidad más simple de [http://en.wikipedia.org/wiki/Multiple-try_Metropolis Multiple Try Metropolis]: el método Random Walk Multiple Try Metropolis (RWMTM). Por tratarse de una función de transición simétrica se puede tomar |
| 91 | La clase {{{@MulTryMet.RandWalk : @MulTryMet, @RandWalk}}} implementa la modalidad más simple de [http://en.wikipedia.org/wiki/Multiple-try_Metropolis Multiple Try Metropolis]: el método Random Walk Multiple Try Metropolis (RWMTM). Por tratarse de una función de transición simétrica se puede tomar simplemente [[LatexEquation( \lambda \left( x,y \right) = 1/Q\left( x,y \right) $$)]] resultando que la función de pesos es la propia densidad objetivo: |
| 92 | |
| 93 | [[LatexEquation( w\left( x,y \right) = \pi\left( y \right) $$)]] |
| 94 | |
| 95 | Hasta el momento no se ha podido encontrar una fórmula del ratio de aceptación óptimo análoga a la de Roberts-Rosenthal para el método Metrópolis-Hastings, o al menos el que escribe no tiene noticias de su existencia, por lo que se ha recurrido a una fórmula que heurísticamente da buenos resultados |
| 96 | |
| 97 | [[LatexEquation( \alpha_n_k = 1-(1-\alpha_n)^k $$)]] |
| 98 | |
| 99 | Esta fórmula sería óptima si la eficiencia de una cadena de [[LatexEquation( M $$)]] simulaciones con el método MTM con [[LatexEquation( k $$)]] precandidatos fuera exactamente la misma que la de una cadena de [[LatexEquation( k M $$)]] simulaciones con el método MH. Esto no se tiene porqué cumplir pero tampoco deberían ser muy distintas las eficiencias por lo que puede ser una aproximación suficiente, sobretodo teniendo en cuenta que basta con que el escalado no esté muy alejado del óptimo para que los resultados obtenidos sean muy parecidos. |
81 | 100 | |
82 | 101 | ==== {{{Class @MulTryMet.RandRay}}} ==== |
83 | 102 | La clase {{{@MulTryMet.RandRay: @MulTryMet}}} implementa la modalidad Random Ray Multiple Try Metropolis (RRMTM) en la que todos los precandidatos se generan en una misma dirección seleccionada aleatoriamente, de forma simular al método [http://oai.cwi.nl/oai/asset/1755/1755A.pdf Hit and Run] pero evitando la optimización unidimensional que puede resultar demasiado costosa. |
| 103 | |
84 | 104 | |
85 | 105 | === {{{Class @Arima}}} === |