3  Ito Processes and Ito’s Formula

We use the changes of a Brownian motion to model randomness. We build other stochastic processes using those changes. The general idea is change=mean+std dev×change in Brownian motion. The mathematical foundations for our construction were created by K. Ito. The key concepts are the Ito integral, Ito processes, and Ito’s formula (also called Ito’s lemma). Using these foundations, we can build quite general processes from changes in Brownian motions, including processes with non-normal distributions.

3.1 Examples

We begin with some simple examples. Consider a discrete partition of a time interval: 0=t0<t1<<tn1<tn=t with equally spaced times. Let Δt denote the difference between successive times.

First, let’s drop the randomness entirely. Consider the equation XtiXti1=μXti1Δt(3.1) for a constant μ. Thus, we have “change = mean,” where the mean is proportional to the previous value with proportionality factor μΔt. presents a plot of X, for particular values of X0, μ, and Δt.

If we increase n, making Δt smaller, then X converges to the solution of the ordinary differential equation dXt=μXtdt.(3.2) has a known solution, which is Xt=X0eμt.(3.3) To verify this, we only need to differentiate X defined in : dXtdt=μX0eμt=μXt. The function presented in is also shown in .

To see how one might guess that is the solution of , we can examine the logarithm of X. A general rule gives us dlogX=dX/X, so dlogX=μdt. We can integrate both sides of this to obtain logXtlogX0=μt. Now, rearranging and exponentiating gives Xt=X0eμt. Later, we follow similar steps to see that is the solution of .

Code
import numpy as np
import plotly.graph_objects as go

mu = 1
n = 10   # number of subdivisions
t = 1     # last date
Deltat = t/n
X1 = np.ones(n+1)
for i in range(1, n+1):
    X1[i] = X1[i-1] + mu * X1[i-1] * Deltat

X2 = np.exp(mu * np.arange(0, t+Deltat, Deltat))

fig = go.Figure()
fig.add_trace(
    go.Scatter(
        x=np.arange(0, t+Deltat, Deltat), 
        y=X1, 
        mode='markers', 
        name='Difference Eq.',
        hovertemplate='t = %{x:.2f}<br>B = %{y:.2f}<extra></extra>'  # 
    )
)

fig.add_trace(
    go.Scatter(
        x=np.arange(0, t+Deltat, Deltat), 
        y=X2, 
        mode='lines', 
        name='Differential Eq.',
        hovertemplate='t = %{x:.2f}<br>B = %{y:.2f}<extra></extra>'  # 
    )
)
fig.update_layout(
    showlegend=True,
    xaxis_title='Time',
    yaxis_title='',
    template='plotly_white',
    height=300,
    legend=dict(
        x=0.1,
        y=1,
        xanchor="left",
        yanchor="top",
    )
)

fig.show()
Figure 3.1: The functions X satisfying (difference equation) and (differential equation) for X0 = 1, mu = 1, and Delta t = 0.1.

Now, let’s include randomness. Let’s make the noise proportional to the value of X, So, let B be a standard Brownian motion and consider the equation XtiXti1=μXti1Δt+σXti1ΔBti(3.4) where σ is another constant, and ΔBti=BtiBti1. A solution X of this equation has random paths, due to the random noise ΔBti. An example of a path is shown in . Ito showed how we can take the limit of this equation as we make Δt smaller and make sense of the equation dXt=μXtdt+σXtdBt.(3.5) The solution X of is Xt=e(μσ2/2)t+σBt.(3.6) We can show that X defined in satisfies by differentiating, as we showed that X defined in satisfies . However, we first need to explain Ito’s formula, which is a formula for differentiating functions of Brownian motions and, more generally, functions of Ito processes. An approximate path of X is shown in . It is generated by taking Δt very small, just as we generated approximate paths of Brownian motions in .

Code
import numpy as np
import plotly.graph_objects as go

mu = 1
sigma = 1
t = 1

