This post was kindly contributed by SAS ANALYSIS - go there to comment and to read the full post. |
Recently Moody’s warned the US government to degrade its credit rating if the nation’s debt limit increase is not approved [Ref. 1]. The news came right after Standard & Poor’s lowered US’s sovereign rating from AAA to AA. Those rating changes suggest the accumulation of default risk and may cause some butterfly effect.
Before the start of this Great Recession, without much notice, Lehman Brothers’ default probability increased drastically according to a classic model by Merton [Ref. 2]. And this change failed to be disclosed by either Standard & Poor’s rating or the stock price. Here I translated Gunter and Peter’s VBA code for Merton’s model [Ref. 3] into SAS code and reproduced the trend plot. The result clearly shows that implementation of probability and statistics may catch alert within the narrow ‘escape’ window, and therefore help avoid or mitigate risks .
References:
1. ‘Moody’s Warns of Downgrade for U.S. Credit’. The New York Times. 02JUN2011
2. Merton, R.C. ‘On the pricing of corporate debt: The risk structure of interest rates’. The Journal of Finance. 29(2): 449-470. 1974
3. Gunter Loeffler and Peter Posch. ‘Credit Risk Modeling using Excel and VBA’. The 2nd edition. Wiley.
/*******************READ ME*********************************************
* - The eve of Lehman Brothers' demise -
*
* SAS VERSION: 9.2.2
* DATE: 04jun2011
* AUTHOR: hchao8@gmail.com
****************END OF READ ME******************************************/
proc fcmp outlib = work.cg.func;
function cg_ps(s, sigma_s, d, lambda, sigma_b, t);
d1 = (s + lambda*d) * exp(sigma_b ** 2) / (lambda *d);
alpha = (((sigma_s*s) / (s + lambda * d))**2 * t + sigma_b**2)**0.5;
x = probnorm(-(alpha/2) + (log(d1)/alpha)) -
d1 * probnorm(-(alpha/2) - (log(d1) / alpha));
return(x);
endsub;
run;
data record;
input @1 date $7. @11 sp 4.2 @18 dps 20.8 @32 Vol30d 4.2 @43 s_p $2.;
cards;
Q4 2003 36.11 69.95612419 25.26 A+
/*To buy Gunter and Peter's book will have the full data*/
Q2 2008 36.81 127.8 99.93 A
;;;
run;
options cmplib = work.cg;
data scored;
set record;
global_rcv = 0.5;
vol_barrier = 0.1;
time = 1;
vol30d = vol30d / 100;
pd = 1 - cg_ps(sp, vol30d, dps, global_rcv, vol_barrier, time);
label sp = 'Lehman Brothers'' stock price'
pd = 'Probability of default';
run;
proc sgplot data = scored;
series x = date y = sp;
series x = date y = pd / y2axis;
yaxis values= (0 to 90 by 10) label = 'stock price($)';
y2axis values= (0 to 0.4 by 0.05) grid
label = 'Default rating by Merton''s model';
refline 'Q4 2005' / axis = x;
inset "Time period when S&P rating as A" / position = topright ;
inset "Time period when S&P rating as A+" / position = topleft;
run;
This post was kindly contributed by SAS ANALYSIS - go there to comment and to read the full post. |