# Estimate Merton Distance-to-DefaultÂ¶

Merton (1974) Distance to Default (DD) model is useful in forecasting defaults. This post documents a few ways to empirically estimate Merton DD (and default probability) as in Bharath and Shumway (2008 RFS).

## The Merton ModelÂ¶

The total value of a firm follows geometric Brownian motion,

where,

- \(V\) is the total value of the firm
- \(\mu\) is the expected return on V (continuously compounded)
- \(\sigma_V\) is the volatility of firm value
- \(dW\) is a standard Wiener process

Assuming the firm has one discount bond maturing in \(T\) periods, the equity of the firm can be viewed as a call option on the underlying value of the firm with a strike price equal to the face value of the firm's debt and a time-to-maturity of \(T\).

The equity value of the firm is hence a function of the firm's value (Black-Scholes-Merton model):

where,

- \(E\) is the market value of the firm's equity
- \(F\) is the face value of the firm's debt
- \(r\) is the risk-free rate
- \(\mathcal{N}(\cdot)\) is the cumulative standard normal distribution function

and,

with \(d_2 = d_1-\sigma_V \sqrt{T}\).

Moreover, the volatility of the firm's equity is related to the volatility of the firm's value, which follows from Ito's lemma,

In the Black-Scholes-Merton model, \(\frac{\partial E}{\partial V}=\mathcal{N}(d_1)\), so that

We observe from the market:

- \(E\), the equity value of the firm, the call option value
- \(\sigma_E\), the volatility of equity

We then infer and solve for:

- \(V\), the total value of the firm
- \(\sigma_V\), the volatility of firm value

Once we have \(V\) and \(\sigma_V\), the distance to default (DD) can be calculated as

where,

- \(\mu\) is an estimate of the expected annual return of the firm's assets

The implied probability of default, or expected default frequency (EDF, registered trademark of Moody's KMV), is

## EstimationÂ¶

### An iterative approachÂ¶

To estimate \(\pi_{Merton}\), an iterative procedure can be applied instead of solving equations (2) and (5) simultaneously (see Crosbie and Bohn (2003), Vassalou and Xing (2004), Bharath and Shumway (2008), etc.).

- Set the initial value of \(\sigma_V=\sigma_E[E/(E+F)]\).
- Use this value of \(\sigma_V\) and equation (2) to infer the market value of firm's assets every day for the previous year.
- Calculate the implied log return on assets each day, based on which generate new estimates of \(\sigma_V\) and \(\mu\).
- Repeat steps 2 to 3 until \(\sigma_V\) converges, i.e., the absolute difference in adjacent estimates is less than \(10^{-3}\).
- Use \(\sigma_V\) and \(\mu\) in equations (6) and (7) to calculate \(\pi_{Merton}\).

### A naÃ¯ve approachÂ¶

A naÃ¯ve approach by Bharath and Shumway (2008) that does not solve equations (2) and (5) is constructed as below.

- Approximate the market value of debt with the face value of debt, so that \(D=F\).
- Approximate the volatility of debt as \(\sigma_D=0.05+0.25\sigma_E\), where 0.05 represents term structure volatility and 25\% of equity volatility is included to allow for volatility associated with default risk.
- Approximate the total volatility as \(\sigma_V = \frac{E}{E+D} \sigma_E + \frac{D}{E+D} \sigma_D\)
- Approximate the return on firm's assets with the firm's stock return over the previous year \(r_{it-1}\).

The naÃ¯ve distance to default is then

and the naÃ¯ve default probability is

## CodeÂ¶

The naÃ¯ve method is too simple and skipped for now.

Here I discuss the iterative approach.

### Original SAS code in Bharath and Shumway (2008 RFS)Â¶

The original code is enclosed in the SSRN version of Bharath and Shumway (2008), and was available on Shumway's website.

However, there are two issues in this version of code:

- The initial value of \(\sigma_V\) is not set to \(\sigma_E[E/(E+F)]\) as described in the paper.
- It does not use the past year's data but the past month.
- At line 36,
`cdt=100*year(date)+month(date)`

accidentally restricts the "past year" daily stock returns to the "past month" later. Note that at line 42-43 it merges by`permno`

and`cdt`

, where`cdt`

refers to a certain year-month. We can pause the program after this data step to confirm that indeed there is only a month of data for each`permno`

. - A correction is to change line 36 to
`cdt=100*&yyy.+&mmm.;`

.

Other issues are minor and harmless.

A copy of this version can be found here on GitHub.

### My codeÂ¶

Based on the original SAS code in Bharath and Shumway (2008), I made some edits and below is a fully self-contained SAS code that executes smoothly. Note that I've corrected the above issues.