Brownian Bridge를 사용하여 Brownian 여행을 시뮬레이션 하시겠습니까?


11

Brownian 소풍 과정을 시뮬레이션하고 싶습니다 ( 에서 ~ 일 때 조절되는 Brownian 모션은 항상 양수입니다 ). Brownian 소풍 과정은 항상 긍정적 인 조건을 가진 Brownian 교량이므로 Brownian 교량을 사용하여 Brownian 소풍의 움직임을 시뮬레이션하기를 바랐습니다.0 t = 10<t<10t=1

R에서는 브라운 브리지 프로세스를 시뮬레이션하기 위해 'h1017'패키지를 사용하고 있습니다. 이 브라운 브리지 프로세스를 사용하여 브라운 여행을 만들려면 어떻게해야합니까?


4
브라운 브리지의 절대 가치를 시뮬레이션하는 것으로 충분하지 않습니까?
Alex R.

1
@AlexR. 아니오 [패딩]
P.Windridge

1
그러나 긍정적 인 조건으로 조절 된 브라운 운동은 BM을 최대 실행 주위에 반영하여 실현할 수 있지만 Pitman으로 인한 결과입니다. BM을 긍정적으로 유지하기위한 또 다른 방법은 3D BM 의 절대 값에 의한 것 입니다.
P.Windridge

1
@AlexR. -간단한 무작위 보행에서도 긍정적 인 컨디셔닝 결과가 단순히 절대 값을 취하는 다른 행동을 유도함을 보여주기 위해 아래 답변을 업데이트했습니다. 브라운 다리를 들어 구체적으로, 직관적으로 작은을위한 의 행동 같다 (때문에 ) 및 BM 만족은 반복되는 대수의 법칙 ((가) "그래서 "작은 정도에 무관 따라서, 는 작은 대해 반영된 BM과 같으며 이는 와는 상당히 다른 거동을 가지고있어 긍정적 인 상태를 유지합니다.B B t | W t B B t = W tt W 1 O p ( t ) t | B B t | t ttBBt|WtBBt=WttW1Op(t)t|BBt|tWt
P.Windridge

답변:


7

Vervaat의 다음 구성을 사용하여 다리에서 Brownian 여행을 구성 할 수 있습니다. 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")

여기에 이미지 설명을 입력하십시오

다음은 또 다른 음모입니다 (set.seed (21)). 소풍에 대한 주요 관찰은 컨디셔닝이 실제로 0에서 "반발"로 나타나고 내부에서 소풍이 에 가까운 것을 볼 수 없을 것 입니다. ( 0 , 1 )0(0,1)여기에 이미지 설명을 입력하십시오


옆으로 : 브라운 브리지의 절대 값 분포 와 소풍 양수양수 로 조절됩니다. 동일하지 않습니다. 직관적으로, 출발점에서 너무 가까운 브라운 경로가 곧 마이너스로 이동하여 컨디셔닝에 의해 처벌되기 때문에 여행은 출발점에서 반발됩니다. ( B B t ) 0 t 1(|BBt|)0t1(BBt)0t1

이것은 간단한 랜덤 워크 브리지와 단계의 여행으로 설명 될 수 있습니다. 이는 단계의 자연스러운 이산 유사체입니다.6

실제로 에서 시작하여 대칭 SRW를 가져옵니다 . 먼저, "브릿지"컨디셔닝을 고려하고 절대 값 만 취하면 어떻게되는지 봅시다. 모든 단순 경로 고려 길이의 에서 시작 및 종료 . 이러한 경로의 수는 입니다. 이 중 가 있습니다. 입니다. 다시 말해, 단계에서 SRW "브리지" 의 절대 값 ( 으로 끝나 도록 조정 됨)이 0을 가질 확률 은 입니다.6 00s60(63)=202×(42)=12|s2|=00212/20=0.6

둘째, 우리는 "소풍"조절을 고려할 것입니다. 으로 끝나는 길이 음이 아닌 단순 경로 수는 카탈로니아 어 숫자 입니다. 이 경로 중 정확히 는 입니다. 따라서, 단계 에서 SRW "소풍"(양으로 유지되고 끝나는 조건 )이 을 가질 확률 은 입니다.s6=230Cm=3=(2mm)/(m+1)=52s2=0022/5=0.4<0.6

경우 당신은 여전히 당신은 SRW의 다리와 길이의 여행을위한 확률 고려할 수 제한이 현상이 지속 의심 단계에서 공을 치는 .4n2n

SRW 여행 : 위키 백과의 증상을 이용한 https://en.wikipedia.org/wiki / Catalan_number . 즉, 결국 와 같습니다 .

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

abs (SRW 브리지) : wikipedia https://en.wikipedia.org/wiki/Binomial_coefficient 의 점근 법을 사용합니다 . 이것은 .

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

다시 말해, SRW 브리지가 근처 에서 양의 으로 설정 될 수있는 점근 적 확률은 브리지 의 절대 값보다 훨씬 작습니다. 0


다음은 브라운 브리지 대신 3D 베셀 프로세스를 기반으로 한 대체 구성입니다. https://projecteuclid.org/download/pdf_1/euclid.ejp/1457125524 에서 설명한 사실을 사용합니다.

개요-1) 3D Bessel 프로세스를 시뮬레이션합니다. 이것은 긍정적으로 조절 된 BM과 같습니다. 2) Bessel 3 브리지를 얻기 위해 적절한 시공간 크기 조정을 적용하십시오 (서류의 식 (2)). 3) Bessel 3 다리가 실제로 브라운 여행과 같은 분포를 가지고 있다는 사실을 (종이의 정리 1 바로 뒤에 표시) 사실을 사용하십시오.

