Skip to content
All library documents

Why CDS Tenor Residuals Undermine Nelson–Siegel PnL Explanations

Article Quant Q&A · Author: cp123456

Summary

The document examines whether a Dynamic Nelson–Siegel model can explain CDS curve PnL when individual tenor residuals vary sharply over time. Even with high regression fit, changing residuals can dominate the PnL of a concentrated tenor position, while residuals across tenor groups appear to offset one another. Attempts to stabilize them by estimating decay parameters nonlinearly, using separate slope and curvature decay values, or extending to Svensson did not resolve the issue.

The response attributes the difficulty mainly to CDS quote quality: five-year spreads are the most reliable and executable, while other tenors often have fewer contributors, higher dispersion, and wider bid-ask spreads. It describes fitting a two-parameter survival curve using a shape estimated by credit-rating bucket. The objective gives high weight to matching the five-year quote, and lower, quality-adjusted weight to other quotes, while also encouraging agreement with the bucket shape shifted to the name’s five-year level. An optimizer then estimates the curve. The author reports better prediction of executable non-five-year levels than consensus quotes, but provides no quantitative validation or general guarantee.

Key ideas

  • High regression fit does not ensure stable tenor residuals or reliable PnL attribution.
  • CDS quotes away from five years may be sparse, noisy, and less executable than the five-year quote.
  • A credit-bucket average curve can provide a prior for the relative shape of an individual CDS curve.
  • Fit the five-year level closely and weight other tenor quotes according to their reported quality.
  • The described two-parameter survival-curve approach is an empirical proposal, with limited validation stated.

Tags

Full text
# Structure of the residuals in Dynamic Nelson Siegel model


# Structure of the residuals in Dynamic Nelson Siegel model












I tried to implement a DNS model to a CDS spread curve. I thus used the same reasoning from Diebold and Li article Forecasting the term structure of government bond yields.

By fixing lambda constant, the problem reduces to a "simple" linear regression to calculate the "Level", "Slope", and "Curvature" coefficient. What I would want to do is, considering a given "trading" position on the curve, to calculate the PnL sensitivity to a move in the 3 NS parameters. (Let us say for example I bought protection on the 3Y and sold on the 4 and 7Y, what is my PnL sensitivity if the curve moves parallel (CR01 or move in the Level parameter), steepens (move in the slope parameter) or gets more "curvy" (move in the curvature parameter)). When bumping one of the parameters, I keep the residuals constant.

As expected, the R-squared of the regressions are very high, but the residuals have an erratic behaviour across time. For example on a date A - the regression would give a residual of +2 bps on the 5Y, but on date B would give a residual of -3 bps. As thus if a trader has a concentrated position on the 5Y point, this reisdual change strongly reduces the explanatory power of the model in the objective of PnL explanation.

Is there a way to "stabilise" the residuals across time? One interesting thing is that the sum of the residuals across all tenors is always very close to 0. As thus, there are some "residuals" clusters that tend to be negatively correlated. One could group the "very front end" tenors (below 1 year), the front end tenors (1 to 2.5 years) the belly tenor (3 to 7.5) and the long-end tenors (+7.5Y). For example at date A, very front end tenors would have positive residuals, front end would have negative ones, belly end would have positive ones and long end would have negative ones. Sometimes it would invert, and the signs would flip.

What I tried: I tried not to fix the lambda parameter using non-linear regression, tried to use a different value for the lambda associated to the slope parameter and the curvature one, tried the Svensson extension... but all of these failed.

Edit one: If I may give a bit more sense to how the residuals substitute each other, here is the correlation matrix of the residuals across time:

We can clearly see what I explained previously, that there are some groups of residuals (the very short-end, the-short end, the belly-end, and the long-end). Could this potentially come from the slope parameter substituting with the level parameter (the intercept)?

If I may give more details on a certain timeframe from February to April. These are the residuals per tenor (- the residuals in fact, i.e. the model spread - the real spread), you can see for example the volatility of the 10Y tenor residuals (from -2 at the beginning to +2)

You can also see below how the curve changed on this period:

One more time you can see at the beginning, how the DNS curve (blue): -Overrestimates the very short-end -Underestimates the short end -Overestimate the belly end -Underestimate the long end

And you cann see how the structure changes for all, i.e that it can go fom this structure Under-Over-Under-Over to Over-Under-Over-Under.

## Answer by Dimitri Vulis (score 2)

https://quant.stackexchange.com/a/81492

One of the problems with CDS spreads is that for most names, the 5Y is the quote, but the other tenors are kind of afterthought.

I actually worked on trying to get useful insights from CDS curve shapes quite a bit some years ago. In addition to MarkIt, we had quotes from the actual traders, but that doesn't make much difference.

I tried NS and PCA, could not get anything practically useful, the data is too uncertain to get any meaningful NS parameters or PC3.

We ended up with a parametric survival curve, with only 2 parameters, from https://grodri.github.io/survival/. I'll explain the problems:

MarkIt consensus 5Y quote is the real quote, giving you pretty good idea of the level of the curve and where you could execute the trade. The other tenors are an afterthought, not a very good indication of the shape of the curve or where you could execute. The bid-ask spread is much wider for tenors other than 5Y.

MarkIt has a very interesting data quality report. You can usually see that much fewer people contribute tenors other than 5Y, and usually the standard deviation is much higher.

I ended up with the following:

We assumed that the shapes of the curves in the same credit risk bucket tend to be similar. (We used risk rating for buckets, we should have also tried grouping by the 5Y level.)

For each bucket, we calculated the average CDS spread across all names having this rating, by tenor. This is the "shape" curve. We don't really care about its level, just the differences between its 5Y and other tenors.

We defined the objective function as the distance from:

the 5Y quote - want to match very closely.

For other tenors - the distance from the MarkIt quotes (with lower weight than on 5Y depending on the MarkIt data quality report) and also from: the credit bucket shape curve shifted in parallel to match this name's 5Y quote.

We ran an optimizer (we used Levenberg-Marquardt, but many others would work) to solve for the 2 curve parameters. The resulting curve was a better predictor than MarkIt quotes of where we could execute tenors $\ne$ 5Y.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.