Constrained Optimization for Libor Market Model Calibration
Summary
The document concerns fitting a Libor Market Model volatility function to market observations by minimizing a nonlinear least-squares objective over five parameters. The calibration has positivity conditions, including a combined constraint on two parameters, and the question is how to enforce them in Matlab. An unconstrained simplex search is reported to return infeasible parameters for some starting values.
The answer proposes reparameterizing the combined condition by expressing one parameter as a small positive offset minus another, making the required sum positive by construction. It also recommends a constrained least-squares solver for the residual objective and mentions a general constrained optimizer when additional flexibility is useful, especially if derivatives are supplied. The response is a brief solver suggestion, not a comparison of convergence behavior or calibration quality; initialization, parameter scaling, the choice of offset, and robustness across market data are not evaluated.
Key ideas
- The calibration objective is a nonlinear least-squares fit of model and market volatilities.
- Unconstrained local optimization can converge to parameter values that violate required inequalities.
- Reparameterization can enforce a sum constraint by making that sum positive by construction.
- A constrained least-squares solver fits the stated objective, while a general constrained optimizer offers more flexibility.
- The document does not compare solver performance or provide a complete implementation.
Tags
Full text
# Numerical Optimizer Matlab Calibration LMM
# Numerical Optimizer Matlab Calibration LMM
I am trying to mimimize the following function in order to calibrate the Libor Market Model
$$\sum_{i=1}^{n} \left(\sigma_i^{market}-\sigma_i^{Reb}\left(a,b,c,d,\beta\right)/\sqrt{T_i}\right)^2,$$
where $\sigma_i^{market}$ is given and $\sigma_i^{Reb}\left(a,b,c,d,\beta\right)$ is a nonlinear function in the unknown parameters $a,b,c,d,\beta$.
The parameters should have the following constraints: $$a+d>0$$ $$d>0$$ $$c>0$$ $$\beta \geq 0$$ Which numerical optimizer method in Matlab would be a good candidate such that the constraints are satisfied?
I tried to implement the calibration with the unconstraint local optimizer fminsearch based on the Downhill-simplex algorithm. Nevertheless, with different choices of initial values of the parameters, the algorithm converges to parameters that do not respect the constraints.
So I decided to try a constrained numerical optimizer, the non linear least squares method (lsqnonlin) in Matlab with as lowerbounds 0 for the last three constraints. However, I do not know how to impose constraint number 1 with this method. Does someone have any suggestions?
Would the (unconstrained?) Levenberg Marquardt be a good candidate? Other ideas?
Thank you in advance.
## Answer by Stravog (score 2)
https://quant.stackexchange.com/a/24695
You might want to set $a= \epsilon - d$ and write $\epsilon>0$ as a constraint. I guess $\textbf{lsqnonlin}$ is the suitable fonction for what you intend to do. I personnally like to use and play around with $\textbf{fmincon}$, which allows more flexibility and performs well, if you are willing to provide Jacobian and/or Hessian in algorithms optionsShown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.