약간의 단점은 공간 / 시간 스케일링이 끝날 때까지 비교적 미세한 그리드에서 Bessel 프로세스를 꽤 오랫동안 (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")

출력은 다음과 같습니다. 여기에 이미지 설명을 입력하십시오


5

원리는 반사 주장

Wiener 프로세스 의 경로가 시간 에서 값 에 도달하면 시간 이후의 후속 경로는 값 대한 후속 경로의 반사와 동일한 분포를 갖f(t)f(s)=at=ssa

Wikipedia , 2017 년 9 월 26 일 액세스.

따라서 우리는 브라운 브리지를 시뮬레이션하고 단순히 절대 값을 취함으로써 값 에 대해 반영 할 수 있습니다. Brownian 브리지는 Brownian 모션 자체 에서 시작점 에서 끝 까지의 추세를 빼서 시뮬레이션 합니다. (일반성을 잃지 않고 우리는 을 만드는 단위로 시간을 측정 할 수 있습니다 . 따라서 시간 단순히 에서 를 빼십시오 .)a=0(0,0)(T,B(T))BT=1tB(T)tB(t)

동일한 절차를 적용하여 시간 에서 지정된 값으로 복귀 할 때 ( 브릿지의 경우 값은 임), 두 개의 한계 (필수 시작 값을 반드시 포함해야 함) 사이에도 브라운 운동 조건을 표시 할 수 있습니다. 의 번 ) 지정된 끝 값.T>0000

![그림

이 브라운 운동은 0의 값으로 시작하고 끝납니다. 브라운 브리지입니다.

그림 2

빨간색 그래프는 이전 브라운 브리지에서 개발 된 브라운 여행입니다. 모든 값은 음이 아닙니다. 파란색 그래프는 마주 칠 때마다 점선 사이에 브라운 브리지를 반영하여 동일한 방식으로 개발되었습니다. 회색 그래프는 원래 브라운 브리지를 표시합니다.

계산은 간단하고 빠릅니다. 시간 집합을 작은 간격으로 나누고, 각 간격에 대해 독립적으로 동일하게 분포 된 정규 증가분을 생성하고, 누적하고 추세를 빼고 필요한 반사를 수행합니다.

R코드 는 다음과 같습니다 . 여기에는 W원래 브라운 운동, B브라운 다리, 양수 (비 양수) 및 (음수가 아닌 ) B2사이의 제한이 있습니다. 모듈러스 연산자 및 성분 별 최소값을 사용하여 반사를 수행하는 기술 이 실질적으로 관심이있을 수있다.yminymax%%pmin

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

"브라질 여행"(빨간 줄거리)에 대한 코드를 공유 할 수 있습니까? 눈으로 보면 에서 끝나도록 구속 된 일종의 반사 된 브라운 운동처럼 보입니다 . 나는 이것이 출발점으로부터의 반발을 경험하는 여행과는 다소 다른 분포를 가지고 있다고 생각합니다. 즉, 당신의 실현 (빨간색)은 다소 비정형 적입니다. 0
P.Windridge

@ P.Windridge 죄송합니다. 나는 잊었다 : 소풍은이다 abs(B). 이것은 두 가지 제약 조건에 대한 브라운 운동 조건을위한 것임을 명심하십시오 : 그것은 target시간 과 같고 어디에서나 음이 아닙니다. 1
whuber

1
나는 잊지 않고 : 내가 믿는다 고 말하고 에 오히려 다른 분포가 로 조절 긍정적 (즉, 여행) :) ( B B t ) 0 t 1(abs(BBt))0t1(BBt)0t1
P.Windridge

4
배포판이 다르므로 유감스럽게 생각합니다.
P.Windridge

2

거부 방법을 사용할 수 있습니다. Brownian 교량을 시뮬레이션하고 긍정적 인 교량을 유지하십시오. 효과가있다.

그러나. 많은 샘플 궤적이 거부되므로 매우 느립니다. "주파수"가 클수록 궤도를 찾을 가능성이 줄어 듭니다.

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

부정적인 궤도를 유지하면서 속도를 높일 수 있습니다.

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

여기에 이미지 설명을 입력하십시오


2
이 방법의 문제점은 더 작은 단계 화로 시뮬레이션하면 어떤 시점에서 브라운 브리지가 음수 일 확률은 근처 1이된다는 것 입니다. t=0
Alex R.

사실, 작은 면책 조항이있었습니다. ""설정 한 "빈도"가 클수록 궤적을 찾을 가능성이 줄어 듭니다. "... 내 대답에 절반 만 만족하지만 이것이 내가 생각할 수있는 유일한 것입니다. 브라운 다리로 시작해야하는지 더 나은 답변을 찾고 기다리고 있습니다!
RUser4512
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.