I had previously asked this question and have come to better understand the answer with regards to setting the input parameters for the Non-Linear Optimization problem that provides the NSS parameters. However, I realize that the answer assumes that I have zero coupon yields and can thus use the equation (2) on Page 2 of this pdf in order to obtain the input NSS parameters. However, if I don't have the Zero-Coupon Yield data, how may I proceed in order to obtain the input parameters. Would I need to bootstrap these Yields and if so, won't this hamper the whole process of obtaining a satisfactory solution to the Non-Linear Optimization problem.

Thank You


Zero coupon rates are outputs, not inputs. As mentioned in the other post, given the parameters (say the initial guesses), you can easily compute the theoretical prices of each bond, which can then be converted into their theoretical yields (standard price to yield conversion). You should minimize the residuals between these theoretical yields and the market yields.

EDIT: I made a pretty crude spreadsheet that illustrates what you need to do: https://app.box.com/s/6i3vae7lb02n6glam7vwts7qpuc44q2w

  • $\begingroup$ But on Page 12 of this paper it seems to me that we are required to only have an initial guess for the parameters tau_1 and tau_2 and then calculate the three other parameters by carrying out a regression represented by Figure 5. My problem is that I need to find the initial parameters (or guesses) to feed into the Optimization that you have carried out in the Excel Spreadsheet, as the Optimization proves unstable unless I have a good guess in the first place. $\endgroup$ – Jojo Jul 29 '15 at 1:28
  • $\begingroup$ You'll need to do your own research to see which range of values are appropriate. It also greatly depends on what you're trying to accomplish. If you're trading RV and stability matters, you might as well fix $\tau_1$ and $\tau_2$ (i.e., set them as constants). On the other hand, if your objective is purely to get a sensible discount curve, the instability is frankly speaking not that important. Just run your optimizer, get a set of values. On the next day, use the previous day's value as your initial guesses. $\endgroup$ – Helin Jul 29 '15 at 1:37
  • $\begingroup$ @Jojo Also for the record, I set all the initial values to 1 in the spreadsheet, and it converged quite quickly. $\endgroup$ – Helin Jul 29 '15 at 1:37
  • 1
    $\begingroup$ @Jojo another suggestion, take a look at federalreserve.gov/econresdata/researchdata/feds200628_1.html, which has the Fed's estimates of Svensson model parameters for the US curve. Should give you a sense of the possible ranges. Also, if you're really worried about stability, don't use the Svensson model. Cubic b-splines, for example, are not only more popular, but more stable as well. I don't know what you're using this for, but Svensson is not that popular amongst practitioners for developed markets. $\endgroup$ – Helin Jul 29 '15 at 13:12
  • 1
    $\begingroup$ @Jojo You are doing something circular... The correct sequence is to fit curve to coupon bonds to obtain a smoothed discount curve, which can be converted into zero coupon curve, par yield curve, or forward curve at will. Spot rates and par yields are OUTPUTS of this exercise, not inputs. I've followed your threads closely, and you're really close. But I feel you're going back to bootstrapping again to get some initial guesses, which is completely unnecessary... I guess I don't fully understand the confusion; otherwise I can probably help better... $\endgroup$ – Helin Jul 29 '15 at 14:23

A simple example might help. You need to transform your coupon bonds in equivalent zeros. Imagine that you have 5 coupon bonds and you are at the end of 2011:

  1. Coupon, Maturity, Price = 5.25% 2012 101.69
  2. Coupon, Maturity, Price = 4.5% 2013 101.52
  3. Coupon, Maturity, Price = 5.5% 2014 104.49
  4. Coupon, Maturity, Price = 5% 2015 103.35

From the first one you can get: $R_{0,1}= 3.5\%$, from the second and first ones you get: $R_{0,1}= 3.70\%$, from the third, second and first you get: $R_{0,3}= 3.9\%$, etc.

  • $\begingroup$ Thank You. I've searched for a while and I realize this is probably very straightforward, but could you please tell me how you got $R_{0,1}$, etc. $\endgroup$ – Jojo Jul 29 '15 at 12:52
  • $\begingroup$ $101.69 = 5.25/(1+R_{0,1}) + 100/(1+R_{0,1})$. Just solve for $R_{0,1}$. The remaining follow $\endgroup$ – phdstudent Jul 29 '15 at 13:18
  • $\begingroup$ I was actually thinking of calculating the spot rates from par yields, by choosing only par bonds. I've not seen this equation before. I've only seen the $Price = Coupon/(1+yield) + (Face-value + Coupon)/(1+yield)^2$. Would you possibly mind directing me to a place where I could read further on this particular equation. Thank You very much. $\endgroup$ – Jojo Jul 29 '15 at 13:50
  • $\begingroup$ The formula on your comment is the one you use to value the second bond on my list, replacing the first yield which is $R_{0,1}$ by the value above. Then you can easily solve for the $R_{0,2}$. The formula is the basic formula of bond pricing. $\endgroup$ – phdstudent Jul 29 '15 at 13:53
  • $\begingroup$ But, 5.25% has been described as the Yield. Hence, I may be wrong, but the above would only make sense if the bonds were at Par or if the Coupon has been mistakenly named as Yield right? $\endgroup$ – Jojo Jul 29 '15 at 14:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.