Simulando uma excursão browniana usando uma ponte browniana?


11

Gostaria de simular um processo de excursão browniana (um movimento browniano condicionado sempre será positivo quando a em ). Como um processo de excursão browniana é uma ponte browniana condicionada a ser sempre positiva, eu esperava simular o movimento de uma excursão browniana usando uma ponte browniana.0 t = 10<t<10t=1

No R, estou usando o pacote 'e1017' para simular um processo de ponte browniana. Como posso usar esse processo de ponte browniana para criar uma excursão browniana?


4
Não basta simular o valor absoluto de uma ponte browniana?
Alex R.

1
@AlexR. no [padding]
P.Windridge 26/09

1
No entanto, vale a pena refazer, no entanto, que um movimento browniano condicionado a ser positivo pode ser realizado refletindo o BM em torno de seu máximo em execução, o que é resultado de Pitman. Outra maneira de realizar um BM condicionado a permanecer positivo é pelo valor absoluto de um BM 3d .
P.Windridge 26/09

1
@AlexR. - Atualizei minha resposta abaixo para mostrar que, mesmo para caminhadas aleatórias simples, os resultados positivos do condicionamento induzem comportamentos diferentes a simplesmente pegar o valor absoluto. Para pontes brownianas especificamente, intuitivamente para pequeno , o comportamento de é como (porque ) e BM satisfaz a lei do logaritmo iterado (portanto, o " " é irrelevante para pequeno o suficiente Assim, é como um BM refletido para pequeno . Isso tem um comportamento bem diferente de condicionado a permanecer positivo ...B B t | W t B B t = W t - t W 1 O p ( t ) t | B B t | t W ttBBt|WtBBt=WttW1Op(t)t|BBt|tWt
P.Windridge

Respostas:


7

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")

insira a descrição da imagem aqui

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)insira a descrição da imagem aqui


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|)0t1(BBt)0t1

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=230Cm=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|Sj0,j4n,S4n=0)=Cn2/C2n(42n/πn3)/(42n/(2n)3π)
cn3/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π)
cn1/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: insira a descrição da imagem aqui


5

O Princípio da Reflexão afirma

se o caminho de um processo de Wiener atingir um valor no tempo , o caminho subsequente após o tempo terá a mesma distribuição que o reflexo do caminho subsequente sobre o valorf(t)f(s)=at=ssa

Wikipedia , acessado em 26/09/2017.

Consequentemente, podemos simular uma ponte browniana e refleti-la sobre o valor simplesmente tomando seu valor absoluto. A ponte Browniano é simulada subtraindo a tendência do ponto de partida para a extremidade a partir do movimento browniano em si. (Sem qualquer perda de generalidade, podemos medir o tempo em unidades que produzem Portanto, no momento simplesmente subtraia de .)a=0(0,0)(T,B(T))BT=1tB(T)tB(t)

O mesmo procedimento pode ser aplicado para exibir um movimento browniano condicional não apenas ao retornar a um valor especificado no tempo (o valor é para a ponte), mas também ao permanecer entre dois limites (que necessariamente incluem o valor inicial de no tempo e o valor final especificado).T>0000

![Figura

Esse movimento browniano começa e termina com um valor zero: é uma ponte browniana.

Figura 2

O gráfico vermelho é uma excursão browniana desenvolvida a partir da ponte browniana anterior: todos os seus valores são não-negativos. O gráfico azul foi desenvolvido da mesma maneira, refletindo a ponte browniana entre as linhas pontilhadas toda vez que as encontra. O gráfico cinza exibe a ponte browniana original.

Os cálculos são simples e rápidos: divida o conjunto de tempos em pequenos intervalos, gere incrementos normais independentes distribuídos de forma idêntica para cada intervalo, acumule-os, subtraia a tendência e faça as reflexões necessárias.

Aqui está o Rcódigo. Nele, Westá o movimento browniano original, Bé a ponte browniana e B2a excursão restrita entre dois valores especificados ymin(não positivo) e ymax(não negativo). Sua técnica para realizar a reflexão usando o %%operador de módulo e o mínimo componente a componente pminpode ser de interesse prático.

#
# 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

por favor, compartilhe o código da sua "excursão browniana" (trama vermelha). A olho, parece mais um tipo de movimento browniano refletido, restrito a terminar em . Eu acho que isso tem uma distribuição bastante diferente de uma excursão, que experimenta repulsa da origem, ou seja, sua percepção (em vermelho) parece bastante atípica. 0
P.Windridge 26/09

@ P.Windridge Desculpe; Eu esqueci: a excursão é abs(B). Lembre-se de que se trata de um movimento browniano condicional a duas restrições: é igual ao targettempo e, em toda parte, não é negativo. 1
whuber

1
Não esqueci :) Estou dizendo que acredito que tem uma distribuição bastante diferente de condicionada a ser positiva (isto é, uma excursão) :)(abs(BBt))0t1(BBt)0t1
P.Windridge

4
As distribuições são diferentes, então eu voto desculpe.
P.Windridge

2

Você pode usar um método de rejeição: simule pontes brownianas e mantenha as positivas. Funciona.

Mas. É muito lento, pois muitas trajetórias de amostra são rejeitadas. E quanto maior a "frequência" que você definir, menor a probabilidade de encontrar trajetórias.

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

Você pode acelerar mantendo as trajetórias negativas também.

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

insira a descrição da imagem aqui


2
O problema com esse método é que, se você simular com tamanho menor, a probabilidade de uma ponte browniana ser negativa em algum momento vai para 1 nas proximidades . t=0
Alex R.

De fato, houve um pequeno aviso;) "E quanto maior a" frequência "que você definir, menor a probabilidade de encontrar trajetórias." ... Estou apenas meio satisfeito com a minha resposta, mas é a única coisa que posso pensar sobre se eu tivesse que começar com uma ponte browniana. Procurando (e esperando) por uma resposta melhor!
RUser4512
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.