Constrained Calibration of Nested Pricing Models Across Instrument Sets
Summary
The document considers calibrating a more flexible pricing model against two classes of derivatives when the model nests a simpler one. Minimizing a combined sum of squared pricing errors guarantees that the richer model’s total error is no greater than the simpler model’s total, since the simpler model is available as a special case. It does not guarantee an improvement for each instrument class separately: a gain on one set can offset worse fit on the other.
The proposed procedure is to calibrate the simpler model first, record its error for each class, and then calibrate the richer model while adding constraints that its error on every class stay at or below the corresponding baseline. This reframes the task as constrained, multi-objective optimization. The answer notes that implementation depends on the model and optimizer, and that a solution may lie on a constraint boundary. It offers no worked MATLAB implementation and does not guarantee that strict improvement is feasible; the constraints may only permit matching the baseline for some classes.
Key ideas
- A lower combined calibration loss does not ensure lower error on each instrument class.
- Fit the simpler nested model first to establish class-specific baseline errors.
- Constrain the richer model so its error for each class does not exceed that baseline.
- The constrained optimum may lie on a boundary, and its implementation depends on the model and optimizer.
- Feasibility of simultaneous improvement is not guaranteed.
Tags
Full text
# Calibration of nested pricing models consistently on two different classes of derivatives
# Calibration of nested pricing models consistently on two different classes of derivatives
Hi everyone, I'm programming in MATLAB and I have the following optimization problem in calibrating several nested specifications of pricing models.
Summary: I have two pricing models ($1$ and $2$, $1$ is nested in $2$, i.e. model $2$ reduces to model $1$ if a particular configuration of its parameters is considered) and two sets of derivatives ($A$ and $B$). I calibrate each model on the two sets of instruments AT THE SAME TIME, minimizing pricing errors. That's fine. The problem arises in the nesting request: I want model $2$ to produce lower pricing errors on BOTH instruments sets SEPARATELY and I'm wondering if can define a loss function that automatically achieves this task, i.e. I want that this consistency condition holds: \begin{equation} \left\{ \begin{aligned} error_{A}[2] \leq error_{A}[1] \\ error_{B}[2] \leq error_{B}[1] \end{aligned} \right. \end{equation} and NOT ONLY $$ error_{A}[2] + error_{B}[2] \leq error_{A}[1] + error_{B}[1] $$ end of summary.
I'm considering two sets of derivatives I would like to price, say $A$ and $B$. In the class $A$, there are $i=1,...,N$ instruments, with market prices denoted as $a^{i}_{MKT}$, and in the other one there are $j=1,...,M$ instruments, whose market prices are denoted with $b^{j}_{MKT}$.
I start with a model $1$, depending on a set $\{x\}$ of parameters. Under this model, model prices for instruments $A$ and $B$ are denoted as $a^{i}_{mdl}(x)$ and $b^{j}_{mdl}(x)$.
The simple idea is to calibrate model parameters $\{x\}$ minimizing the pricing error. For example minimizing the Sum-of-Squared-Errors loss:
\begin{equation} \begin{aligned} loss(x) &= loss_{A}(x) + loss_{B}(x) \\ &= \sum^{N}_{i=1}\left|a^{i}_{MKT} - a^{i}_{mdl}(x) \right|^2 + \sum^{M}_{j=1}\left|b^{j}_{MKT} - b^{j}_{mdl}(x) \right|^2 \end{aligned} \end{equation}
In this way, the optimal parameters $\{x_{opt}\}$ will be those minimizing $loss(x)$. Let it be: \begin{equation} \begin{aligned} loss(x_{opt}) &= loss_{A}(x_{opt}) + loss_{B}(x_{opt}) \\ &\stackrel{def}{=} error_{A}[1] + error_{B}[1] \end{aligned} \end{equation}
Now my problem: I'm considering a model $2$ which is a generalization of the model $1$, In the sense that model $2$ depends on the extended parameter set $\{x,y\}$. Model $2$ produces model prices $\hat{a}^{i}_{mdl}(x,y)$ and $\hat{b}^{j}_{mdl}(x,y)$. For the sake of exposition you may think that model $2$ reduces to model $1$ if $y=0$, i.e. $\hat{a}^{i}_{mdl}(x,0) = a^{i}_{mdl}(x)$ and $\hat{b}^{i}_{mdl}(x,0) = b^{i}_{mdl}(x)$.
Now if I keep using the above SSE $loss$ to calibrate model $2$, I will minimize \begin{equation} \begin{aligned} loss(x,y) &= loss_{A}(x,y) + loss_{B}(x,y) \\ &= \sum^{N}_{i=1}\left|a^{i}_{MKT} - \hat{a}^{i}_{MDL}(x,y) \right|^2 + \sum^{M}_{j=1}\left|b^{j}_{MKT} - \hat{b}^{j}_{mdl}(x,y) \right|^2 \end{aligned} \end{equation} Optimized parameters for model $2$ will be $\{x_{opt},y_{opt}\}$ and correspondingly we define: \begin{equation} \begin{aligned} loss(x_{opt},y_{opt}) &= loss_{A}(x_{opt},y_{opt}) + loss_{B}(x_{opt},y_{opt}) \\ &\stackrel{def}{=} error_{A}[2] + error_{B}[2] \end{aligned} \end{equation} Now the above calibrations produce the following nesting relation for sure: $$ error_{A}[2] + error_{B}[2] \leq error_{A}[1] + error_{B}[1] $$ but NOT NECESSARY \begin{equation} \left\{ \begin{aligned} error_{A}[2] \leq error_{A}[1] \\ error_{B}[2] \leq error_{B}[1] \end{aligned} \right. \end{equation} that is what I want. For example, model $2$ may highly improve pricing of $A$ derivatives, but slightly mis-pricing on the set $B$, w.r.t. model $1$. What I want is that model $2$ improve pricing w.r.t. to model $1$ on BOTH $A$ and $B$ sets!
Can anybody suggest me a loss/calibrating procedure/whatever achieving this goal. Thank you in advance for your time and attention.
Technical note: my procedure is performed with lsqnonlin, in the Matlab optimization toolbox.
## Answer by Ulysses (score 4, accepted)
https://quant.stackexchange.com/a/16014
It seems that implicitly you have a multi-objective optimization in mind, hence of course it may happen that you are not able to achieve all the objectives simultaneously. Let's say that output of a more general model is $f(x,y)$ so that the output of the first model is $f(x,0) = f_0(x)$. Denoting market prices by $m_k$ which in your case means $m_1 = A$ and $m_2= B$ you perform the following optimization: $$ (x',y'):=\arg\min \sum_k d(f,m_k),\qquad x'':=\arg\min \sum_k d(f_0,m_k), $$ where $d$ denotes an appropriate distance function ($L_2$ norm in your case). Now, if you want to satisfy additional constraints $d(f(x',y'),m_k) \leq d(f(x'',0),m_k) \;\forall k$, you shall just include them in your optimization. I would outline the steps as follows:
- Compute $x''$ just by fitting the first model into the market data.
- Use constraints with $x''$ obtained in the previous step to find optimal $(x',y')$ for the second model.
The detailed implementation of the second step depends on the structure of the model, but essentially it only makes the procedure that you used more complex since now you have to take constraints into account, so that the optimal solution may lye on the boundary described by one of the constraints. For example, if you used gradient descent before, now you can also use it but disregarding the direction that leads you outside of constraints: in that case just move along the constraint in the desired direction.Shown 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.