Uma excursão browniana pode ser construída a partir de uma ponte usando a seguinte construção de Vervaat:
https://projecteuclid.org/download/pdf_1/euclid.aop/1176995155
Uma aproximação rápida em R, usando o código BB @ whuber, é
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")
Aqui está outro gráfico (de set.seed (21)). Uma observação importante em uma excursão é que o condicionamento realmente se manifesta como uma "repulsão" de 0, e é improvável que você veja uma excursão chegar perto de no interior de .
( 0 , 1 )0(0,1)
Além: A distribuição do valor absoluto de uma ponte browniana e a excursão, condicionada a ser positiva , são não é o mesmo. Intuitivamente, a excursão é repelida a partir da origem, porque os caminhos brownianos que se aproximam demais da origem provavelmente serão negativos logo depois e, portanto, serão penalizados pelo condicionamento. ( B B t ) 0 ≤ t ≤ 1(|BBt|)0≤t≤1(BBt)0≤t≤1
Isso pode até ser ilustrado com uma ponte de caminhada aleatória simples e uma excursão em etapas, que é um análogo natural e discreto da BM (e converge para BM à medida que as etapas se tornam grandes e você redimensiona).6
Na verdade, use um SRW simétrico a partir de . Primeiro, vamos considerar o condicionamento da "ponte" e ver o que acontece se considerarmos o valor absoluto. Considere todos os caminhos simples de comprimento que começam e terminam em . O número desses caminhos é . Existem para os quais . Em outras palavras, a probabilidade do valor absoluto da nossa "ponte" SRW (condicionada ao final em ) ter o valor 0 na etapa é .s 6 00s60(63)=202×(42)=12|s2|=00212/20=0.6
Em segundo lugar, consideraremos o condicionamento da "excursão". O número de caminhos simples não negativos de comprimento que terminam em é o número catalão . Exatamente desses caminhos têm . Assim, a probabilidade de nossa "excursão" SRW (condicionada a permanecer positiva e terminar em ) ter valor 0 na etapa é .s6=2∗30Cm=3=(2mm)/(m+1)=52s2=0022/5=0.4<0.6
Caso você ainda duvide que esse fenômeno persista no limite, considere a probabilidade de pontes SRW e excursões de comprimento atingir 0 na etapa .4n2n
Para a excursão SRW: temos usando os aysmptotics da wikipedia https://en.wikipedia.org/wiki / Catalan_number . Ou seja, é como eventualmente.
P(S2n=0|Sj≥0,j≤4n,S4n=0)=C2n/C2n∼(42n/πn3)/(42n/(2n)3π−−−−−−√)
cn−3/2
Para abs (ponte SRW): usando os assintóticos da wikipedia https://en.wikipedia.org/wiki/Binomial_coefficient . É como .
P(|S2n|=0|S4n=0)=(2nn)2/(4n2n)∼(4n/πn−−−√)2/(42n/2nπ−−−√)
cn−1/2
Em outras palavras, a probabilidade assintótica de ver a ponte SRW condicionada a ser positiva em próximo ao meio é muito menor do que a do valor absoluto da ponte. 0
Aqui está uma construção alternativa baseada em um processo 3D Bessel em vez de uma ponte browniana. Uso os fatos explicados em https://projecteuclid.org/download/pdf_1/euclid.ejp/1457125524
Visão geral- 1) Simule um processo 3d Bessel. É como um BM condicionado a ser positivo. 2) Aplique um redimensionamento de espaço-tempo apropriado para obter uma ponte de Bessel 3 (Equação (2) no artigo). 3) Use o fato (observado logo após o Teorema 1 no artigo) de que uma ponte de Bessel 3 realmente tem a mesma distribuição que uma excursão browniana.
Uma pequena desvantagem é que você precisa executar o processo de Bessel por um bom tempo (T = 100 abaixo) em uma grade relativamente fina para que a escala de espaço / tempo seja ativada no 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")
Aqui está a saída: