Articulo de referencia

Muestreo de rebanadas

El muestreo por secciones es un tipo de algoritmo de Monte Carlo de cadena de Markov para el muestreo de números pseudoaleatorios , es decir, para extraer muestras aleatorias de...

El muestreo por secciones es un tipo de algoritmo de Monte Carlo de cadena de Markov para el muestreo de números pseudoaleatorios , es decir, para extraer muestras aleatorias de una distribución estadística. El método se basa en el hecho de que para muestrear una variable aleatoria se puede muestrear uniformemente de la región bajo la gráfica de su función de densidad. [ 1 ] [ 2 ] [ 3 ]

Motivación

Muestreo de una variable aleatoriaincógnita{\displaystyle x}a partir de una función de densidad de probabilidad dadaF(incógnita){\displaystyle f(x)}es una tarea común en estadística. La figura (abajo a la izquierda) esboza la gráfica deF(incógnita){\displaystyle f(x)}, donde la altura enincógnita{\displaystyle x}corresponde a la probabilidad en ese punto. En el caso de una distribución uniforme, cada valor deincógnita{\displaystyle x}tendrían la misma probabilidad de ser muestreados, y la función correspondiente seríaF(incógnita)=y{\displaystyle f(x)=y} por alguna constantey{\displaystyle y}En lugar de la línea negra original, en la segunda figura (abajo a la derecha) se muestra una distribución uniforme representada por la línea azul. Para tomar muestrasincógnita{\displaystyle x}de una manera que mantenga la distribuciónF(incógnita){\displaystyle f(x)}, una técnica de muestreo que tiene en cuenta las diferentes probabilidades para cada rango deF(incógnita){\displaystyle f(x)}debe utilizarse.

Gráfica matemática de una función de densidad de probabilidad continua arbitraria. El eje horizontal está representado por x, y la densidad f(x) se representa en el eje vertical.Ilustración de una distribución uniforme, superpuesta a f(x) representada en la figura anterior.

Método

El muestreo por secciones, en su forma más simple, toma muestras de manera uniforme desde debajo de la curva.F(incógnita){\displaystyle f(x)}sin necesidad de rechazar ningún punto, como sigue:

  1. Elige un valor inicialincógnita0{\displaystyle x_{0}}para quéF(incógnita0)>0{\displaystyle f(x_{0})>0}
  2. Muestra ay{\displaystyle y}valor uniformemente entre0{\displaystyle 0}yF(incógnita0){\displaystyle f(x_{0})}.
  3. Dibuja una línea horizontal a través de la curva en este punto.y{\displaystyle y}posición.
  4. Muestra un punto(incógnita,y){\displaystyle (x,y)}a partir de los segmentos de línea dentro de la curva.
  5. Repita desde el paso 2 usando el nuevoincógnita{\displaystyle x}valor.

La motivación aquí es que una forma de muestrear un punto uniformemente dentro de una curva arbitraria es primero dibujar rebanadas horizontales delgadas de altura uniforme a lo largo de toda la curva. Luego, podemos muestrear un punto dentro de la curva seleccionando aleatoriamente una rebanada que caiga en o por debajo de la curva en el punto dondeincógnita{\displaystyle x}-posición de la iteración anterior, luego eligiendo aleatoriamente unaincógnita{\displaystyle x}-posición en algún punto a lo largo de la sección. Al usar elincógnita{\displaystyle x}-posición de la iteración anterior del algoritmo, a largo plazo seleccionamos rebanadas con probabilidades proporcionales a las longitudes de sus segmentos dentro de la curva. La parte más difícil de este algoritmo es encontrar los límites de la rebanada horizontal, lo que implica invertir la función que describe la distribución de la que se está muestreando. Esto es especialmente problemático para distribuciones multimodales, donde la rebanada puede constar de múltiples partes discontinuas. A menudo es posible utilizar una forma de muestreo por rechazo para superar esto, donde muestreamos de una rebanada más grande que se sabe que incluye la rebanada deseada en cuestión, y luego descartamos los puntos fuera de la rebanada deseada. Este algoritmo se puede utilizar para muestrear del área bajo cualquier curva, independientemente de si la función integra a 1. De hecho, escalar una función por una constante no tiene efecto en el muestreo.incógnita{\displaystyle x}-posiciones. Esto significa que el algoritmo se puede utilizar para muestrear de una distribución cuya función de densidad de probabilidad solo se conoce hasta una constante (es decir, cuya constante de normalización es desconocida), lo cual es común en estadística computacional .

