I have a model which I use to simulate future yield curves. The model uses some standard concepts, like PCA and ARMA models, and it creates some nice-looking yield curves. The simulated curves are used for risk purposes (VaR, stress testing, etc).

The problem that I'm having is that I am working with 5 years of data of GBP swap rates / GBP yield curve, and during this period the short end of the curve hardly moves. For the short end of the curve we use something like LIBOR. Here's what 3M LIBOR has been doing since 2000:

3M LIBOR since 2005

My dataset starts right after the big drop in 2009. As you can see, after 2009 the largest move over a year is maybe 50-70 bps, which is small.

As a result my model simply doesn't produce large movements on the short end of the yield curve. I'm not producing movements larger than, say, 20-30 bps. This is problematic, since for the purposes of risk I want to be 99% "sure" that I've captured the worst-case scenario. And further back in history rates were much more volatile. It's unlikely, but not out of the question, that LIBOR increases by 100bps or more. (this is all over a time horizon of one year by the way)

To counter this "flatness" I could maybe include GARCH effects and other fat-tailed distributions, but I'm guessing this hardly matters since calibrating to the data just results in, again, a very inert model. Also, the current model works reasonable for the EUR swap curve, which has been a more volatile. The model I'm using can definitely produce large rate movements -- it's just that the calibration to the the 5 year dataset results in relatively static model.

So what else can I do? How can I "instruct" my model to simulate larger movements? Should I just start tuning the model parameters by hand? Should I look at the option market? Maybe add random interest rate shocks?

I should note that one obvious "solution" to this problem is to include a larger dataset, but let's just assume that I can't increase my dataset (there's a few reasons for this).

It's a general problem I suppose: what do you do when your historical dataset does not properly reflect potential future dynamics?


1 Answer 1


Well you have to be more flexible in your thinking. If you believe that a spike in libor might occur, you have to manipulate the model to produce that scenario. How about just moving the yield curve to that scenario and revaluing the portfolio. Or jack the libor volatilty by a factor of 20.

This reminds me of why some banks blew up in the crisis. Faced with the situation you describe, they slavishly stick to some model approved by management, which doesn't probe the distribution enough, instead of using common sense!

  • $\begingroup$ I agree with dm63. Where we are in the business cycle should be considered. We are never at average. I'm US based and I'd say we are at the start of a central bank tightening, so using the 2002-4 period is more appropriate. You already are looking at the data I would start with. $\endgroup$
    – horseless
    Apr 21, 2016 at 16:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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