### Numerical Examples

*• Assume*

**– S**_{0} *= 100, y*_{0} *= ln S*_{0} *= 4.60517.*

**– r = 0.**

**– n = 1.**

**– h**^{2}_{0} *= 0.0001096, γ = h*_{0} *= 0.010469.*

**– γ**_{n}*= γ/√*

*n = 0.010469.*

**– β**_{0} *= 0.000006575, β*_{1} *= 0.9, β*_{2} *= 0.04, and c = 0.*

### Numerical Examples (continued)

*• A daily variance of 0.0001096 corresponds to an annual*
volatility of

*√*365 *× 0.0001096 ≈ 20%.*

*• Let h*^{2}*(i, j) denote the variance at node (i, j).*

*• Initially, h*^{2}*(0, 0) = h*^{2}_{0} *= 0.0001096.*

### Numerical Examples (continued)

*• Let h*^{2}_{max}*(i, j) denote the maximum variance at node*
*(i, j).*

*• Let h*^{2}_{min}*(i, j) denote the minimum variance at node*
*(i, j).*

*• Initially, h*^{2}_{max}*(0, 0) = h*^{2}_{min}*(0, 0) = h*^{2}_{0}.

*• The resulting three-day tree is depicted on p. 861.*

13.4809 13.4809

12.2883 12.2883

11.7170 11.7170

12.2846 10.5733

10.9645 10.9645

10.5697 10.5256

13.4644 10.1305

10.9600 10.9600

10.5215 10.5215

10.9603 10.1269

10.6042 09.7717

10.9553 10.9553

12.2700 10.5173

11.7005 10.1231

10.9511 10.9511

12.2662 10.5135

13.4438 10.9473

*y*_{t}

4.60517 4.61564 4.62611 4.63658 4.64705 4.65752

4.59470

4.58423

4.57376 0.01047

1 1

2 2

1 1

1 1

2 2

1 1

2 1

2 1

1 1

*• A top number inside a gray box refers to the minimum*
*variance h*^{2}_{min} for the node.

*• A bottom number inside a gray box refers to the*
*maximum variance h*^{2}_{max} for the node.

*• Variances are multiplied by 100,000 for readability.*

*• A top number inside a white box refers to the η*
*corresponding to h*^{2}_{min}.

*• A bottom number inside a white box refers to the η*
*corresponding to h*^{2}_{max}.

### Numerical Examples (continued)

*• Let us see how the numbers are calculated.*

*• Start with the root node, node (0, 0).*

*• Try η = 1 in Eqs. (102)–(104) on p. 845 ﬁrst to obtain*
*p** _{u}* =

*0.4974,*

*p** _{m}* =

*0,*

*p** _{d}* =

*0.5026.*

*• As they are valid probabilities, the three branches from*
the root node use single jumps.

### Numerical Examples (continued)

*• Move on to node (1, 1).*

*• It has one predecessor node—node (0, 0)—and it takes*
an up move to reach the current node.

*• So apply updating rule (106) on p. 851 with = 1 and*
*h*^{2}_{t}*= h*^{2}*(0, 0).*

*• The result is h*^{2}*(1, 1) = 0.000109645.*

### Numerical Examples (continued)

*• Because h(1, 1)/γ = 2, we try η = 2 in*
Eqs. (102)–(104) on p. 845 ﬁrst to obtain

*p** _{u}* =

*0.1237,*

*p*

*=*

_{m}*0.7499,*

*p*

*=*

_{d}*0.1264.*

*• As they are valid probabilities, the three branches from*
*node (1, 1) use double jumps.*

### Numerical Examples (continued)

*• Carry out similar calculations for node (1, 0) with*

* = 0 in updating rule (106) on p. 851.*

*• Carry out similar calculations for node (1, −1) with*

* =* *−1 in updating rule (106).*

*• Single jump η = 1 works for both nodes.*

*• The resulting variances are*

*h*^{2}*(1, 0)* = *0.000105215,*
*h*^{2}*(1,−1) = 0.000109553.*

### Numerical Examples (continued)

*• Node (2, 0) has 2 predecessor nodes, (1, 0) and (1, −1).*

*• Both have to be considered in deriving the variances.*

*• Let us start with node (1, 0).*

*• Because it takes a middle move to reach the current*

*node, we apply updating rule (106) on p. 851 with = 0*
*and h*^{2}_{t}*= h*^{2}*(1, 0).*

*• The result is h*^{2}_{t+1}*= 0.000101269.*

### Numerical Examples (continued)

*• Now move on to the other predecessor node (1, −1).*

*• Because it takes an up move to reach the current node,*
*apply updating rule (106) on p. 851 with = 1 and*
*h*^{2}_{t}*= h*^{2}*(1,−1).*

*• The result is h*^{2}_{t+1}*= 0.000109603.*

*• We hence record*

*h*^{2}_{min}*(2, 0)* = *0.000101269,*
*h*^{2}_{max}*(2, 0)* = *0.000109603.*

### Numerical Examples (continued)

*• Consider state h*^{2}_{max}*(2, 0) ﬁrst.*

*• Because h*_{max}*(2, 0)/γ* * = 2, we ﬁrst try η = 2 in*
Eqs. (102)–(104) on p. 845 to obtain