Implementación

El muestreo por segmentos recibe su nombre del primer paso: definir un segmento mediante el muestreo de una variable auxiliar.Y{\displaystyle Y}Esta variable se muestrea a partir de[0,F(incógnita)]{\displaystyle [0,f(x)]}, dóndeF(incógnita){\displaystyle f(x)}es la función de densidad de probabilidad (PDF) deincógnita{\displaystyle x}o es al menos proporcional a su PDF. Esto define una porción deincógnita{\displaystyle x}dóndeF(incógnita)Y{\displaystyle f(x)\geq Y}En otras palabras, ahora estamos viendo una región deincógnita{\displaystyle x}donde la densidad de probabilidad es al menosY{\displaystyle Y}. Luego el siguiente valor deincógnita{\displaystyle x}se muestrea uniformemente de esta porción. Un nuevo valor deY{\displaystyle Y}se toma una muestra, luegoincógnita{\displaystyle x}y así sucesivamente. Esto se puede visualizar como un muestreo alternativo de la posición y y luego laincógnita{\displaystyle x}-posición de los puntos bajo la PDF, por lo tanto elincógnita{\displaystyle x}Las s provienen de la distribución deseada.Y{\displaystyle Y}Los valores no tienen consecuencias ni interpretaciones particulares más allá de su utilidad para el procedimiento.

Si se dispone tanto de la función de densidad de probabilidad (PDF) como de su inversa, y la distribución es unimodal, entonces encontrar la sección transversal y muestrear a partir de ella es sencillo. De lo contrario, se puede utilizar un procedimiento de selección para encontrar una región cuyos extremos queden fuera de la sección transversal. Luego, se puede extraer una muestra de la sección transversal mediante muestreo por rechazo . Radford M. Neal describe en detalle varios procedimientos para esto . [ 2 ]

Tenga en cuenta que, a diferencia de muchos métodos disponibles para generar números aleatorios a partir de distribuciones no uniformes, las variables aleatorias generadas directamente por este enfoque exhibirán dependencia estadística serial. Esto se debe a que para extraer la siguiente muestra, definimos la porción en función del valor deF(incógnita){\displaystyle f(x)}para la muestra actual.

En comparación con otros métodos

El muestreo por secciones es un método de cadena de Markov y, como tal, cumple la misma función que el muestreo de Gibbs y el de Metropolis. A diferencia de Metropolis, no es necesario ajustar manualmente la función candidata ni la desviación estándar candidata .

Recordemos que el algoritmo de Metrópolis es sensible al tamaño del paso. Si el tamaño del paso es demasiado pequeño, el paseo aleatorio provoca una descorrelación lenta . Si el tamaño del paso es demasiado grande, se produce una gran ineficiencia debido a una alta tasa de rechazo.

A diferencia del algoritmo de Metropolis, el muestreo por secciones ajusta automáticamente el tamaño del paso para que coincida con la forma local de la función de densidad. Su implementación es, sin duda, más sencilla y eficiente que la del muestreo de Gibbs o las actualizaciones simples de Metropolis.

Nótese que, a diferencia de muchos métodos disponibles para generar números aleatorios a partir de distribuciones no uniformes, las variables aleatorias generadas directamente por este enfoque exhibirán dependencia estadística serial. En otras palabras, no todos los puntos tienen la misma probabilidad independiente de selección. Esto se debe a que, para extraer la siguiente muestra, definimos la porción en función del valor deF(incógnita){\displaystyle f(x)}para la muestra actual. Sin embargo, las muestras generadas son markovianas y, por lo tanto, se espera que converjan a la distribución correcta a largo plazo.

El muestreo por secciones requiere que la distribución que se va a muestrear sea evaluable. Una forma de flexibilizar este requisito es sustituirla por una distribución evaluable que sea proporcional a la distribución real no evaluable.

Caso univariado

texto alternativo
Para una muestra dada x, se elige un valor para y del intervalo [0, f ( x )], que define una "segmentación" de la distribución (representada por la línea horizontal continua). En este caso, hay dos segmentos separados por un área fuera del rango de la distribución.