# Brownian path
n = 1000   
dt = t/n
dB = np.random.normal(scale = np.sqrt(dt), size=n)
B = np.zeros(n+1)
B[1:] = np.cumsum(dB)

# Brownian path with discrete steps
n_discrete = 10
Deltat = t/n_discrete
B_discrete = B[::int(n/n_discrete)]
DeltaB = np.diff(B_discrete)

# X in discrete-time 
X1 = np.ones(n_discrete+1)
for i in range(1, n_discrete+1):
    X1[i] = X1[i-1] + mu * X1[i-1] * Deltat + sigma * X1[i-1] * DeltaB[i-1]

# Continuous-time
X2 = np.exp((mu - 0.5 * sigma**2) * np.arange(0, t+dt, dt) + sigma * B)

fig = go.Figure()
fig.add_trace(
    go.Scatter(
        x=np.arange(0, t+Deltat, Deltat), 
        y=X1, 
        mode='markers', 
        name='Difference Eq.',
        hovertemplate='t = %{x:.2f}<br>B = %{y:.2f}<extra></extra>'  # 
    )
)

fig.add_trace(
    go.Scatter(
        x=np.arange(0, t+dt, dt), 
        y=X2, 
        mode='lines', 
        name='Differential Eq.',
        hovertemplate='t = %{x:.2f}<br>B = %{y:.2f}<extra></extra>'  # 
    )
)
fig.update_layout(
    showlegend=True,
    xaxis_title='Time',
    yaxis_title='',
    template='plotly_white',
    height=300,
    legend=dict(
        x=0.1,
        y=1,
        xanchor="left",
        yanchor="top",
    )
)

fig.show()
Figure 3.2: Paths of the processes satisfying (difference equation) and (differential equation) for X0 = 1, mu = 1, Delta t = 0.1, and sigma = 1.

The functions and processes X defined in this section have important interpretations. can be rewritten to say that the percent change in X is μΔt. This could represent the value of a savings account that earns interest of μΔt in each period of length Δt. This is the common way of calculating, for example, monthly interest, where μ is called the annual rate of interest and Δt would be 1/12. The limiting is called continuous compounding of interest.

Similarly, can be rewritten to say that the percent change in X is μΔt+σΔB. This represents a random rate of return – for example, the return of a stock. The expected rate of return in this case is μΔt, and the variance of the rate of return is σ2Δt. The limiting is called continuous compounding of returns.

3.2 Ito Processes

The meaning of is that, for all t>0, Xt=X0+0tμXsds. We assume the reader is familiar with integrals, so we do not explain this further. The function of time X defined in satisfies this equation. Similarly, the meaning of is that, for all t>0, Xt=X0+0tμXsds+0tσXsdBs. The first integral in this formula is an ordinary integral. The second is an Ito integral, which is to be explained. The sum of an ordinary integral and an Ito integral is called an Ito process. An Ito process always has continuous paths.

Let’s depart from the example of the previous section and consider a process X satisfying, for all t>0, Xt=0tαsds+0tθsdBs.(3.7) where α and θ can be stochastic processes. The example of the previous section fits this form, because we could take αs=μXs and θs=σXs. The definition of the Ito integral 0tθsdBs is relatively complicated. It is enough for our purposes to know that it can be approximated by a discrete sum i=1nθti1(BtiBti1), given a partition 0=t0<<tn=t, when n is large and the time between successive dates is small. The Ito integral exists provided θ does not anticipate the future (so θti1 is independent of the increment BtiBti1) and provided θ does not explode to ± in finite time, so 0tθs2ds< for all t>0, with probability one.

We also write as dXt=αtdt+θtdBt.(3.8) We interpret this as “change = mean + noise” with αtdt being the mean and θtdBt being the mean-zero random noise. The quantity αt is also called the drift of the process X at time t. The coefficient θt is called the diffusion coefficient of X at time t. If α and θ are constant, it is standard to refer to an Ito process X as a (α,θ)–Brownian motion. When they are constant, we obtain Xt=X0+αt+θBt.