*p** _{u}* =

*0.1237,*

*p*

*=*

_{m}*0.7500,*

*p*

*=*

_{d}*0.1263.*

*• As they are valid probabilities, the three branches from*
*node (2, 0) with the maximum variance use double*

jumps.

### Numerical Examples (continued)

*• Now consider state h*^{2}_{min}*(2, 0).*

*• Because h*_{min}*(2, 0)/γ* * = 1, we ﬁrst try η = 1 in*
Eqs. (102)–(104) on p. 845 to obtain

*p** _{u}* =

*0.4596,*

*p*

*=*

_{m}*0.0760,*

*p*

*=*

_{d}*0.4644.*

*• As they are valid probabilities, the three branches from*
*node (2, 0) with the minimum variance use single jumps.*

### Numerical Examples (continued)

*• Node (2, −1) has 3 predecessor nodes.*

*• Start with node (1, 1).*

*• Because it takes a down move to reach the current node,*
*we apply updating rule (106) on p. 851 with =* *−1*

*and h*^{2}_{t}*= h*^{2}*(1, 1).*^{a}

*• The result is h*^{2}_{t+1}*= 0.0001227.*

aNote that it is *not = −2.*

### Numerical Examples (continued)

*• Now move on to predecessor node (1, 0).*

*• Because it also takes a down move to reach the current*
node, we apply updating rule (106) on p. 851 with

* =* *−1 and h*^{2}_{t}*= h*^{2}*(1, 0).*

*• The result is h*^{2}_{t+1}*= 0.000105609.*

### Numerical Examples (continued)

*• Finally, consider predecessor node (1, −1).*

*• Because it takes a middle move to reach the current*

*node, we apply updating rule (106) on p. 851 with = 0*
*and h*^{2}_{t}*= h*^{2}*(1,−1).*

*• The result is h*^{2}_{t+1}*= 0.000105173.*

*• We hence record*

*h*^{2}_{min}*(2,* *−1) = 0.000105173,*
*h*^{2}_{max}*(2,* *−1) = 0.0001227.*

### Numerical Examples (continued)

*• Consider state h*^{2}_{max}*(2,* *−1).*

*• Because h*_{max}*(2,−1)/γ = 2, we ﬁrst try η = 2 in*
Eqs. (102)–(104) on p. 845 to obtain

*p** _{u}* =

*0.1385,*

*p*

*=*

_{m}*0.7201,*

*p*

*=*

_{d}*0.1414.*

*• As they are valid probabilities, the three branches from*
*node (2,−1) with the maximum variance use double*
jumps.

### Numerical Examples (continued)

*• Next, consider state h*^{2}_{min}*(2,* *−1).*

*• Because h*_{min}*(2,−1)/γ = 1, we ﬁrst try η = 1 in*
Eqs. (102)–(104) on p. 845 to obtain

*p** _{u}* =

*0.4773,*

*p*

*=*

_{m}*0.0404,*

*p*

*=*

_{d}*0.4823.*

*• As they are valid probabilities, the three branches from*
*node (2,−1) with the minimum variance use single*

jumps.

### Numerical Examples (concluded)

*• Other nodes at dates 2 and 3 can be handled similarly.*

*• In general, if a node has k predecessor nodes, then up to*
*2k variances will be calculated using the updating rule.*

**– This is because each predecessor node keeps two**
variance numbers.

*• But only the maximum and minimum variances will be*
kept.

### Negative Aspects of the RT Algorithm Revisited

^{a}

*• Recall the problems mentioned on p. 857.*

*• In our case, combinatorial explosion occurs when*
*n >* 1 *− β*_{1}

*β*_{2} = 1 *− 0.9*

*0.04* *= 2.5*
(see the next plot).

*• Suppose we are willing to accept the exponential*
*running time and pick n = 100 to seek accuracy.*

*• But the problem of shortened maturity forces the tree to*
stop at date 9!

aLyuu and Wu (R90723065) (2003, 2005).

25 50 75 100 125 150 175 Date 5000

10000 15000 20000 25000

*Dotted line: n = 3; dashed line: n = 4; solid line: n = 5.*

### Backward Induction on the RT Tree

*• After the RT tree is constructed, it can be used to price*
options by backward induction.

*• Recall that each node keeps two variances h*^{2}_{max} and
*h*^{2}_{min}.

*• We now increase that number to K equally spaced*
*variances between h*^{2}_{max} *and h*^{2}_{min} at each node.

*• Besides the minimum and maximum variances, the other*
*K* *− 2 variances in between are linearly interpolated.*^{a}

aIn practice, log-linear interpolation works better (Lyuu and Wu (R90723065) (2005)). Log-cubic interpolation works even better (Liu (R92922123) (2005)).

### Backward Induction on the RT Tree (continued)

*• For example, if K = 3, then a variance of*
*10.5436* *× 10*^{−6}

will be added between the maximum and minimum
*variances at node (2, 0) on p. 861.*^{a}

*• In general, the kth variance at node (i, j) is*
*h*^{2}_{min}*(i, j)+k* *h*^{2}_{max}*(i, j)* *− h*^{2}_{min}*(i, j)*

*K* *− 1* *,* *k = 0, 1, . . . , K−1.*