Para muestrear una variable aleatoriaincógnita{\displaystyle x}con densidadF(incógnita){\displaystyle f(x)}Introducimos una variable auxiliar Y e iteramos de la siguiente manera:

  • Dado un ejemploincógnita{\displaystyle x}elegimos y uniformemente al azar del intervalo[0,F(incógnita)]{\displaystyle [0,f(x)]};
  • dadoy{\displaystyle y}elegimosincógnita{\displaystyle x}uniformemente al azar del conjuntoF1[y,+){\displaystyle f^{-1}[y,+\infty)}.
  • La muestra deincógnita{\displaystyle x}se obtiene ignorando los valores de y .

Nuestra variable auxiliary{\displaystyle y}representa una "rebanada" horizontal de la distribución. El resto de cada iteración se dedica a muestrear unaincógnita{\displaystyle x}valor de la sección que es representativa de la densidad de la región que se está considerando.

En la práctica, el muestreo de una sección horizontal de una distribución multimodal es complejo. Existe una tensión entre obtener una región de muestreo amplia, lo que permitiría grandes desplazamientos en el espacio de distribución, y obtener una región de muestreo más sencilla para aumentar la eficiencia. Una opción para simplificar este proceso es la expansión y contracción regional.

  • Primero, un parámetro de anchow{\displaystyle w}se utiliza para definir el área que contiene el valor x dado . Cada extremo de esta área se comprueba para ver si se encuentra fuera de la sección dada. Si no, la región se extiende en la(s) dirección(es) apropiada(s) mediantew{\displaystyle w}Hasta el final, ambos extremos quedan fuera de la porción.
  • Se selecciona una muestra candidata de forma uniforme dentro de esta región. Si la muestra candidata se encuentra dentro del segmento, se acepta como la nueva muestra. Si se encuentra fuera del segmento, el punto candidato se convierte en el nuevo límite de la región. Se toma una nueva muestra candidata de forma uniforme. El proceso se repite hasta que la muestra candidata se encuentre dentro del segmento. (Véase el diagrama para un ejemplo visual).
texto alternativo
Encontrar una muestra a partir de un conjunto de segmentos (los segmentos están representados aquí como líneas azules y corresponden a los segmentos de línea continua en el gráfico anterior de f ( x ) ). a) Se establece un parámetro de ancho w . b) Se identifica una región de ancho w alrededor de un punto dado.incógnita0{\displaystyle x_{0}}c) La región se expande en w hasta que ambos extremos queden fuera de la sección considerada. d)incógnita1{\displaystyle x_{1}}se selecciona uniformemente de la región. e) Dado queincógnita1{\displaystyle x_{1}}se encuentra fuera de la porción considerada, el límite izquierdo de la región se ajusta aincógnita1{\displaystyle x_{1}}f) Otra muestra uniformeincógnita{\displaystyle x}se toma y se acepta como muestra ya que se encuentra dentro de la sección considerada.

Muestreo de rebanadas dentro de Gibbs

En un muestreador de Gibbs , es necesario extraer datos de manera eficiente de todas las distribuciones condicionales completas. Cuando el muestreo de una densidad condicional completa no es sencillo, se puede utilizar una sola iteración de muestreo por secciones o el algoritmo de Metropolis-Hastings dentro de Gibbs para muestrear la variable en cuestión. Si la densidad condicional completa es logarítmicamente cóncava, una alternativa más eficiente es la aplicación de métodos de muestreo de rechazo adaptativo (ARS). [ 4 ] [ 5 ] Cuando no se pueden aplicar las técnicas ARS (ya que la densidad condicional completa no es logarítmicamente cóncava), se suelen emplear los algoritmos de muestreo de Metropolis de rechazo adaptativo . [ 6 ] [ 7 ]

Métodos multivariados

Tratar cada variable de forma independiente

El muestreo de segmentos de una sola variable se puede utilizar en el caso multivariado muestreando cada variable por turno repetidamente, como en el muestreo de Gibbs. Para ello, es necesario que podamos calcular, para cada componenteincógnitai{\displaystyle x_{i}}una función que es proporcional apag(incógnitai|incógnita0...incógnitanorte){\displaystyle p(x_{i}|x_{0}...x_{n})}.

Para evitar un comportamiento de paseo aleatorio, se pueden utilizar métodos de sobrerrelajación para actualizar cada variable por turno. La sobrerrelajación elige un nuevo valor en el lado opuesto de la moda con respecto al valor actual, a diferencia de la elección de un nuevo valor independiente de la distribución, como se hace en el método de Gibbs.

Muestreo de cortes hiperrectangulares

