ブラウンエクスカーションがVervaatによって次のような構成を使用して、ブリッジから構成することができる。
https://projecteuclid.org/download/pdf_1/euclid.aop/1176995155
@whuberのBBコードを使用したRでの簡単な近似は、
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")
0(0,1)
(|BBt|)0≤t≤1(BBt)0≤t≤1
6
0s602×( 4(63)=20| s2| =00212/20=0.62×(42)=12|s2|=00212/20=0.6
次に、「エクスカーション」条件付けを検討します。で終わる長さ非負の単純なパスの数は、カタロニア語の数です。正確にこれらの経路は有する。したがって、我々のSRWの確率(に滞在正および末尾に馴化「エクスカーション」ステップにおいて値0を持つ)ある。s6=2∗30Cm=3=(2mm)/(m+1)=52s2=0022/5=0.4<0.6
それでもこの現象が限界に留まっていると思われる場合は、SRWブリッジとステップ 0にヒットする長さエクスカーションの確率を検討できます。4n2n
SRWエクスカーション:ウィキペディアhttps://en.wikipedia.org/wikiの漸近線を使用/ Catalan_number。つまり、最終的にはなります。
P(S2n=0|Sj≥0,j≤4n,S4n=0)=C2n/C2n∼(42n/πn3)/(42n/(2n)3π−−−−−−√)
cn−3/2
abs(SRWブリッジ)の場合:ウィキペディアhttps://en.wikipedia.org/wiki/Binomial_coefficientの漸近線を使用します。これはようなものです。
P(|S2n|=0|S4n=0)=(2nn)2/(4n2n)∼(4n/πn−−−√)2/(42n/2nπ−−−√)
cn−1/2
言い換えると、中央付近ので正になるように条件付けされたSRWブリッジを確認する漸近確率は、ブリッジの絶対値の確率よりもはるかに小さくなります。 0
これは、ブラウン橋の代わりに3Dベッセルプロセスに基づく代替構造です。https://projecteuclid.org/download/pdf_1/euclid.ejp/1457125524で説明されている事実を使用します
概要-1)3Dベッセルプロセスをシミュレートします。これは、ポジティブであることが条件付けられたBMのようなものです。2)ベッセル3ブリッジを取得するために、適切な時空間リスケーリングを適用します(ペーパーの式(2))。3)ベッセル3橋が実際にブラウン運動と同じ分布をしているという事実(論文の定理1の直後に記されています)を使用します。
わずかな欠点は、空間/時間のスケーリングを最後に開始するために、比較的細かいグリッドでベッセルプロセスをかなり長く(T = 100以下)実行する必要があることです。
## 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")
出力は次のとおりです。