¿Simulando una excursión browniana usando un puente browniano?

11

Me gustaría simular un proceso de excursión browniana (un movimiento browniano que está condicionado siempre será positivo cuando 0<t<1 a 0 en t=1 ). Dado que un proceso de excursión browniana es un puente browniano que está condicionado a ser siempre positivo, esperaba simular el movimiento de una excursión browniana usando un puente browniano.

En R, estoy usando el paquete 'e1017' para simular un proceso de puente browniano. ¿Cómo puedo usar este proceso de puente browniano para crear una excursión browniana?

RPz
fuente
44
¿No es suficiente simular el valor absoluto de un puente browniano?
Alex R.
1
@AlexR. no [relleno]
P.Windridge
1
Sin embargo, vale la pena rehacer que un movimiento browniano condicionado a ser positivo puede realizarse reflejando el BM alrededor de su máximo de funcionamiento, que es un resultado debido a Pitman. Otra forma de realizar un BM condicionado para mantenerse positivo es por el valor absoluto de un BM 3D .
P.Windridge
1
@AlexR. - He actualizado mi respuesta a continuación para mostrar que incluso para caminatas aleatorias simples, los resultados de acondicionamiento positivo inducen un comportamiento diferente a simplemente tomar el valor absoluto. Para puentes brownianos específicamente, intuitivamente para pequeñas , el comportamiento de B B t es como | W t (porque B B t = W t - t W 1 ) y BM cumple la ley del logaritmo iterado (por lo que " O p ( t ) " es irrelevante para t lo suficientemente pequeño . Por lo tanto, | B B ttBBt|WtBBt=WttW1Op(t)tes como un BM reflejado para una pequeña t . Esto tiene un comportamiento bastante diferente a W t condicionada a seguir siendo positivo ...|BBt|tWt
P.Windridge

Respuestas:

7

Se puede construir una excursión browniana desde un puente utilizando la siguiente construcción de Vervaat: https://projecteuclid.org/download/pdf_1/euclid.aop/1176995155

Una aproximación rápida en R, usando el código BB de @ whuber, es

n <- 1001
times <- seq(0, 1, length.out=n)

set.seed(17)
dW <- rnorm(n)/sqrt(n)
W <- cumsum(dW)

# plot(times,W,type="l") # original BM

B <- W - times * W[n]   # The Brownian bridge from (0,0) to (1,target)

# plot(times,B,type="l")

# Vervaat construction
Bmin <- min(B)
tmin <- which(B == Bmin)
newtimes <- (times[tmin] + times) %% 1
J<-floor(newtimes * n)
BE <- B[J] - Bmin
plot(1:length(BE)/n,BE,type="l")

ingrese la descripción de la imagen aquí

0(0,1)ingrese la descripción de la imagen aquí


(|BBt|)0t1(BBt)0t1

6

0s60(63)=202×(42)=12|s2|=00212/20=0.6

En segundo lugar, consideraremos el condicionamiento de la "excursión". El número de caminos simples no negativos de longitud que terminan en es el número catalán . Exactamente de estos caminos tienen . Por lo tanto, la probabilidad de que nuestra "excursión" SRW (condicionada a permanecer positiva y terminar en ) tenga el valor 0 en el paso es .s6=230Cm=3=(2mm)/(m+1)=52s2=0022/5=0.4<0.6

En caso de que aún dude de que este fenómeno persista en el límite, podría considerar la probabilidad de puentes SRW y excursiones de longitud lleguen a 0 en el paso .4n2n

Para la excursión SRW: tenemos usando los asintóticos de wikipedia https://en.wikipedia.org/wiki / Número_ catalán . Es decir, es como eventualmente.

P(S2n=0|Sj0,j4n,S4n=0)=Cn2/C2n(42n/πn3)/(42n/(2n)3π)
cn3/2

Para abs (puente SRW): usando las asíntotas de wikipedia https://en.wikipedia.org/wiki/Binomial_coefficient . Esto es como .

P(|S2n|=0|S4n=0)=(2nn)2/(4n2n)(4n/πn)2/(42n/2nπ)
cn1/2

En otras palabras, la probabilidad asintótica de ver el puente SRW condicionado para ser positivo en cerca del medio es mucho menor que la del valor absoluto del puente. 0


Aquí hay una construcción alternativa basada en un proceso Bessel 3D en lugar de un puente browniano. Uso los hechos explicados en https://projecteuclid.org/download/pdf_1/euclid.ejp/1457125524

Descripción general- 1) Simule un proceso 3D Bessel. Esto es como un BM condicionado para ser positivo. 2) Aplique un cambio de escala apropiado de espacio-tiempo para obtener un puente Bessel 3 (Ecuación (2) en el documento). 3) Use el hecho (anotado justo después del Teorema 1 en el documento) de que un puente Bessel 3 tiene la misma distribución que una excursión browniana.

Un pequeño inconveniente es que debe ejecutar el proceso de Bessel durante bastante tiempo (T = 100 a continuación) en una cuadrícula relativamente fina para que la escala de espacio / tiempo se active al final.

## Another construction of Brownian excursion via Bessel processes
set.seed(27092017)
## The Bessel process must run for a long time in order to construct a bridge
T <- 100
n <- 100001
d<-3 # dimension for Bessel process
dW <- matrix(ncol = n, nrow = d, data=rnorm(d*n)/sqrt(n/T))
dW[,1] <- 0
W <- apply(dW, 1, cumsum)
BessD <- apply(W,1,function(x) {sqrt(sum(x^2))})

