Up until this point, we've focused on how to price derivative securities, in particular fixed income derivative securities, in the context of the binomial model. However, we have not said anything yet about how to calibrate these models. In particular, how should we choose the parameters of these models so that the model prices match the prices that we see in the marketplace? It is particularly important with derivative securities models that our model prices match market prices. That is the problem of model calibration, and we're going to discuss that problem in this module. Up until now we've focused on the pricing of derivative securities. We've taken our model and the parameters of the model as given. What we've done is we've priced everything our bonds, our options on bonds, forwards, futures, and bonds, caplets, swaps and swaptions. We've priced all of these securities using risk neutral pricing. Using risk neutral pricing ensured that our models were arbitrage free. However, a model is no good unless at the very least we can get the model prices to agree with the market prices of liquid securities that we see in the marketplace. Security such as caps, and floors, caplets, floorlets, swaps, and swaptions are all very liquidly traded. We can see the prices of these securities in the marketplace. So what we want to do with our model is to pick the parameters of our model in such a way that the model prices of these securities match the market prices of these securities. This process is called calibration. What we want to do is calibrate our parameters so that the model prices agree with the market prices of liquid securities. So we're going to discuss that further in this module. The first thing to keep in mind is that there are actually very many free parameters in our binomial model. We have r_i, j's and q_i, j's for all i, j. So in fact, there's going to be some approximation to see n squared parameters in our model, where n is the number of periods in our binomial model. This is in fact, too many free parameters. So what we typically do is we fix some of these parameters. So that's, in fact, what we've been doing until now. We just fixed our q_i, j to be equal to q, which is equal to a half for all i, j. So we actually assumed a risk neutral parameters are risk neutral probabilities we'll have at all notes. We also fixed all short rates. So up until now we assume the short rate began at six percent, and then in each period it rose by a factor of 1.25 or fell by a factor of 0.9. So in fact, we just took our models given until now, but we're going to want to not actually, and so we fix some parameters. In fact, we actually pick q to be one minus q to be equal to a half for all i, j. So, in fact, we've fixed the risk neutral probabilities to be a constant at all nodes i, j. We have also assumed that the short rates r_i, j were also given to us up until this point. We started off with r being six percent, we let it rise by a factor of 1.25 or fall by a factor of 0.9. Well, we can no longer do that. If we want our model prices to match market prices, we're going to actually have to have some free parameters that we can use to calibrate to market prices. So that's what we're going to do here. One possible way to do this is to use a parametric form for the r_i, j's. So for example, the Ho-Lee model assumes that r_i, j is equal to a_i plus b_i times j. So if you recall i is time and j is state. So it assumes that there is a drift component parameter a_i, and then there's a volatility component b_i. Why do I call this a volatility component? Well, remember j is the state that we're going to see at time i. J is a random variable. We don't know what state will be in a time j, so we can interpret b_i the multiplier of the state j as being a volatility parameter. So in this case we actually only get 2n parameters, a_i and b_i for i equals zero up to n minus one. You can actually check that the standard deviation of the one period rate is then b_i over two, if you're conditioning on where you are at time i minus one. Now, the Ho-Lee model it should be said is actually not a very realistic model at all. There are some real problems with the dynamics induced by this assumption here. However, it has been a very influential model in the term structure literature and some very interesting term structure models have grown out of some of the ideas that were present in the original paper by Ho and lee. We're going to focus here instead on the Black-Derman-Toy model. The Black-Derman-Toy model assumes that the interest rate at node Ni, j is given by r_i, j equals a_i times e to the b_i, j. So actually if I take logs across here, I will see that what we're assuming is that the log of r_i, j is equal to the log of a_i plus b_i times j. So we can interpret log a_i as being a drift parameter for the log of the short rate, and we can interpret b_i as being a volatility parameter for the log of the short rate. Remember as I said it on the previous slide, that the random variable here is the state j, and that's why I can interpret b_i which multiplies the random variable as being a volatility parameter. What we want to do is we need to calibrate the model to the observed term structure in the marketplace and ideally other security prices. So certainly at the very least any term structure model that you want to use, should ensure that the zero coupon bond prices are equivalently, the term structure of interest rates, matches the term structure of interest rates we see in the marketplace. So we're certainly going to want to calibrate our model to zero coupon bond prices. Ideally we would also want to calibrate your other liquid security prices like caplets, and swaps, and floors, swaptions, and so on. So this is done in general by choosing the a_i's and b_i's to match market prices. For relatively few periods we can actually do this in Excel using the Solver Add-in and indeed we're going to do this in a few minutes, but also more efficient algorithms and software could be used in general. In fact, it'd be very straight forward to do this in R, or Python, or MATLAB, or C++. So we'll also see how to calibrate the Black-Derman-Toy model to market zero coupon bond prices using Excel, the Solver Add-In in Excel, and the forward equations. So to get us started, let's assume that we have an end period binomial lattice model as usual, we will let s_1 up to s_n be the term structure of interest rates observed in the marketplace. So these interest rates are given, they are fixed. We see them in the marketplace right now. We're going to assume spot rates are compounded per period. There's no loss of generality in doing this because we can always use any compounding convention that we like. For now, we're going to make the assumption that b-i is equal to b, and that this is known for all i. So this is actually quite a heroic assumption. We'll come back to this in a moment. We're doing this for several reasons. Number one is, we just want to calibrate our model to the term structure of interest rates. There are n interest rates one for each period, there are n parameters a_i, so if we fix the b's and assume they're known, we then have n equations and n unknowns. We are going to need to solve for n a_i's using n equations, and those n equations will be the equations that match the term structure in the marketplace to the term structure in the model. So here's how we're going to do this or at least this is how we could do it if we wanted to using the forward equations. We're actually going to be a little bit lazy and let Excel do all the work for us. So let Solver in Excel do all the work for us. But this is one way we could go about doing this. We know the following. Well, we know that one over one plus s_i to the i, is equal to this sum here of elementary security prices. What is this sum on the right-hand side? Well, if you think about it, i is fixed, so this is the time i state j elementary security price summing over all states j at time i. Well, we know that this is just the zero coupon bond price at time zero which matures at time i. Indeed, this indeed is equal to one over one plus s_i to the power of i. Remember the fair value of a zero coupon bond that matures at time i, well, that's equal to one over one plus s_i to the power of i. So this is one way of writing, so this is how we can express an equation for s_i in terms of quantities in our model. These are going to be the elementary security prices, we're going to use the forward equations to actually compute an expression for each of these guys here. So how can we do that? Well, if you recall the forward equations that we saw in the previous module, we can substitute n for each p_i, j. When j equals zero, we just get the one term. When j equals i, we get this term. So this term actually corresponds to p_i, i. This term is equal to p_i, 0. Then this term here is simply p_i, j when j is between one and i minus one. So this is all, these are quantities, this expression here is coming from the forward equations that we saw on the previous module. Given this we could actually now solve iteratively if we wanted to solve for the a_i's. For example suppose we start off with i equal to one. Well, in that case we are going to have the following equation. One over one plus s_1 will be equal to p_0, 0 over one plus a_0 times two, plus p_0, 0 over twice one plus a_0 e to the power of zero times two. This, of course, is equal to p_0, 0 divided by one plus a_0. So in fact, we know that p_0, 0 equals one, we will know s_1 from the marketplace, and so this will give us a_0. Given a_0 this will then give us r_0, 0 which we can see from over here. If we know a_0, remember the b's are assumed to be known and fixed. So if we know a_0 we're going to know r_0, 0. So we have r_0, 0. We can then use the forward equations to get p_1,0 and p_0, 1, and now we can move on to i equals two. We can actually use this equation. We can get one over one plus s_2 to the power of two is equal two and we can sub in these terms. These terms will just have the p_1's, p_1, 0 and p-1, 1 which we will know already. They will have an a_1 which we don't know but that's what we will solve for, and they will have s_2 which we see in the marketplace. So we'll get some quantity here which will depend on a_1. We'll know everything else, and we will therefore be able to determine a_1. We can continue on in this iterative manner working forwards to determine all the a_i's by comparing the s_i's which we see in the marketplace, using this equation to compare them with what the model says s_i must be, and figure out what the a_i's are.