*• Each interpolated variance’s jump parameter and*
branching probabilities can be computed as before.

aRepeated on p. 881.

13.4809 13.4809

12.2883 12.2883

11.7170 11.7170

12.2846 10.5733

10.9645 10.9645

10.5697 10.5256

13.4644 10.1305

10.9600 10.9600

10.5215 10.5215

10.9603 10.1269

10.6042 09.7717

10.9553 10.9553

12.2700 10.5173

11.7005 10.1231

10.9511 10.9511

12.2662 10.5135

13.4438 10.9473

*y*_{t}

4.60517 4.61564 4.62611 4.63658 4.64705 4.65752

4.59470

4.58423

4.57376 0.01047

1 1

2 2

1 1

1 1

2 2

1 1

2 1

2 1

1 1

### Backward Induction on the RT Tree (concluded)

*• Suppose a variance falls between two of the K variances*
during backward induction.

*• Linear interpolation of the option prices corresponding*
to the two bracketing variances will be used as the

approximate option price.

*• The above ideas are reminiscent of the ones on p. 391,*
where we dealt with Asian options.

### Numerical Examples

*• We next use the numerical example on p. 881 to price a*
European call option with a strike price of 100 and

expiring at date 3.

*• Recall that the riskless interest rate is zero.*

*• Assume K = 2; hence there are no interpolated*
variances.

*• The pricing tree is shown on p. 884 with a call price of*
*0.66346.*

**– The branching probabilities needed in backward**
induction can be found on p. 885.

5.37392 5.37392

3.19054 3.19054

3.19054 3.19054

2.11587 2.11587

1.20241 1.20241

1.05240 1.05240

1.05240 1.05240

0.66346 0.66346

0.52360 0.52360

0.26172 0.48366

0.00000 0.00000

0.13012 0.13012

0.14573 0.00000

0.00000 0.00000

0.00000 0.00000

0.00000 0.00000

0.00000 0.00000

*S*_{t}

100.00000 101.05240 102.11587 103.19054 104.27652 105.37392

98.95856

97.92797

96.90811

1 1

2 2

1 1

1 1

2 2

1 1

2 1

2 1

1 1

*h*^{2}*[i][j][0]*

*η[i][j][0]*

*rb[i][0]*

10.9600 10.9600

10.9553 10.9553

10.5215 10.5215

10.9645 10.9645

10.9511 10.9511

12.2700 10.5173

10.9603 10.1269

10.5697 10.5256

12.2883 12.2883

13.4438 10.9473

12.2662 10.5135

11.7005 10.1231

10.6042 09.7717

13.4644 10.1305

12.2846 10.5733

11.7170 11.7170

13.4809 13.4809

*h*^{2}[0][ ][ ]

1 1

1 1

1 1

2 2

1 1

2 1

2 1

1 1

2 2

η[0][ ][ ]

*p[0][ ][ ][ ]*
0

0

1

−1

3

−2

5

−3 rb[0][ ]

0.4974 0.4974 0.0000 0.0000 0.5026 0.5026

0.4972 0.4972 0.0004 0.0004 0.5024 0.5024 0.4775 0.4775 0.0400 0.0400 0.4825 0.4825 0.1237 0.1237 0.7499 0.7499 0.1264 0.1264

0.4970 0.4970 0.0008 0.0008 0.5022 0.5022 0.4773 0.1385 0.0404 0.7201 0.4823 0.1414 0.4596 0.1237 0.0760 0.7500 0.4644 0.1263 0.4777 0.4797 0.0396 0.0356 0.4827 0.4847 0.1387 0.1387 0.7197 0.7197 0.1416 0.1416

*h*^{2}[1][ ][ ]

*h*^{2}[2][ ][ ]

*h*^{2}[3][ ][ ]

η[1][ ][ ]

η[2][ ][ ]

*p[1][ ][ ][ ]*

*p[2][ ][ ][ ]*
*rb[i][1]*

*h*^{2}*[i][j][1]*

*η[i][j][1]*

* p[i][j][0][1] p[i][j][1][1]*

* p[i][j][0][0] p[i][j][1][0]*

* p[i][j][0][**−1] p[i][j][1][−1]*

rb[1][ ] rb[2][ ] rb[3][ ]

*j*

3 2 1 0

−1

−2

3 2 1 0

−1

−2
*j*

5 4 3 2

0

*j*

−3

−2

−1 1

### Numerical Examples (continued)

*• Let us derive some of the numbers on p. 884.*

*• A gray line means the updated variance falls strictly*
*between h*^{2}_{max} *and h*^{2}_{min}.

*• The option price for a terminal node at date 3 equals*
*max(S*_{3} *− 100, 0), independent of the variance level.*

*• Now move on to nodes at date 2.*

*• The option price at node (2, 3) depends on those at*
*nodes (3, 5), (3, 3), and (3, 1).*

*• It therefore equals*

*0.1387 × 5.37392 + 0.7197 × 3.19054 + 0.1416 × 1.05240 = 3.19054.*

### Numerical Examples (continued)

*• Option prices for other nodes at date 2 can be computed*
similarly.

*• For node (1, 1), the option price for both variances is*

*0.1237 × 3.19054 + 0.7499 × 1.05240 + 0.1264 × 0.14573 = 1.20241.*

