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.

Changes between Initial Version and Version 2 of Ticket #789


Ignore:
Timestamp:
Apr 7, 2010, 9:45:35 AM (15 years ago)
Author:
Víctor de Buen Remiro
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #789 – Description

    initial v2  
    33Es 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.
    44
    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
    610
     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 
     25Quizá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.