# Interpolating probabilities of default

I have a table of cumulative probabilities of default of industrial bonds, in time and credit rating. It is similar to S&P whitepaper here. Basically, it looks like this (sample numbers):

Years | AAA   | AA    | A    | ... | C
1   | 0.01% | 0.04% | 0.09 | ...
...
30  | 1%    | 5%    | 8%   | ...


This data has gaps both in time and in credit rating. Is there any standard methodology on how to do such interpolations/extrapolations or perhaps a paper/book I can read on the subject?

On a related note, what if the numbers in the table are interest rates for the corresponding bonds - is there a methodology for that?

Thank you very much.

UPDATE Related Question

• I think you can use that the sum of the probabilities must be $1$. – emcor Oct 1 '14 at 6:56
• @emcor The defaults are not mutually exclusive or exhaustive. There is no reason that they should add up to 1. – Degustaf Oct 2 '14 at 1:05

I believe that your problem can be formulated as:

Find PD matrix that is as close as possible to a given PD matrix (result of some previous calibration, or the matrix computed using average hazard rate, or any other "target", or the penalty on non-smoothness) subject to the following constraints:

1. The values that are given must be matched exactly
2. Monotonicity constraints (in both time and rating) must be satisfied, and so are 0 and 1 bounds.

This fits the definition of quadratic programming. Matlab has got it [implemented].2

Quadratic programming is a method that allows you to find the best possible answer. However, if there are not too many gaps, and being close to the "target" is not essential, you can interpolate/extrapolate them manually, subject to constraints

• How does the quadratic optimization take into account the monotonicity constraints? – James Oct 2 '14 at 18:37
• Yes, you can use inequality constraints for this. – Yulia V Oct 2 '14 at 19:16
• I agree, you can even constrain |x| instead of x^2 to make this a much simpler (and faster) linear programming problem. +1, but I was looking for some method to use the fact that this is default probability. If I cannot find it, will be happy to implement this one :) Thank you very much – gt6989b Oct 3 '14 at 19:22
• All sensible "targets" I can think of are quadratic, but if your preferred one is linear, then linear programming it is. The constraints mentioned above already contain all properties of PD surface, there is nothing more to it, as far as I know. But if you find additional criteria, could you share? – Yulia V Oct 3 '14 at 19:46
• After 5 years, no further information :-) Happy to accept your answer, sorry it came so late – gt6989b Aug 14 at 4:01

The typical approach is to try to fit a ratings migration matrix to available rating transition data.

If default rates are all you have then that's going to be difficult. Instead, I might try to fit a separate reduced form credit model on survival probability $P_\ell$ for each rating $\ell$ by fitting the function

$$P_\ell(T) = \exp\left( -\int_0^T h(t) dt\right)$$

with $h(t)$ constrained to be a useful 2-parameter function, such as

$$h(t) = C_0 + C_1/t$$

• Is there a package that does that? – James Oct 1 '14 at 18:45
• interesting idea, will think about it – gt6989b Oct 3 '14 at 19:19

I worked for a company where we had a similar problem with a volatility surface. I tried applying LOESS to it, but it didn't work. The final result has to conform to some obvious monotonicity restrictions and if that is not built into the smoothing method there will always be some odd points in the end.

Another problem is that smoothing typically allows the fitted surface to deviate from the observed values, which in some cases may be unacceptable. That is, it makes more sense to have a not very smooth, piecewise linear surface rather than a smooth one that deviates from some important observed values even a bit.

Unless you really need to automate this, the best way is to put it into Excel and perform a few manual interpolations of rows and columns, until the 3-d plot starts making sense.

• Let us know how it goes. – James Oct 4 '14 at 5:51