*• Node (1, 0) is most interesting.*

*• We knew that a down move from it gives a variance of*
*0.000105609.*

*• This number falls between the minimum variance*

*0.000105173 and the maximum variance 0.0001227 at*
*node (2,−1) on p. 881.*

### Numerical Examples (continued)

*• The option price corresponding to the minimum*
variance is 0.

*• The option price corresponding to the maximum*
*variance is 0.14573.*

*• The equation*

*x* *× 0.000105173 + (1 − x) × 0.0001227 = 0.000105609*
*is satisﬁed by x = 0.9751.*

*• So the option for the down state is approximated by*
*x* *× 0 + (1 − x) × 0.14573 = 0.00362.*

### Numerical Examples (continued)

*• The up move leads to the state with option price*
*1.05240.*

*• The middle move leads to the state with option price*
*0.48366.*

*• The option price at node (1, 0) is ﬁnally calculated as*

*0.4775 × 1.05240 + 0.0400 × 0.48366 + 0.4825 × 0.00362 = 0.52360.*

### Numerical Examples (continued)

*• A variance following an interpolated variance may*
exceed the maximum variance or be exceeded by the
minimum variance.

*• When this happens, the option price corresponding to*
the maximum or minimum variance will be used during
backward induction.^{a}

aCakici and Topyan (2000).

### Numerical Examples (concluded)

*• But an interpolated variance may choose a branch that*
*goes into a node that is not reached in forward*

induction.^{a}

*• In this case, the algorithm fails.*

*• The Ritchken-Trevor algorithm does not have this*

problem as all interpolated variances are involved in the forward-induction phase.

*• It may be hard to calculate the implied β*_{1} *and β*_{2} from
option prices.^{b}

aLyuu and Wu (R90723065) (2005).

bChang (R93922034) (2006).

### Complexities of GARCH Models

^{a}

*• The Ritchken-Trevor algorithm explodes exponentially if*
*n is big enough (p. 857).*

*• The mean-tracking tree of Lyuu and Wu (2005) makes*
*sure explosion does not happen if n is not too large.*^{b}

*• The next page summarizes the situations for many*
GARCH option pricing models.

**– Our earlier treatment is for NGARCH only.**

aLyuu and Wu (R90723065) (2003, 2005).

bSimilar to, but earlier than, the binomial-trinomial tree on pp. 667ﬀ.

### Complexities of GARCH Models (concluded)

^{a}

Model Explosion Non-explosion

NGARCH *β*1 + *β*2*n > 1* *β*1 + *β*2(*√*

*n + λ + c)*^{2} *≤ 1*
LGARCH *β*1 + *β*2*n > 1* *β*1 + *β*2(*√*

*n + λ)*^{2} *≤ 1*
AGARCH *β*1 + *β*2*n > 1* *β*1 + *β*2(*√*

*n + λ)*^{2} *≤ 1*
GJR-GARCH *β*1 + *β*2*n > 1* *β*1 + (*β*2 + *β*3)(*√*

*n + λ)*^{2} *≤ 1*
TS-GARCH *β*_{1} + *β*_{2}*√*

*n > 1* *β*_{1} + *β*_{2}(*λ +**√*

*n) ≤ 1*
TGARCH *β*1 + *β*2*√*

*n > 1* *β*1 + (*β*2 + *β*3)(*λ +* *√*

*n) ≤ 1*
Heston-Nandi *β*1 + *β*2(*c −* ^{1}_{2})^{2} *> 1* *β*1 + *β*2*c*^{2} *≤ 1*

& *c ≤* ^{1}_{2}

VGARCH *β*1 + (*β*2*/4) > 1* *β*1 *≤ 1*

aChen (R95723051) (2008); Chen (R95723051), Lyuu, and Wen (D94922003) (2012).

*Introduction to Term Structure Modeling*

The fox often ran to the hole by which they had come in, to ﬁnd out if his body was still thin enough to slip through it.

*— Grimm’s Fairy Tales*

And the worst thing you can have is models and spreadsheets.

— Warren Buﬀet, May 3, 2008

### Outline

*• Use the binomial interest rate tree to model stochastic*
term structure.

**– Illustrates the basic ideas underlying future models.**

**– Applications are generic in that pricing and hedging**
methodologies can be easily adapted to other models.

*• Although the idea is similar to the earlier one used in*
option pricing, the current task is more complicated.

**– The evolution of an entire term structure, not just a**
single stock price, is to be modeled.

**– Interest rates of various maturities cannot evolve**
arbitrarily, or arbitrage proﬁts may occur.

### Issues

*• A stochastic interest rate model performs two tasks.*

**– Provides a stochastic process that deﬁnes future term**
structures without arbitrage proﬁts.

**– “Consistent” with the observed term structures.**

### History

*• Methodology founded by Merton (1970).*

*• Modern interest rate modeling is often traced to 1977*
when Vasicek and Cox, Ingersoll, and Ross developed
simultaneously their inﬂuential models.

*• Early models have ﬁtting problems because they may*
not price today’s benchmark bonds correctly.

*• An alternative approach pioneered by Ho and Lee (1986)*
makes ﬁtting the market yield curve mandatory.

