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 Version 11 and Version 12 of OfficialTolArchiveNetworkBysSampler


Ignore:
Timestamp:
Nov 4, 2010, 12:11:36 PM (14 years ago)
Author:
Víctor de Buen Remiro
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OfficialTolArchiveNetworkBysSampler

    v11 v12  
    3737#!cpp
    3838  //Target log-density except a constant
     39  //This method must be redefined by end user classes in order to define
     40  //the specific distribution to sample
    3941  Real pi_logDens(VMatrix z);
    40   //Internal drawer
     42  //Internal drawer must be redefined by system internal classes to
     43  //implement a given sampling algorithm
    4144  VMatrix _draw(VMatrix x);
    4245}}}
     
    4750#!cpp
    4851  //Will be called after each accepted or rejected simulation
     52  //This method can be redefined by end user classes
    4953  Real doAfterDraw(Real void) { True };
    5054}}}
     
    134138[[LatexEquation( \alpha = \min \left\{ 1, \frac{ \sum {w\left( y_j, x \right)} }{ \sum {w\left( x_j, y \right)} } \right\} $$)]]
    135139
    136 
    137140Con 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 $$)]].
    138141
    139142Hay que hacer notar que el método MTM con [[LatexEquation( k=1 $$)]] es precisamente el método MH, aunque por razones de eficiencia conviene tenerlos implementados por separado.
    140143
    141 ==== {{{Class @MulTryMet.RandWalk}}} ====
    142 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
     144==== {{{Class @MulTryMet.Symmetric}}} ====
     145
     146Si la función de geeración de candidatos es simétrica se puede tomar simplemente
    143147
    144148[[LatexEquation( \lambda \left( x,y \right) = \frac{1}{Q\left( x,y \right)} $$)]]
     
    148152[[LatexEquation( w\left( x,y \right) = \pi\left( x \right) $$)]]
    149153
     154===== {{{Class @MulTryMet.RandWalk}}} =====
     155La clase {{{@MulTryMet.RandWalk : @MulTryMet.Symmetric, @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).
     156
    150157Hasta 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
    151158
     
    154161Esta 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.
    155162
    156 ==== {{{Class @MulTryMet.RandRay}}} ====
    157 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.
     163===== {{{Class @MulTryMet.RandRay}}} =====
     164La clase {{{@MulTryMet.RandRay: @MulTryMet.Symmetric}}} 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.
    158165
    159166