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 2 and Version 3 of OfficialTolArchiveNetworkBysSampler


Ignore:
Timestamp:
Nov 3, 2010, 7:16:31 PM (14 years ago)
Author:
Víctor de Buen Remiro
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OfficialTolArchiveNetworkBysSampler

    v2 v3  
    55== Introducción ==
    66
    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.
     7El 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
    811
    912Existe 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:
     
    6568==== {{{Class @RandWalk }}} ====
    6669
    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) )]].
     70La 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
     72Por 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.
    6873
    6974=== {{{Class @MetHas }}} ===
     
    7176
    7277==== {{{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)
     78Si 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} $$)]]
    7481
    7582
    7683=== {{{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 $$)]].
     84La 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
     88Con 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 $$)]].
    7889
    7990==== {{{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
     91La 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
     95Hasta 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
     99Esta 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.
    81100
    82101==== {{{Class @MulTryMet.RandRay}}} ====
    83102La 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
    84104
    85105=== {{{Class @Arima}}} ===