*• Models based on such a paradigm are called (somewhat*
misleadingly) arbitrage-free or no-arbitrage models.

### Binomial Interest Rate Tree

*• Goal is to construct a no-arbitrage interest rate tree*
consistent with the yields and/or yield volatilities of
zero-coupon bonds of all maturities.

**– This procedure is called calibration.**^{a}

*• Pick a binomial tree model in which the logarithm of the*
future short rate obeys the binomial distribution.

**– Exactly like the CRR tree.**

*• The limiting distribution of the short rate at any future*
time is hence lognormal.

aDerman (2004), “complexity without calibration is pointless.”

### Binomial Interest Rate Tree (continued)

*• A binomial tree of future short rates is constructed.*

*• Every short rate is followed by two short rates in the*
following period (p. 902).

*• In the ﬁgure on p. 902, node A coincides with the start*
*of period j during which the short rate r is in eﬀect.*

*• At the conclusion of period j, a new short rate goes into*
*eﬀect for period j + 1.*

*r*

***** ^{r}^{}

*0.5*

**j** _{r}_{h}

*0.5*
A

B

C

*period j − 1* *period j* *period j + 1*
*time j − 1* *time j*

### Binomial Interest Rate Tree (continued)

*• This may take one of two possible values:*

* – r*: the “low” short-rate outcome at node B.

**– r**_{h}: the “high” short-rate outcome at node C.

*• Each branch has a 50% chance of occurring in a*
risk-neutral economy.

*• We require that the paths combine as the binomial*
process unfolds.

*• This model can be traced to Salomon Brothers.*^{a}

aTuckman (2002).

### Binomial Interest Rate Tree (continued)

*• The short rate r can go to r*_{h} *and r** _{}* with equal

*risk-neutral probability 1/2 in a period of length Δt.*

*• Hence the volatility of ln r after Δt time is*
*σ =* 1

2

*√*1

*Δt* ln

*r*_{h}
*r*_{}

(107) (see Exercise 23.2.3 in text).

*• Above, σ is annualized, whereas r* *and r*_{h} are period
based.

### Binomial Interest Rate Tree (continued)

*• Note that*

*r*_{h}

*r*_{}*= e*^{2σ}

*√**Δt**.*

*• Thus greater volatility, hence uncertainty, leads to larger*
*r*_{h}*/r** _{}* and wider ranges of possible short rates.

*• The ratio r*_{h}*/r** _{}* may depend on time if the volatility is a
function of time.

*• Note that r*_{h}*/r** _{}* has nothing to do with the current

*short rate r if σ is independent of r.*

### Binomial Interest Rate Tree (continued)

*• In general there are j possible rates*^{a} *in period j,*
*r*_{j}*, r*_{j}*v*_{j}*, r*_{j}*v*_{j}^{2}*, . . . , r*_{j}*v*_{j}^{j−1}*,*

where

*v*_{j}*≡ e*^{2σ}^{j}^{√}* ^{Δt}* (108)

*is the multiplicative ratio for the rates in period j (see*ﬁgure on next page).

*• We shall call r** _{j}* the baseline rates.

*• The subscript j in σ** _{j}* is meant to emphasize that the
short rate volatility may be time dependent.

aNot *j + 1.*

Baseline rates

A C

B B

C

C

D

D
D
H_{2} D

H L_{2 2}

H L_{3 3}

H L_{3 3}^{2}
H_{1}

H_{3}

### Binomial Interest Rate Tree (concluded)

*• In the limit, the short rate follows the following process,*
*r(t) = μ(t) e*^{σ(t) W (t)}*,* (109)
*in which the (percent) short rate volatility σ(t) is a*

deterministic function of time.

*• The expected value of r(t) equals μ(t) e*^{σ(t)}^{2}* ^{(t/2)}*.

*• Hence a declining short rate volatility is usually imposed*
to preclude the short rate from assuming implausibly
high values.

*• Incidentally, this is how the binomial interest rate tree*
achieves mean reversion.

### Memory Issues

*• Path independency: The term structure at any node is*
independent of the path taken to reach it.

*• So only the baseline rates r** _{i}* and the multiplicative

*ratios v*

*need to be stored in computer memory.*

_{i}*• This takes up only O(n) space.*^{a}

*• Storing the whole tree would take up O(n*^{2}) space.

**– Daily interest rate movements for 30 years require**
roughly (30 *× 365)*^{2}*/2* *≈ 6 × 10*^{7} double-precision
ﬂoating-point numbers (half a gigabyte!).

aThroughout, *n denotes the depth of the tree.*

### Set Things in Motion

*• The abstract process is now in place.*

*• We need the annualized rates of return of the riskless*
bonds that make up the benchmark yield curve and
their volatilities.

*• In the U.S., for example, the on-the-run yield curve*

obtained by the most recently issued Treasury securities may be used as the benchmark curve.

### Set Things in Motion (concluded)

*• The term structure of (yield) volatilities*^{a} can be
estimated from:

**– Historical data (historical volatility).**

**– Or interest rate option prices such as cap prices**
(implied volatility).

*• The binomial tree should be found that is consistent*
with both term structures.

*• Here we focus on the term structure of interest rates.*

aOr simply the volatility (term) structure.

### Model Term Structures