times <- seq(0, T, length.out=n)
# plot(times,BessD, type="l") # Bessel D process


times01 <- times[times < 1]
rescaletimes <- pmin(times01/(1-times01),T)
# plot(times01,rescaletimes,type="l") # compare rescaled times

# create new time index
rescaletimeindex <- sapply(rescaletimes,function(x){max(which(times<=x))} )

BE <- (1 - times01) * BessD[rescaletimeindex]
plot(times01,BE, type="l")

Aquí está la salida: ingrese la descripción de la imagen aquí

P.Windridge
fuente
5

El principio de reflexión afirma

si la ruta de un proceso de Wiener alcanza un valor en el tiempo , entonces la ruta posterior después del tiempo tiene la misma distribución que el reflejo de la ruta posterior sobre el valorf(t)f(s)=at=ssa

Wikipedia , consultado el 9/26/2017.

En consecuencia, podemos simular un puente browniano y reflejarlo sobre el valor simplemente tomando su valor absoluto. El puente browniano se simula restando la tendencia desde el punto inicial hasta el final del movimiento browniano mismo. (Sin ninguna pérdida de generalidad, podemos medir el tiempo en unidades que hacen que Por lo tanto, en el tiempo simplemente resta de .a=0(0,0)(T,B(T))BT=1tB(T)tB(t)

Se puede aplicar el mismo procedimiento para mostrar un movimiento browniano condicional no solo a volver a un valor especificado en el momento (el valor es para el puente), sino también a permanecer entre dos límites (que necesariamente incluyen el valor inicial de en el momento y el valor final especificado).T>0000

![Figura

Este movimiento browniano comienza y termina con un valor de cero: es un puente browniano.

Figura 2

El gráfico rojo es una excursión browniana desarrollada a partir del puente browniano anterior: todos sus valores son no negativos. El gráfico azul se ha desarrollado de la misma manera al reflejar el puente browniano entre las líneas punteadas cada vez que las encuentra. El gráfico gris muestra el puente browniano original.

Los cálculos son simples y rápidos: divida el conjunto de tiempos en pequeños intervalos, genere incrementos normales independientes distribuidos idénticamente para cada intervalo, acumúlelos, reste la tendencia y realice los reflejos necesarios.

Aquí está el Rcódigo. En él, Westá el movimiento browniano original, Bes el puente browniano, y B2es la excursión restringida entre dos valores especificados ymin(no positivos) y ymax(no negativos). Su técnica para realizar la reflexión utilizando el %%operador de módulo y el componente mínimo pminpuede ser de interés práctico.

#
# Brownian bridge in n steps from t=0 to t=1.
#
n <- 1001
times <- seq(0, 1, length.out=n)
target <- 0                        # Constraint at time=1
set.seed(17)
dW <- rnorm(n)
W <- cumsum(dW)
B <- W + times * (target - W[n])   # The Brownian bridge from (0,0) to (1,target)
#
# The constrained excursion.
#
ymax <- max(abs(B))/5              # A nice limit for illustration
ymin <- -ymax * 2                  # Another nice limit
yrange2 <- 2*(ymax - ymin)
B2 <- (B - ymin) %% yrange2
B2 <- pmin(B2, yrange2-B2) + ymin
whuber
fuente
¿podría compartir el código de su "excursión browniana" (diagrama rojo)? A simple vista, se parece más a una especie de movimiento browniano reflejado limitado a terminar en . Creo que esto tiene una distribución bastante diferente de una excursión, que experimenta repulsión desde el origen, es decir, su realización (en rojo) parece bastante atípica. 0
P.Windridge
@ P.Windridge Lo siento; Lo olvidé: la excursión es abs(B). Recuerde, esto pretende ser un movimiento browniano condicional en dos restricciones: es igual al targettiempo y no es negativo en todas partes. 1
whuber
1
No lo he olvidado :) Estoy diciendo que creo que tiene una distribución bastante diferente a condicionado a ser positivo (es decir, una excursión) :)(abs(BBt))0t1(BBt)0t1
P.Windridge
44
Las distribuciones son diferentes, así que rechazo el voto, lo siento.
P.Windridge
2

Podría usar un método de rechazo: simule puentes brownianos y mantenga los positivos. Funciona.

Pero. Es muy lento, ya que se rechazan muchas trayectorias de muestra. Y cuanto mayor sea la "frecuencia" que establezca, es menos probable que encuentre trayectorias.

succeeded <- FALSE
while(!succeeded)
{
  bridge <- rbridge(end = 1, frequency = 500)
  succeeded=all(bridge>=0)
}
plot(bridge)

Puedes acelerarlo manteniendo las trayectorias negativas también.

while(!succeeded)
{
  bridge <- rbridge(end = 1, frequency = 500)
  succeeded=all(bridge>=0)||all(bridge<=0)
}
bridge = abs(bridge)
plot(bridge)

ingrese la descripción de la imagen aquí

RUser4512
fuente
2
El problema con este método es que si simula con un tamaño de paso más pequeño, la probabilidad de que un puente browniano sea negativo en algún momento va a 1 cercano . t=0
Alex R.
De hecho, hubo un pequeño descargo de responsabilidad;) "Y cuanto mayor sea la" frecuencia "que establezca, es menos probable que encuentre trayectorias" ... Estoy solo medio satisfecho con mi respuesta, pero esto es lo único que podría pensar sobre si tuviera que comenzar con un puente browniano. ¡Buscando (y esperando) una mejor respuesta!
RUser4512