Este método adapta el algoritmo univariado al caso multivariado sustituyendo la región unidimensional w utilizada en el original por un hiperrectángulo . El hiperrectángulo H se inicializa en una posición aleatoria sobre la sección. A continuación, H se reduce a medida que se descartan puntos que no pertenecen a él.

Muestreo de rebanadas reflectantes

El muestreo por secciones reflectantes es una técnica para suprimir el comportamiento de paseo aleatorio en la que las muestras candidatas sucesivas de la distribución f ( x ) se mantienen dentro de los límites de la sección "reflejando" la dirección del muestreo hacia adentro, hacia la sección, una vez que se ha alcanzado el límite.

En esta representación gráfica del muestreo reflectivo, la forma indica los límites de una sección de muestreo. Los puntos indican los puntos de inicio y fin de un recorrido de muestreo. Cuando las muestras alcanzan los límites de la sección, la dirección del muestreo se refleja de vuelta dentro de la misma.

texto alternativo

Ejemplo

Consideremos un ejemplo de una sola variable. Supongamos que nuestra distribución verdadera es una distribución normal con media 0 y desviación estándar 3,gramo(incógnita)norte(0,32){\displaystyle g(x)\sim N(0,3^{2})}. Entonces: F(incógnita)=12π32 mi(incógnita0)2232{\displaystyle f(x)={\frac {1}{\sqrt {2\pi \cdot 3^{2}}}}\ e^{-{\frac {(x-0)^{2}}{2\cdot 3^{2}}}}}El pico de la distribución se encuentra obviamente enincógnita=0{\displaystyle x=0}, en ese momentoF(incógnita)0,1330{\displaystyle f(x)\approx 0.1330}.

  1. Primero extraemos un valor aleatorio uniforme.y{\displaystyle y}de la gama deF(incógnita){\displaystyle f(x)}para definir nuestra(s) porción(es).F(incógnita){\displaystyle f(x)}varía de 0 a ~0,1330, por lo que cualquier valor entre estos dos extremos es suficiente. Supongamos que tomamosy=0.1{\displaystyle y=0.1}El problema radica en cómo muestrear puntos que tengan valoresy>0.1{\displaystyle y>0.1}.
  2. A continuación, establecemos nuestro parámetro de ancho.w{\displaystyle w}que utilizaremos para ampliar nuestra región de consideración. Este valor es arbitrario. Supongamosw=2{\displaystyle w=2}.
  3. A continuación, necesitamos un valor inicial paraincógnita{\displaystyle x}Dibujamos.incógnita{\displaystyle x}de la distribución uniforme dentro del dominio deF(incógnita){\displaystyle f(x)}lo cual satisfaceF(incógnita)>0.1{\displaystyle f(x)>0.1}(nuestroy{\displaystyle y}parámetro). Supongamosincógnita=2{\displaystyle x=2}Esto funciona porqueF(2)=0,1065...>0.1{\displaystyle f(2)=0,1065...>0,1}. [ 8 ]
  4. Porqueincógnita=2{\displaystyle x=2}yw=2{\displaystyle w=2}, nuestra región de interés actual está delimitada por(1,3){\displaystyle (1,3)}.
  5. Ahora, cada extremo de esta área se prueba para ver si se encuentra fuera de la porción dada. Nuestro límite derecho se encuentra fuera de nuestra porción (F(3)=0,0807...<0.1{\displaystyle f(3)=0,0807...<0,1}), pero el valor de la izquierda no (F(1)=0,1258...>0.1{\displaystyle f(1)=0,1258...>0,1}). Ampliamos el límite izquierdo añadiendow{\displaystyle w}hasta que se extiende más allá del límite de la sección. Después de este proceso, los nuevos límites de nuestra región de interés son:(3,3){\displaystyle (-3,3)}.
  6. A continuación, tomamos una muestra uniforme dentro de(3,3){\displaystyle (-3,3)}. Supongamos que esta muestra produceincógnita=2.9{\displaystyle x=-2.9}. Aunque esta muestra se encuentra dentro de nuestra región de interés, no se encuentra dentro de nuestra sección (F(2.9)=0,08334...<0.1{\displaystyle f(2.9)=0.08334...<0.1}), por lo que modificamos el límite izquierdo de nuestra región de interés hasta este punto. Ahora tomamos una muestra uniforme de(2.9,3){\displaystyle (-2.9,3)}. Supongamos que esta vez nuestra muestra arrojaincógnita=1{\displaystyle x=1}, que está dentro de nuestra porción, y por lo tanto es la salida de muestra aceptada por el muestreo de porción. Teníamos nuestro nuevoincógnita{\displaystyle x}Si no se encuentra dentro de nuestro segmento, continuaremos el proceso de reducción/remuestreo hasta que se encuentre uno válido.incógnita{\displaystyle x}dentro de los límites se encuentra.