An Ito process as in can be a martingale only if α=0. This should seem sensible, because αdt is the expected change in X, and a process is a martingale only if its expected change is zero. This observation plays a fundamental role in deriving asset pricing formulas. Conversely, if α=0 and E[0tθs2ds]<(3.9) for each t, then the Ito process is a continuous martingale, and the variance of its date–t value, calculated with the information available at date 0, is: var(Xt)=E[0tθt2ds].

3.3 Quadratic and Joint Variation of Ito Processes

To compute the quadratic variation of an Ito process, we use the following simple and important rules (for the sake of brevity, we drop the subscript t from Bt here and sometimes later). These rules should be regarded as mnemonic devices. The calculations we do with them lead to the correct results, but the objects have no real mathematical meaning.

Important Principle

(dt)2=0,(3.10)

(dt)(dB)=0,(3.11)

(dB)2=dt.(3.12)

We apply these rules to compute the quadratic variation of any Ito proces X as follows:

Important Principle

If dX=αdt+θdB for a Brownian motion B, then (dX)2=(αdt+θdB)2=α2(dt)2+2αθ(dt)(dB)+θ2(dB)2=θ2dt. To compute the quadratic variation of the Ito process X over any particular period of time, we integrate (dX)2 over that period as] 0t(dXs)2=0tθs2ds.(3.13)

Now consider two Ito processes: dX1t=μ1tdt+σ1tdB1t,(3.14)

dX2t=μ2tdt+σ2tdB2t,(3.15)

where B1 and B2 are standard Brownian motions. We calculate the product of differentials of Ito processes as follows.

Important Principle

If X1 and X2 are Ito processes as in and , then (dX1)(dX2)=(σ1dB1)(σ2dB2)=σ1σ2ρdt(3.16) where ρ is the correlation process of the two Brownian motions.

The real meaning of this rule is that it is possible to calculate the joint variation (i.e., limit of sum of products of changes) of the two Ito processes from 0 to t as 0t(dX1s)(dX2s)=0t(σ1sdB1s)(σ2sdB2s)=0tσ1sσ2sρsds.(3.17) The last integral in this equation is the correct formula for the quadratic variation. As with squaring differentials, taking products of differentials is a mnemonic device to get us to the correct formula.

3.4 Introduction to Ito’s Formula

First we recall some facts of the ordinary calculus. If y=f(x) and xt=g(t) with f and g being continuously differentiable functions, then dydt=dydx×dxdt=f(xt)g(t). This implies that, for each t>0, yt=f(xt)=y0+0tdydsds=y0+0tf(xs)g(s)ds. Substituting dxs=g(s)ds, we can also write this as yt=f(xt)=y0+0tf(xs)dxs,(3.18) or, in differential form, dyt=f(xt)dxt.(3.19) What people frequently remember about integrals from their calculus courses is that there are a lot of tricky substitutions that can be made to simplify the calculation of various integrals. We won’t need those in this book. All we will use are equations of the form of , which is a special case of the Fundamental Theorem of Calculus, which says that a function is the integral of its derivative. Intuitively, we can think of as saying that the change in y over a discrete interval (from 0 to t) is the continuous sum (integral) of its infinitesimal changes.

We will contrast with the following special case of Ito’s formula for the calculus of Ito processes.

Important Principle

If B is a Brownian motion and Y=f(B) for a twice-continuously differentiable function f, then dYt=f(Bt)dBt+12f(Bt)dt.(3.20)

Comparing to , we see that Ito’s formula has an extra term involving the second derivative f.

implies that Y=f(B) is an Ito process with drift f(Bt)/2 and diffusion coefficient f(Bt). The real meaning of is the integrated form: Yt=f(Bt)=Y0+0tf(Bs)dBs+120tf(Bs)ds.(3.21) Thus, the change in Y over a discrete interval is again the continuous sum of its infinitesimal changes, but now the infinitesimal changes are given by . Note that the first integral in is an Ito integral.

