SERVING THE QUANTITATIVE FINANCE COMMUNITY

mekornilol
Topic Author
Posts: 31
Joined: April 13th, 2013, 5:29 pm

### Calibration of SABR using Levenberg-Marquardt method

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?

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?

Alan
Posts: 9512
Joined: December 19th, 2001, 4:01 am
Location: California
Contact:

### Re: Calibration of SABR using Levenberg-Marquardt method

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.