Si nos interesa el pico de la distribución, podemos seguir repitiendo este proceso ya que el nuevo punto corresponde a un valor más alto.F(incógnita){\displaystyle f(x)}que el punto original.

Otro ejemplo

Para muestrear de la distribución normalnorte(0,1){\displaystyle N(0,1)}Primero elegimos un inicialincógnita{\displaystyle x}—digamos 0. Después de cada muestra deincógnita{\displaystyle x}elegimosy{\displaystyle y}uniformemente al azar de(0,miincógnita2/2/2π]{\displaystyle (0,e^{-x^{2}/2}/{\sqrt {2\pi }}]}, que está delimitado por la pdf denorte(0,1){\displaystyle N(0,1)}Después de caday{\displaystyle y}muestra que elegimosincógnita{\displaystyle x}uniformemente al azar de[α,α]{\displaystyle [-\alpha ,\alpha ]}dóndeα=2ln(y2π){\displaystyle \alpha ={\sqrt {-2\ln(y{\sqrt {2\pi }})}}}. Esta es la porción dondeF(incógnita)>y{\displaystyle f(x)>y}.

Una implementación en el lenguaje Macsyma es:

slice ( x ) := block ([ y , alpha ] , y: random ( exp ( - x ^ 2 / 2.0 ) / sqrt ( 2.0 * dfloat ( % pi ))) , alpha: sqrt ( -2.0 * ln ( y * sqrt ( 2.0 * dfloat ( % pi )))) , x: signum ( random ()) * random ( alpha ) ) ;

Véase también

Referencias

  1. Damlen, P., Wakefield, J., & Walker, S. (1999). Muestreo de Gibbs para modelos bayesianos no conjugados y jerárquicos mediante el uso de variables auxiliares. Journal of the Royal Statistical Society, Serie B (Metodología Estadística), 61(2), 331-344. Chicago
  2. 1 2 Neal, Radford M. (2003). " Slice Sampling" . Annals of Statistics . 31 (3): 705– 767. doi : 10.1214/aos/1056562461 . MR 1994729. Zbl 1051.65007 .  
  3. Bishop, Christopher (2006). "11.4: Muestreo por secciones". Reconocimiento de patrones y aprendizaje automático . Springer . ISBN 978-0387310732.
  4. Gilks, WR; Wild, P. (1992-01-01). "Muestreo de rechazo adaptativo para el muestreo de Gibbs". Journal of the Royal Statistical Society. Serie C (Estadística aplicada) . 41 (2): 337– 348. doi : 10.2307/2347565 . JSTOR 2347565 . 
  5. Hörmann, Wolfgang (1995-06-01). "Una técnica de rechazo para el muestreo de distribuciones t-cóncavas". ACM Trans. Math. Softw . 21 (2): 182– 193. CiteSeerX 10.1.1.56.6055 . doi : 10.1145/203082.203089 . ISSN 0098-3500 . S2CID 592740 .   
  6. Gilks, WR; Best, NG ; Tan, KKC (1995-01-01). "Muestreo de Metropolis con rechazo adaptativo dentro del muestreo de Gibbs". Journal of the Royal Statistical Society. Serie C (Estadística Aplicada) . 44 (4): 455– 472. doi : 10.2307/2986138 . JSTOR 2986138 . 
  7. Meyer, Renate; Cai, Bo; Perron, François (15 de marzo de 2008). "Muestreo de Metropolis con rechazo adaptativo mediante polinomios de interpolación de Lagrange de grado 2". Computational Statistics & Data Analysis . 52 (7): 3408– 3423. doi : 10.1016/j.csda.2008.01.005 .
  8. Tenga en cuenta que si no supiéramos cómo seleccionar x de manera que f ( x ) > y , aún podríamos elegir cualquier valor aleatorio para x , evaluar f ( x ) y usarlo como nuestro valor de y . y solo inicializa el algoritmo; a medida que el algoritmo avanza, encontrará valores de y cada vez mayores .
  • http://www.probability.ca/jeff/java/slice.html