*• The model price is computed by backward induction.*

*• Refer back to the ﬁgure on p. 902.*

*• Given that the values at nodes B and C are P*_{B} *and P*_{C},
respectively, the value at node A is then

*P*_{B} *+ P*_{C}

*2(1 + r)* *+ cash flow at node A.*

*• We compute the values column by column without*

explicitly expanding the binomial interest rate tree (see next page).

*• This takes O(n*^{2}*) time and O(n) space.*

HL

A C

B

Cash flows:

B

C

C

D

D

D D

+

+ 2 2 H

1 2

2 1

## = B

+ 2 2

HL

2 3

2 1

## = B

H

HL^{2}

+ 2 2

HL

3 4

2 1

## ?

2## D

2_{1}

2_{2}

2_{3}

2_{4}

### Term Structure Dynamics

*• An n-period zero-coupon bond’s price can be computed*
*by assigning $1 to every node at period n and then*

applying backward induction.

*• Repeating this step for n = 1, 2, . . . , one obtains the*
market discount function implied by the tree.

*• The tree therefore determines a term structure.*

*• It also contains a term structure dynamics.*

**– Taking any node in the tree as the current state**
induces a binomial interest rate tree and, again, a
term structure.

### Sample Term Structure

*• We shall construct interest rate trees consistent with the*
sample term structure in the following table.

**– This was called calibration (the reverse of pricing).**

*• Assume the short rate volatility is such that*
*v* *≡* *r*_{h}

*r*_{}*= 1.5,*
independent of time.

Period 1 2 3

Spot rate (%) 4 4*.2* 4*.3*

One-period forward rate (%) 4 4*.4* 4*.5*

Discount factor 0*.96154* 0*.92101* 0*.88135*

### An Approximate Calibration Scheme

*• Start with the implied one-period forward rates and*
then equate the expected short rate with the forward
rate (see Exercise 5.6.6 in text).

*• For the ﬁrst period, the forward rate is today’s*
one-period spot rate.

*• In general, let f*_{j}*denote the forward rate in period j.*

*• This forward rate can be derived from the market*
discount function via

*f** _{j}* =

*d(j)*

*d(j + 1)* *− 1*
(see Exercise 5.6.3 in text).

### An Approximate Calibration Scheme (continued)

*• Since the ith short rate r*_{j}*v*_{j}* ^{i−1}*, 1

*≤ i ≤ j, occurs with*probability 2

^{−(j−1)}

_{j−1}*i−1*

, this means

*j*
*i=1*

2^{−(j−1)}

*j* *− 1*
*i* *− 1*

*r*_{j}*v*_{j}^{i−1}*= f*_{j}*.*

*• Thus*

*r** _{j}* =

2

*1 + v*_{j}

_{j−1}

*f*_{j}*.* (110)

*• This binomial interest rate tree is trivial to set up, in*
*O(n) time.*

### An Approximate Calibration Scheme (continued)

*• The ensuing tree for the sample term structure appears*
in ﬁgure next page.

*• For example, the price of the zero-coupon bond paying*

$1 at the end of the third period is

1

4 *×* 1
*1.04* *×*

1

*1.0352* *×*

1

*1.0288* + 1
*1.0432*

+ 1

*1.0528* *×*

1

*1.0432* + 1
*1.0648*

or 0.88155, which exceeds discount factor 0.88135.

*• The tree is thus not calibrated.*

4.0%

3.52%

2.88%

5.28%

4.32%

6.48%

Baseline rates

A C

B B

C

C

D

D

D

D

period 2 period 3 period 1

4.0% 4.4% 4.5%

Implied forward rates:

### An Approximate Calibration Scheme (concluded)

*• Indeed, this bias is inherent: The tree overprices the*
bonds (see Exercise 23.2.4 in text).

*• Suppose we replace the baseline rates r*_{j}*by r*_{j}*v** _{j}*.

*• Then the resulting tree underprices the bonds.*^{a}

*• The true baseline rates are thus bounded between r*_{j}*and r*_{j}*v** _{j}*.

aLyuu and Wang (F95922018) (2009, 2011).

### Issues in Calibration

*• The model prices generated by the binomial interest rate*
tree should match the observed market prices.

*• Perhaps the most crucial aspect of model building.*

*• Treat the backward induction for the model price of the*
*m-period zero-coupon bond as computing some function*
*f (r*_{m}*) of the unknown baseline rate r*_{m}*for period m.*

*• A root-ﬁnding method is applied to solve f(r*_{m}*) = P for*
*r*_{m}*given the zero’s price P and r*_{1}*, r*_{2}*, . . . , r** _{m−1}*.

*• This procedure is carried out for m = 1, 2, . . . , n.*

*• It runs in O(n*^{3}) time.

### Binomial Interest Rate Tree Calibration

*• Calibration can be accomplished in O(n*^{2}) time by the
use of forward induction.^{a}

*• The scheme records how much $1 at a node contributes*
to the model price.

*• This number is called the state price, the Arrow-Debreu*
price, or Green’s function.

**– It is the price of a state contingent claim that pays**

$1 at that particular node (state) and 0 elsewhere.

*• The column of state prices will be established by moving*
*forward from time 0 to time n.*

aJamshidian (1991).

