I have access to a very large bond database (>20m rows) where 50% of the set are matured bonds for which a dummy variable identifies whether the bond defaulted or not. The remaining 50% are 'live' bonds.

I have already trained an ML classifier and predicted the probability of default for the 'live' component of the set. My endgame here is to evaluate the live dataset from a risk-adjusted return perspective. I have come up with the following augmented Sharpe ratio $\tilde{S_i}$ that can be applied on an individual bond basis:

$\tilde{S_i} = \log [ \frac{R_i}{\hat{p_i}(\text{Default})}]$

Is anyone aware of similar methods to evaluate the risk-adjusted expected return of debt securities? Does my method make sense to you? I could highly use some comments.

  • $\begingroup$ Im having a think about answering this, but what model did you use as your ML classifier? $\endgroup$
    – Attack68
    Mar 14, 2019 at 17:32
  • $\begingroup$ @Attack68 RandomForest. $\endgroup$
    – JDG
    Mar 15, 2019 at 6:29

1 Answer 1


Disclaimer: these are just opinions, I do not necessarily have authoritative knowledge in this topic.

If you consider the traditional Sharpe definition:

$$S = \frac{reward}{risk}$$ where reward is the expected return (above risk free rate) and risk is the standard deviation of reward, it is not clear to me how your augmented Sharpe ratio is related to this. Instead, my instinctive approach would be to model the return of the bond under a benoulli distribution with $p_i$ the probability of default, i.e. when random variable $X_i=1$ and no default if $X_i=0$. Furthermore we need some consistency of time so I will measure over a time period $\Delta t$.

$$ reward_i = (100 + r_i) (1 - X_i) + 100(1-L_{gd})X_i - C_i$$

where $r_i$ is the return of the bond over $\Delta t$, $C_i$ is some standardisation, like subtracting risk free rate, and we have a loss given default factor. If you let $R_i=100+r_i$ and $L_i=100(1-L_{gd})$ then;

$$ E[reward_i] = R_i(1-p_i)+L_ip_i-C_i$$ and $$ Var(reward_i) = Var((-R_i+L_i)X_i)=(R_i-L_i)^2p_i(1-p_i)$$

So you end up with a formula which states that;

$$Sharpe(p_i; R_i, L_i, C_i) = \frac{R_i(1-p_i)+L_ip_i - C_i}{\pm(R_i-L_i)\sqrt{p_i(1-p_i)}} \;.$$

As a completely separate point I would suspect that your machine learning process would benefit by conditioning itself on the data of the timing of defaults. This was a failure of models based on copulas in the credit crisis if I recall. It might end up being quite a complicated formulation of a model that accounts for similarity based on timeliness of defaults.

Happy for harsh criticism.. don't hold back..

  • $\begingroup$ Much appreciate the feedback. My immediate concern is that I do not have a variable depicting loss given default, however I suppose proxies can be found. I will think this through and return. Have a nice week-end. $\endgroup$
    – JDG
    Mar 15, 2019 at 16:22
  • $\begingroup$ But then you also don't have LDG for your own model either, but perhaps this is also something you can train given your sizeable database and known defaults?? $\endgroup$
    – Attack68
    Mar 15, 2019 at 16:30
  • $\begingroup$ I may actually be able to retrieve it. Furthermore, I can use the LDG to calculate the implied default probability for each loan (see quant.stackexchange.com/a/30232/39226). Perhaps another direction to go is calculating the spread across p_implied and p_ML for each loan, as it should indicate whether loans are over or underpriced in terms of risk. Thoughts? $\endgroup$
    – JDG
    Mar 15, 2019 at 17:26
  • $\begingroup$ Well I would have thought that you ML already factored as much viable information as it could, so I would have assumed implied probability (if it was available) was a (major) feature. However, LGD is only known (and not even necessarily immediately) for loans that have defaulted. You cannot know LGD before a default so any metric for LGD will be some estimate from which you can then derive a probability. TBH it is hard to know what to suggest without know the extent of your dataset, often it all comes down to the quality of your data! $\endgroup$
    – Attack68
    Mar 15, 2019 at 17:32
  • $\begingroup$ I should have clarified that, apologies. I do not have a metric stating LGD for individual loans, however I have an average LGD metric for the overall dataset. Only Default (1/0) and a range of loan characteristics are recorded at the loan level. $\endgroup$
    – JDG
    Mar 15, 2019 at 18:19

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.