To gain some intuition for the extra term in Ito’s formula, we return to the ordinary calculus. Given dates s<t, the derivative defines a linear approximation of the change in y from s to t; that is, setting Δx=xtxs and Δy=ytys, we have the approximation Δyf(xs)Δx. A better approximation is given by the second-order Taylor series expansion Δyf(xs)Δx+12f(xs)(Δx)2. An interpretation of is that the linear approximation works perfectly for infinitesimal time periods ds, because we can compute the change in y over the time interval [0,t] by summing up the infinitesimal changes f(xs)dxs. In other words, the second-order term 12f(xs)(Δx)2 vanishes when we consider very short time periods.

The second-order Taylor series expansion in the case of Y=f(B) is ΔYf(Bs)ΔB+12f(Bs)(ΔB)2. For example, given a partition 0=t0<t1<<tn=t of the time interval [0,t], we have, with the same notation we have used earlier,

Yt=Y0+i=1nΔYtiY0+i=1nf(Bti1)ΔBti+12i=1nf(Bti1)(ΔBti)2.(3.22)

If we make the time intervals titi1 shorter, letting n, then we cannot expect that the extra term here will disappear, leading to the result of the ordinary calculus shown in , because we know that limni=1n(ΔBti)2=t, whereas for the continuously differentiable function xt=g(t), the same limit is zero. In fact it seems sensible to interpret the limit of (ΔB)2 as (dB)2=dt. This is perfectly consistent with Ito’s formula: if we take the limit in , replacing the limit of (ΔBti)2 with (dB)2=dt, we obtain .

To see the accuracy of Ito’s approximation over different time steps, as well as the impact of the second-derivative term 0t(1/2)f(Bs)ds, we encourage readers to interact with the plot below. It examines the function f(x)=ex (for which we have f(x)=ex and f(x)=ex). It simulates an approximate path of a Brownian motion as we have done before. It then compares the true value of eBti to the Ito expansion eBt=1+0teBsdBs+120teBsds using the discretization ΔeBti=eBti1ΔBti+12eBti1Δt. Notice that the discretization is just a second-order Taylor series expansion. The discretization approximates the true value better if we take n larger and Δt smaller. The important take-away from the figure is that the cumulative second-derivative terms in the discretization do not vanish as we take n larger but instead continue to contribute significantly to the approximation.

Figure 3.3: Accuracy of Ito Approximation

3.5 Functions of Time and a Brownian Motion

We extend the example in the previous section slightly. Consider a process Y defined as Yt=f(t,Bt) for some function f. The following rule states that Y is an Ito process with drift equal to ft+122fB2 and diffusion coefficient equal to f/B. This is what we need to remember to make calculations. The real meaning of (dB)2 is dt, so we can (and will) substitute that in the following rule, but it may be easier to remember (dB)2. This becomes more important when we consider more complex examples in the next sections.

Important Principle

If f(t,B) is continuously differentiable in t and twice continuously differentiable in B and Yt=f(t,Bt) for a standard Brownian motion B, then dY=f(t,B)tdt+f(t,B)BdB+122f(t,B)B2(dB)2.(3.23)

We can finish the discussion in regarding the process defined in by applying . We want to show that the process satisfies . We do that by differentiating and applying the . For f(t,B)=e(μσ2/2)t+σB, we have ft=(μ12σ2)f(t,B),fB=σf(t,B),2fB2=σ2f(t,B). Therefore, dY=(μ12σ2)Ydt+σYdB+12σ2Y(dB)2=μYdt+σYdB This verifies .

3.6 Functions of Time and an Ito Process

