Имитация броуновской экскурсии с использованием броуновского моста?


11

Я хотел бы смоделировать броуновский экскурсионный процесс (обусловленное броуновское движение всегда будет положительным при 0<t<1 до 0 при t=1 ). Поскольку броуновский экскурсионный процесс - это броуновский мост, который всегда должен быть положительным, я надеялся смоделировать движение броуновской экскурсии с использованием броуновского моста.

В R я использую пакет 'e1017' для имитации процесса броуновского моста. Как я могу использовать этот процесс броуновского моста для создания броуновской экскурсии?


4
Не достаточно ли имитировать абсолютную величину броуновского моста?
Алекс Р.

1
@AlexR. нет [padding]
П.Уиндридж

1
Тем не менее, стоит переделать, хотя броуновское движение, обусловленное положительным положением, может быть реализовано путем отражения БМ вокруг его максимума бега, что является результатом благодаря Питману. Другой способ реализовать БМ, обусловленный тем, чтобы оставаться положительным, - это абсолютное значение 3d БМ .
П.Уиндридж

1
tBBt|WtBBt=WttW1Op(t)t|BBt|tWt

Ответы:


7

Броуновская экскурсия может быть построена из моста, используя следующую конструкцию Vervaat: https://projecteuclid.org/download/pdf_1/euclid.aop/1176995155

Быстрое приближение в R с использованием 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")

введите описание изображения здесь

0(0,1)введите описание изображения здесь


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

6

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

Во-вторых, мы рассмотрим «экскурсионную» обусловленность. Число неотрицательных простых путей длиной которые заканчиваются на является каталонским числом . Ровно из этих путей есть . Таким образом, вероятность того, что наша «экскурсия» в ТРО (при условии сохранения положительного результата и окончания в ) будет иметь значение 0 на шаге составляет .s6=230Cm=3=(2mm)/(m+1)=52s2=0022/5=0.4<0.6

Если вы все еще сомневаетесь в том, что это явление сохраняется в пределе, вы можете рассмотреть вероятность того, что мосты ТРО и отклонения длиной достигнут 0 на шаге .4n2n

Для экскурсии по ТРО: с использованием асимптотики из википедии https://en.wikipedia.org/wiki Каталонский номер . Т.е. это как конце концов.

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

Для abs (мост SRW): с использованием асимптотики из википедии https://en.wikipedia.org/wiki/Binomial_coefficient . Это как .

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

Другими словами, асимптотическая вероятность увидеть мост SRW, обусловленный положительным значением в вблизи середины, намного меньше, чем для абсолютного значения моста. 0


Вот альтернативная конструкция, основанная на трехмерном процессе Бесселя вместо броуновского моста. Я использую факты, описанные в https://projecteuclid.org/download/pdf_1/euclid.ejp/1457125524

Обзор- 1) Имитация процесса Бесселя. Это как БМ, обусловленный быть позитивным. 2) Примените соответствующее пространственно-временное масштабирование, чтобы получить мост Бесселя 3 (уравнение (2) в статье). 3) Используйте тот факт (отмеченный сразу после теоремы 1 в статье), что мост Бесселя 3 фактически имеет то же распределение, что и броуновская экскурсия.

Небольшой недостаток заключается в том, что вам нужно довольно долго запускать процесс Бесселя (ниже 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

Принцип отражения утверждает

если путь винеровского процесса достигает значения в момент времени , то последующий путь после времени имеет такое же распределение, что и отражение последующего пути относительно значенияf(t)f(s)=at=ssa

Википедия , доступ к 26.09.2017.

Соответственно, мы можем смоделировать броуновский мост и отразить его относительно значения просто взяв его абсолютное значение. Броуновский мост моделируется путем вычитания тренда от начальной точки до конца от броуновского движения сам. (Без потери общности мы можем измерить время в единицах, которые составляют Таким образом, в момент времени просто вычтите из .)a=0(0,0)(T,B(T))BT=1tB(T)tB(t)

Та же процедура может быть применена для отображения условия броуновского движения не только при возврате к указанному значению в момент времени (значение для моста), но также и при оставлении между двумя пределами (которые обязательно включают начальное значение от в момент времени и заданного конечного значения).T>0000

! [Рисунок

Это броуновское движение начинается и заканчивается значением ноль: это броуновский мост.

фигура 2

Красный график - это броуновская экскурсия, разработанная на основе предыдущего броуновского моста: все его значения неотрицательны. Синий график был разработан таким же образом, отражая броуновский мост между пунктирными линиями каждый раз, когда он сталкивается с ними. Серый график отображает оригинальный броуновский мост.

Расчеты просты и быстры: разделите набор времен на небольшие интервалы, сгенерируйте независимые одинаково распределенные нормальные приращения для каждого интервала, накапливайте их, вычитайте тренд и выполняйте любые необходимые отражения.

Вот Rкод. В нем Wесть исходное броуновское движение, Bброуновский мост и B2отклонение, ограниченное двумя указанными значениями ymin(неотрицательные) и ymax(неотрицательные). Его методика выполнения отражения с использованием %%оператора модуля и компонентного минимума 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 Извините; Я забыл: экскурсия есть abs(B). Помните, что это броуновское движение, обусловленное двумя ограничениями: оно равно targetв момент времени и везде неотрицательно. 1
whuber

1
Я не забыл :) Я говорю, что я считаю, что имеет довольно другое распределение к обусловленное быть позитивным (то есть экскурсия) :)(abs(BBt))0t1(BBt)0t1
P.Windridge

4
Распределения разные, поэтому я извиняюсь.
П.Уиндридж

2

Вы можете использовать метод отклонения: моделировать броуновские мосты и сохранять положительные. Оно работает.

Но. Это очень медленно, так как многие траектории выборки отбрасываются. И чем большую «частоту» вы устанавливаете, тем меньше вероятность того, что вы найдете траектории.

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
Алекс Р.

Действительно, был небольшой отказ от ответственности;) «И чем большую« частоту »вы установили, тем меньше вероятность того, что вы найдете траектории.» ... Я только наполовину удовлетворен своим ответом, но это единственное, о чем я мог подумать о, если бы мне пришлось начать с броуновского моста. Ищу (и жду) лучшего ответа!
RUser4512
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.