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:
-
Apr 7, 2010, 9:45:35 AM (15 years ago)
- Author:
-
Víctor de Buen Remiro
- Comment:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
-
initial
|
v2
|
|
3 | 3 | Es una generalización del Metropolis-hastings que consiste básicamente en que en cada simulación se mezclan muchos candidatos, que es lo rápido de calcular, para conseguir candidatos mejores y que el ratio de aceptación sea mayor y así hacer menos simulaciones. |
4 | 4 | |
5 | | Habría que programrlo en C++ para que sea realmente eficiente, pero con una API centrada en efectuar una simulación aislada de un solo bloque, pasándole todos los argumentos necesarios cada vez, pues de esta manera es trivial enmarcarlo dentro de un proceso de simulación por bloques de MH o de Gibbs como BSR o cualquier otro posible. En esas tareas logísticas no es donde se gasta el tiempo de los simuladores y pueden estar perfectamente escritos en TOL como el propio BSR. |
| 5 | '''Definición de las funciones usadas en la simulación de ensayo múltiple de Metropolis-Hastings''' |
| 6 | * [[LatexEquation( \pi\left(x\right) )]]: la función de densidad objetivo |
| 7 | * [[LatexEquation( Q\left(x,y\right) )]]: la función de densidad del generador de candidatos que debe cumplir [[LatexEquation( Q\left(x,y\right)>0\Longleftrightarrow Q\left(y,x\right)>0 )]] |
| 8 | * [[LatexEquation( \lambda\left(x,y\right) )]]: una función simétrica no negativa, esto es, [[LatexEquation( \lambda\left(x,y\right) = \lambda\left(y,x\right) >0 )]] |
| 9 | * [[LatexEquation( w\left(x,y\right) = \pi\left(x\right) * Q\left(x,y\right) * \lambda\left(x,y\right) )]]: la función de pesos |
6 | 10 | |
| 11 | '''Algoritmo''' |
| 12 | |
| 13 | * Sea [[LatexEquation( x \in\mathbb{R}^{n} )]] el punto actual de la cadena de Markov |
| 14 | * Se toman [[LatexEquation( k )]] muestras independientes |
| 15 | |
| 16 | [[LatexEquation( \left\{ y_{j}\right\} _{j=1\ldots k} )]] generadas con densidad [[LatexEquation( Q\left(x,y_j\right) )]] |
| 17 | * Se selecciona aleatoriamente una de ellas de forma proporcional a sus pesos [[LatexEquation( w\left(x,y_j\right) )]], a la que llamaremos [[LatexEquation( y )]] |
| 18 | * Se genera el conjunto de referencia como [[LatexEquation( k-1 )]] muestras independientes |
| 19 | |
| 20 | [[LatexEquation( \left\{ x_{j}\right\} _{j=1\ldots k-1} )]] generadas con densidad [[LatexEquation( Q\left(y,x_j\right) )]] y se toma [[LatexEquation( x_k = x )]] |
| 21 | * Finalmente se acepta el candidato [[LatexEquation( y )]] con probabilidad |
| 22 | |
| 23 | [[LatexEquation( r=\frac{\overset{k}{\underset{j=1}{\sum}}w\left(x,y_{j}\right)}{\overset{k}{\underset{j=1}{\sum}}w\left(x_{j},y\right)} )]] |
| 24 | |
| 25 | Quizás habría que programarlo en C++ para que sea más eficiente, pero con una API centrada en efectuar una simulación aislada de un solo bloque, pasándole todos los argumentos necesarios cada vez, pues de esta manera es trivial enmarcarlo dentro de un proceso de simulación por bloques de MH o de Gibbs como BSR o cualquier otro posible. En esas tareas logísticas no es donde se gasta el tiempo de los simuladores y pueden estar perfectamente escritos en TOL como el propio BSR. |