### Binomial Interest Rate Tree Calibration (continued)

*• Suppose we are at time j and there are j + 1 nodes.*

**– The unknown baseline rate for period j is r ≡ r*** _{j}*.

**– The multiplicative ratio is v ≡ v***.*

_{j}**– P**_{1}*, P*_{2}*, . . . , P*_{j}*are the known state prices at earlier*
*time j* *− 1, corresponding to rates r, rv, . . . , rv** ^{j−1}* for

*period j.*

*• By deﬁnition,* _{j}

*i=1* *P*_{i}*is the price of the (j* *− 1)-period*
zero-coupon bond.

*• We want to ﬁnd r based on P*_{1}*, P*_{2}*, . . . , P** _{j}* and the price

*of the j-period zero-coupon bond.*

### Binomial Interest Rate Tree Calibration (continued)

*• One dollar at time j has a known market value of*
*1/[ 1 + S(j) ]*^{j}*, where S(j) is the j-period spot rate.*

*• Alternatively, this dollar has a present value of*
*g(r)* *≡* *P*_{1}

*(1 + r)* + *P*_{2}

*(1 + rv)* + *P*_{3}

*(1 + rv*^{2}) +*· · · +* *P*_{j}

*(1 + rv** ^{j−1}*)
(see next plot).

*• So we solve*

*g(r) =* 1

*[ 1 + S(j) ]** ^{j}* (111)

*for r.*

1

1

*P*

_{i}*rv*

^{i}^{}

^{1}

### Binomial Interest Rate Tree Calibration (continued)

*• Given a decreasing market discount function, a unique*
*positive solution for r is guaranteed.*

*• The state prices at time j can now be calculated (see*
panel (a) next page).

*• We call a tree with these state prices a binomial state*
price tree (see panel (b) next page).

*• The calibrated tree is depicted on p. 928.*

A C B

B

C

C

D

D D

D 4.00%

3.526%

2.895%

0.480769

0.460505

0.228308 A

C B

C

C

D

D D D

B

period 2 period 3 period 1

4.0% 4.4% 4.5%

Implied forward rates:

0.480769 1

0.112832

(b)

0.333501

0.327842

0.107173 0.232197

(a) 1

H

HL

2 HL

2

2 1

### = B

2 H

2 HL

1 2

2 1

### = B = B

2 1 2H

1

2 1

### = B

21

2_{2}

4.00%

3.526%

2.895%

5.289%

4.343%

6.514%

A

C B

C

C

D

D D D

B

period 2 period 3 period 1

4.0% 4.4% 4.5%

Implied forward rates:

### Binomial Interest Rate Tree Calibration (concluded)

*• The Newton-Raphson method can be used to solve for*
*the r in Eq. (111) on p. 924 as g*^{}*(r) is easy to evaluate.*

*• The monotonicity and the convexity of g(r) also*
facilitate root ﬁnding.

*• The total running time is O(n*^{2}), as each root-ﬁnding
*routine consumes O(j) time.*

*• With a good initial guess,*^{a} the Newton-Raphson method
converges in only a few steps.^{b}

aSuch as the *r**j* = (_{1+v}^{2}

*j* )^{j−1}*f**j* on p. 917.

bLyuu (1999).

### A Numerical Example

*• One dollar at the end of the second period should have a*
present value of 0.92101 by the sample term structure.

*• The baseline rate for the second period, r*_{2}, satisﬁes
*0.480769*

*1 + r*_{2} + *0.480769*

*1 + 1.5* *× r*_{2} *= 0.92101.*

*• The result is r*_{2} *= 3.526%.*

*• This is used to derive the next column of state prices*
*shown in panel (b) on p. 927 as 0.232197, 0.460505, and*
*0.228308.*

*• Their sum gives the correct market discount factor*
*0.92101.*

### A Numerical Example (concluded)

*• The baseline rate for the third period, r*_{3}, satisﬁes
*0.232197*

*1 + r*_{3} + *0.460505*

*1 + 1.5* *× r*_{3} + *0.228308*

*1 + (1.5)*^{2} *× r*_{3} *= 0.88135.*

*• The result is r*3 *= 2.895%.*

*• Now, redo the calculation on p. 918 using the new rates:*

1

4 *×* 1

*1.04* *× [* 1

*1.03526* *× (* 1

*1.02895* + 1

*1.04343*) + 1

*1.05289* *× (* 1

*1.04343* + 1

*1.06514**)],*

which equals 0.88135, an exact match.

*• The tree on p. 928 prices without bias the benchmark*
securities.

### Spread of Nonbenchmark Bonds

*• Model prices calculated by the calibrated tree as a rule*
do not match market prices of nonbenchmark bonds.

*• The incremental return over the benchmark bonds is*
called spread.

*• If we add the spread uniformly over the short rates in*
the tree, the model price will equal the market price.

*• We will apply the spread concept to option-free bonds*
next.

### Spread of Nonbenchmark Bonds (continued)

*• We illustrate the idea with an example.*

*• Start with the tree on p. 934.*

*• Consider a security with cash ﬂow C*_{i}*at time i for*
*i = 1, 2, 3.*

*• Its model price is p(s), which is equal to*

1

*1.04 + s* *×*

*C1 +* 1

2 *×* 1

