Article 5M27R Interpolating Brownian motion

Interpolating Brownian motion

by
John
from John D. Cook on (#5M27R)

Let W(t) be a standard Wiener process, a.k.a. a one-dimensional Brownian motion.

We can produce a discrete realization of W by first setting W(0) = 0. Then let W(1) be a sample from a N(0, 1) random variable. Then let W(2) be W(1) plus another N(0, 1) sample. At each integer n > 0, W(n) equals W(n-1) plus a N(0, 1) sample. Say we do this for n up to 1000.

Then for whatever reason we wish we'd produced a discretized realization with a sample at 800.5. We could start over, generating samples at steps of size 1/2. This time we'd add a N(0, 1/2) sample at each step [1].

We'd have to throw away a lot of work. How might we reuse the values we've already sampled?

(Update: Thanks to the comments I learned that interpolating Brownian motion is called a Brownian bridge" in finance.)

The first thing you might think of might be to set W(800.5) to be the average of W(800) and W(801). That would be appropriate if we were sampling a deterministic function, but not when we're sampling a stochastic process.

To decide the right thing to do we have to look back at the definition of a standard Wiener process. The three axioms are

  1. W(0) = 0.
  2. For s > t >= 0. W(s) - W(t) has distribution N(0, s - t).
  3. For v >= u >= s >= t >= 0. W(s) - W(t) and W(v) - W(u) are independent.

Using linear interpolation violates (3) because if we set W(800.5) to be the average of W(800) and W(801), then W(801) - W(800.5) and W(800.5) - W(800) are not independent: they're equal. That's as dependent as it gets.

Another thing you might think of would be to add a N(0, 0.5) sample to W(800) because that's exactly what you'd do if you had generated the Brownian path from scratch taking step sizes 0.5. And if you threw away the samples from 801 onward and started over again, that would work. But if you want to keep W(801) and its successors, you have to do something else.

Why wouldn't this work? Because

W(801) - W(800.5)

would have too much variance, 1.5 when it should be 0.5.

The right thing to do is a sort of merger of the two ideas above: do the linear interpolation and add a N(0, 0.25) sample.

That is, we take

W(800.5) = 0.5 W(800) + 0.5 W(801) + N(0, 0.25).

Does this work? Let's check that W(801) - W(800.5) has the right distribution.

W(801) - W(800.5) = 0.5W(801) - 0.5 W(800) - N(0, 0.25)

The distribution of

X = W(801) - W(800)

is N(0, 1), so 0.5 X has distribution N(0, 0.25). Thus

W(801) - W(800.5)

has the distribution of the difference of two N(0, 0.25) random variables, which is N(0, 0.5), as it should be.

A similar argument shows that W(800.5) - W(800) also has the right distribution.

Related posts

[1] There's always some ambiguity when you see a normal distribution with numeric parameters. Is the second parameter the standard deviation or the variance? If you see N(, ) then by convention the second parameter is the standard deviation. If you see N(, ^2) then by convention the second parameter ^2 is the variance. If you see N(0, 1/2) as above, is 1/2 a standard deviation or a variance? I intend it to be a variance.

This is an example of why some have called conventional statistical notation a nomenclatural abomination." You often can't tell what a literal number means. You have to ask If you were to write that number as a variable, what notation would you use?" In this case, you'd want to know whether 1/2 is a or a ^2.

The post Interpolating Brownian motion first appeared on John D. Cook.KiUlgkOtiuA
External Content
Source RSS or Atom Feed
Feed Location http://feeds.feedburner.com/TheEndeavour?format=xml
Feed Title John D. Cook
Feed Link https://www.johndcook.com/blog
Reply 0 comments