Now consider the more general case Yt=f(t,Xt) where X is an Ito process. As explained before, this means that dXt=αtdt+θtdBt(3.24) for some stochastic processes α and θ, where B is a standard Brownian motion. Then, from our previous rules, (dX)2=θ2dt. Ito’s formula in this more general case takes the same form as Calculation Rule ???, replacing the Brownian motion B with the Ito process X.

Important Principle

If f(t,X) is continuously differentiable in t and twice continuously differentiable in X and Yt=f(t,Xt) where X is an Ito process, then dY=f(t,X)tdt+f(t,X)XdX+122f(t,X)X2(dX)2.(3.25)

We can write in terms of dt and dB terms by substituting from and using (dX)2=θ2dt. This produces dY=(f(t,X)t+αf(t,X)X+12θ22f(t,X)X2)dt+θf(t,X)XdB.

Here are some important examples of Ito’s formula.

Key Result

If Y=Xα for a constant α, then dY=αXα1dX+12α(α1)Xα2(dX)2. This is equivalent to dYY=αdXX+α(α1)2(dXX)2. {#ito-powerformula}

Key Result

If Y=eX, then dYY=dX+(dX)22.(3.26)

Key Result

If Y=logX, then dY=dXX12(dXX)2.(3.27)

We showed in the previous Example that X defined in satisfies , but it is also useful to see how we can start from and deduce that is the solution. We can do that by taking logarithms. Set Yt=logXt. Then, using and substituting from , we have dlogX=(μ12σ2)dt+σdB. There is no X on the right-hand side of this, so we can simply integrate to compute logXt as logXt=logX0+(μ12σ2)t+σBt. Exponentiating gives .

3.7 Functions of Time and Multiple Ito Processes

Using for products of differentials, we can state Ito’s formula for a function of time and two Ito processes as follows.

Important Principle

If Yt=f(t,X1t,X2t) where X1 and X2 are Ito processes and f is continuously differentiable in t and twice continuously differentiable in X1 and X2, then dY=ftdt+fX1dX1+fX2dX2+122fX12(dX1)2+122fX22(dX2)2+2fX1X2(dX1)(dX2).(3.28)

This is analogous to a second-order Taylor series expansion in the variables X1 and X2. A similar formula applies to functions of more two Ito processes. We just need to include a term for each dXi, each (dXi)2 and each (dXi)(dXj).

Here are some important examples. We switch notation from X1 and X2 to X and Y and from Y to Z so we can drop the subscripts. These formulas follow from by taking f(x,y)=xy or f(x,y)=y/x.

Key Result

If Z=XY, then dZ=XdY+YdX+(dX)(dY). We can write this as dZZ=dXX+dYY+(dXX)(dYY).(3.29)

Key Result

If Z=Y/X, then dZZ=dYYdXX(dYY)(dXX)+(dXX)2.(3.30)

The following is a special case of that we encounter often.

Key Result

Let
Yt=exp(0tqsds) for some (possibly random) process q and define Z=XY for any Ito process X. gives us dZZ=qdt+dXX.(3.31) This is the same as in the usual calculus.

3.8 Exercises

Exercise 3.1 Ito’s Lemma can be used in different ways to get the same answer. For example, let Xt=at+bBt and use Ito’s lemma on the function eXt. Alternatively, let f(t,Bt)=eat+bBt. Use Ito’s lemma on f(,).

Exercise 3.2 Let dXt=μXtdt+σXtdBt. Use Ito’s lemma to find log(Xt) . What is the expected value and variance of log(Xt) ?


  1. In a more formal mathematical presentation, one normally writes dX,X for what we are writing here as (dX)2. This is the differential of the quadratic variation process, and the quadratic variation through date t is X,Xt=0tdX,Xs=0tσs2ds. Our mnenomic device of squaring differentials leads us to the correct formula.↩︎

  2. A somewhat more precise definition than our previous description of the stochastic integral 0tσ1,tdB1t is when holds, the stochastic integral is the (unique) martingale with joint variation with any other Ito process given by .↩︎