*1.03526 + s* *×*

*C2 +* 1
2

*C3*

*1.02895 + s* + *C3*
*1.04343 + s*

+

1

2 *×* 1

*1.05289 + s* *×*

*C2 +* 1
2

*C3*

*1.04343 + s* + *C3*
*1.06514 + s*

*.*

*• Given a market price of P , the spread is the s that*
*solves P = p(s).*

4.00%+I

3.526%+I

2.895%+I

5.289%+I

4.343%+I

6.514%+I

A C

B

period 2 period 3 period 1

4.0% 4.4% 4.5%

Implied forward rates:

B

C

C

D

D D D

### Spread of Nonbenchmark Bonds (continued)

*• The model price p(s) is a monotonically decreasing,*
*convex function of s.*

*• We will employ the Newton-Raphson root-ﬁnding*
method to solve

*p(s)* *− P = 0*
*for s.*

*• But a quick look at the equation for p(s) reveals that*
*evaluating p*^{}*(s) directly is infeasible.*

*• Fortunately, the tree can be used to evaluate both p(s)*
*and p*^{}*(s) during backward induction.*

### Spread of Nonbenchmark Bonds (continued)

*• Consider an arbitrary node A in the tree associated with*
*the short rate r.*

*• In the process of computing the model price p(s), a*
*price p*_{A}*(s) is computed at A.*

*• Prices computed at A’s two successor nodes B and C are*
*discounted by r + s to obtain p*_{A}*(s) as follows,*

*p*_{A}*(s) = c +* *p*_{B}*(s) + p*_{C}*(s)*
*2(1 + r + s)* *,*
*where c denotes the cash ﬂow at A.*

### Spread of Nonbenchmark Bonds (continued)

*• To compute p*^{}_{A}*(s) as well, node A calculates*
*p*^{}_{A}*(s) =* *p*^{}_{B}*(s) + p*^{}_{C}*(s)*

*2(1 + r + s)* *−* *p*_{B}*(s) + p*_{C}*(s)*
*2(1 + r + s)*^{2} *.*

(112)

*• This is easy if p*^{}_{B}*(s) and p*^{}_{C}*(s) are also computed at*
nodes B and C.

*• When A is a terminal node, simply use the payoﬀ*
*function for p*_{A}*(s).*^{a}

aContributed by Mr. Chou, Ming-Hsin (R02723073) on May 28, 2014.

1 1 ? I

### = B

1 1 ?L I

### = B

1 1? ?L^{2} ID

1 1 = I

### = B

1 1 >L I

### = B

1 1 > I

### = B

^{1 1}

^{=}

^{> I}

^{B}

^{2}

1 1= ? IB^{2}

1 1= ?L IB^{2}

1 1

### ?

?L^{2}I

### D

^{2}

1 1= >L IB^{2}

1 1= = IB^{2}

A C

B B

C

C

D

D D D

A C

B B

C

C

D

D D D

(a) (b)

A

C (c)

F I*= B

B F I ? F I F I

)= B *^{2 1}=^{( )} H I+^{( )}B

F I F I F I H I

F I F I

)= B = B = B*^{2 1}^{( )} +^{( )} ^{2 1}*^{( )}H I+^{( )}^{2}

F I+= B

F I+= B

F I*= B

=

>

?

=

>

?

H

### Spread of Nonbenchmark Bonds (continued)

*• Apply the above procedure inductively to yield p(s) and*
*p*^{}*(s) at the root (p. 938).*

*• This is called the diﬀerential tree method.*^{a}
**– Similar ideas can be found in automatic**

diﬀerentiation (AD)^{b} and backpropagation^{c} in
artiﬁcial neural networks.

*• The total running time is O(n*^{2}).

*• The memory requirement is O(n).*

aLyuu (1999).

bRall (1981).

cRumelhart, Hinton, and Williams (1986).

### Spread of Nonbenchmark Bonds (continued)

Number of Running Number of Number of Running Number of
*partitions n* time (s) iterations partitions time (s) iterations

500 7.850 5 10500 3503.410 5

1500 71.650 5 11500 4169.570 5

2500 198.770 5 12500 4912.680 5

3500 387.460 5 13500 5714.440 5

4500 641.400 5 14500 6589.360 5

5500 951.800 5 15500 7548.760 5

6500 1327.900 5 16500 8502.950 5

7500 1761.110 5 17500 9523.900 5

8500 2269.750 5 18500 10617.370 5

9500 2834.170 5 . . . . . . . . . . . .

75MHz Sun SPARCstation 20.

### Spread of Nonbenchmark Bonds (concluded)

*• Consider a three-year, 5% bond with a market price of*
100.569.

*• Assume the bond pays annual interest.*

*• The spread can be shown to be 50 basis points over the*
tree (p. 942).

*• Note that the idea of spread does not assume parallel*
shifts in the term structure.

*• It also diﬀers from the yield spread (p. 118) and static*
spread (p. 119) of the nonbenchmark bond over an
otherwise identical benchmark bond.

4.50%

100.569 A

C B

5 5 105

Cash flows:

B

C

C

D

D D 4.026% D

3.395%

5.789%

4.843%

7.014%

105

105

105

105 106.552

105.150

103.118 106.754

103.436