使用布朗桥模拟布朗旅行?


11

我想以模拟布朗偏移处理(即空调总是正的一个布朗运动时到在)。由于Brownian偏移过程是一个条件为始终为正的Brownian桥,因此我希望使用Brownian桥来模拟Brownian偏移的运动。0 t = 10<t<10t=1

在R中,我正在使用“ e1017”包来模拟布朗桥过程。如何使用该布朗桥过程创建布朗漂移?


4
模拟布朗桥的绝对值是否足够?
亚历克斯R.15年

1
@AlexR。否[填充]
P.Windridge

1
但是,值得重做的是,可以通过在BM的运行最大值附近反映BM来实现条件为正的布朗运动,这是Pitman的结果。实现保持正值的BM的另一种方法是3d BM的绝对值。
P.Windridge

1
@AlexR。-我在下面更新了我的答案,以表明即使对于简单的随机行走,积极的调节结果也会导致不同的行为,从而简单地取绝对值。具体地说,对于布朗桥,直观地针对小,的行为类似于(因为),而BM满足迭代对数律(因此,“ ”对于足够小的不相关因此,就像是小的反射BM,这与保持正值的行为 ...tBBt|WtBBt=WttW1| B B t | Ť W¯¯ ŤOp(t)t|BBt|tWt
P.Windridge

Answers:


7

可以使用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")

在此处输入图片说明

这是另一幅图(来自set.seed(21))。关于偏移的一个关键观察结果是,条件实际上表现为从0开始的“排斥”,并且您不太可能在的内部看到偏移接近于。 0 1 0(0,1)在此处输入图片说明


除了:一个布朗桥的绝对值的分布和偏移,调节为正,是不一样。从直觉上讲,偏移是从原点排斥的,因为太靠近原点的布朗路径很可能在不久之后变为负值,因此受到条件的影响。0 1(|BBt|)0t1(BBt)0t1

甚至可以通过一个简单的随机步行桥和步骤的偏移进行说明,这是BM的自然离散模拟(并且随着步骤变大并重新缩放,会收敛到BM)。6

实际上,采用从开始的对称SRW 。首先,让我们考虑“桥接”条件,看看如果我们只取绝对值会发生什么。考虑所有长度为简单路径,它们从开始和结束。这样的路径数为。其中有,其中。换句话说,对于概率绝对值我们的SRW“桥”(在调节至端的)在步骤以具有值0是。6 00s60(63)=202×(42)=12|s2|=00212/20=0.6

其次,我们将考虑“游览”条件。长度为以结尾的非负简单路径的数量是加泰罗尼亚语数。恰好这些路径具有。因此,对于我们的SRW“偏移”(在调节以保持积极和结束的概率),在步骤以具有值0是。s6=230Cm=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|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


这是基于3D贝塞尔(Bessel)过程而不是布朗桥的替代构造。我使用https://projecteuclid.org/download/pdf_1/euclid.ejp/1457125524中解释的事实

概述-1)模拟3d Bessel过程。这就像将BM调整为正数一样。2)应用适当的时空缩放,以获得Bessel 3桥(本文中的公式(2))。3)利用贝塞尔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

反射原理断言

如果维纳进程的路径达到一个值在时间,则随后的路径时间之后具有相同的分布作为随后路径的有关值的反射f(t)f(s)=at=ssa

Wikipedia,访问9/26/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

@ P.Windridge对不起;我忘了:这次旅行是abs(B)。请记住,这旨在成为有两个约束条件的布朗运动:它等于target时间并且在各处都是非负的。1
whuber

1
我没有忘记:)我是说,我相信有一个相当不同的分布调节至是积极的(即游览):)(abs(BBt))0t1(BBt)0t1
P.Windridge

4
发行版有所不同,所以我很抱歉。
P.Windridge

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
Alex R.

确实,有一个小的免责声明;)“并且您设置的“频率”越大,找到轨迹的可能性就越小。” ...我对自己的回答只满意一半,但这是我唯一能想到的关于我是否必须从布朗桥开始。寻找(并等待)更好的答案!
RUser4512
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.