User avatar
Topic Author
Posts: 28
Joined: April 13th, 2013, 5:29 pm

Calibration of SABR using Levenberg-Marquardt method

November 14th, 2017, 10:56 pm

Hi all,

I am currently building a SABR calibrator for swaption normal vols, and based on what I have read in the literature it seems like the Levenberg-Marquardt non-linear optimization method is the most popular approach amongst practitioners.

The LM method involves computing the Jacobian coming from the original vector function to be minimised in a least-square sense, e.g. [normal_implied_vol_i(alpha,beta,rho, eta,strike_i) - vol_i ], where the parameters to calibrate in my case would be alpha, rho and eta (beta is fixed).

Given that I need to compute the Jacobian, am I right in saying that I need to manually code up all the partial derivatives of the implied vol SABR formula with respect to alpha, rho and eta? To me this seems the only logical thing to do if I want to stick to using LM even if it is extremely tedious, but maybe I am over-complicating the problem and there is an alternative way of solving it? 

Many thanks to the readers in advance.

Bonus question: the method above involves calibrating directly on vol, but what would be the best approach in case I decide to calibrate directly on swaption prices for different strikes?
User avatar
Posts: 9234
Joined: December 19th, 2001, 4:01 am
Location: California

Re: Calibration of SABR using Levenberg-Marquardt method

November 15th, 2017, 1:33 am

Yes, I'd say you're overcomplicating. IMO, the right order of things is

1. Look for a built-in nonlinear minimizer or library function or add-on in whatever system you are doing this in: Mathematica, Matlab, Excel, C, whatever.

2. If you must write code, google for a "derivative-free" method.

3. If you must do derivatives, just approximate the Jacobian by the diagonal terms, so trivial to invert.

PW by JB has been "Serving the Quantitative Finance Community" since 2001. Continued...



Looking for a quant job, risk, algo trading,...? Browse jobs here...