finMath lib documentation
net.finmath.montecarlo.interestrate.modelplugins

## Class BlendedLocalVolatilityModel

• All Implemented Interfaces:
Serializable, LIBORCovarianceModelCalibrateable

public class BlendedLocalVolatilityModel
extends AbstractLIBORCovarianceModelParametric
Blended model (or displaced diffusion model) build on top of a standard covariance model. The model constructed for the i-th factor loading is $( a + (1-a) L_{i}(t) ) F_{i}(t) \text{,}$ or $( a L_{i,0} + (1-a) L_{i}(t) ) F_{i}(t) \text{,}$ if an initial forward curve $$i \mapsto L_{i,0}$$ is given, where a is the displacement or blending parameter and Li is the realization of the i-th component of the stochastic process and Fi is the factor loading from the given covariance model. If a forward curve is provided, the deterministic value Li,0 is calculated form this curve (using fixing in Ti), otherwise it is replaced by 1. The parameter of this model is a joint parameter vector, consisting of the parameter vector of the given base covariance model and appending the displacement parameter at the end. If this model is not calibrateable, its parameter vector is that of the covariance model, i.e., only the displacement parameter will be not part of the calibration.
Version:
1.0
Author:
Christian Fries
Serialized Form
• ### Constructor Summary

Constructors
Constructor and Description
BlendedLocalVolatilityModel(AbstractLIBORCovarianceModelParametric covarianceModel, double displacement, boolean isCalibrateable)
Displaced diffusion model build on top of a standard covariance model.
BlendedLocalVolatilityModel(AbstractLIBORCovarianceModelParametric covarianceModel, ForwardCurveInterface forwardCurve, double displacement, boolean isCalibrateable)
Displaced diffusion model build on top of a standard covariance model.
BlendedLocalVolatilityModel(AbstractRandomVariableFactory randomVariableFactory, AbstractLIBORCovarianceModelParametric covarianceModel, double displacement, boolean isCalibrateable)
Displaced diffusion model build on top of a standard covariance model.
BlendedLocalVolatilityModel(AbstractRandomVariableFactory randomVariableFactory, AbstractLIBORCovarianceModelParametric covarianceModel, ForwardCurveInterface forwardCurve, double displacement, boolean isCalibrateable)
Displaced diffusion model build on top of a standard covariance model.
• ### Method Summary

All Methods
Modifier and Type Method and Description
Object clone()
AbstractLIBORCovarianceModelParametric getBaseCovarianceModel()
Returns the base covariance model, i.e., the model providing the factor loading F such that this model's i-th factor loading is (a Li,0 + (1-a)Li(t)) Fi(t) where a is the displacement and Li is the realization of the i-th component of the stochastic process and Fi is the factor loading loading from the given covariance model.
AbstractLIBORCovarianceModelParametric getCloneWithModifiedParameters(double[] parameters)
Return an instance of this model using a new set of parameters.
RandomVariableInterface[] getFactorLoading(int timeIndex, int component, RandomVariableInterface[] realizationAtTimeIndex)
Return the factor loading for a given time index and component index.
RandomVariableInterface getFactorLoadingPseudoInverse(int timeIndex, int component, int factor, RandomVariableInterface[] realizationAtTimeIndex)
Returns the pseudo inverse of the factor matrix.
double[] getParameter()
Get the parameters of determining this parametric covariance model.
• ### Methods inherited from class net.finmath.montecarlo.interestrate.modelplugins.AbstractLIBORCovarianceModelParametric

getCloneCalibrated, getCloneCalibrated, getCloneCalibrated, toString
• ### Methods inherited from class net.finmath.montecarlo.interestrate.modelplugins.AbstractLIBORCovarianceModel

getCovariance, getCovariance, getFactorLoading, getFactorLoading, getLiborPeriodDiscretization, getNumberOfFactors, getTimeDiscretization
• ### Methods inherited from class java.lang.Object

equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
• ### Constructor Detail

• #### BlendedLocalVolatilityModel

public BlendedLocalVolatilityModel(AbstractRandomVariableFactory randomVariableFactory,
AbstractLIBORCovarianceModelParametric covarianceModel,
ForwardCurveInterface forwardCurve,
double displacement,
boolean isCalibrateable)
Displaced diffusion model build on top of a standard covariance model. The model constructed is (a L0 + (1-a)L) F where a is the displacement and L is the component of the stochastic process and F is the factor loading from the given covariance model. The parameter of this model is a joint parameter vector, where the first entry is the displacement and the remaining entries are the parameter vector of the given base covariance model. If this model is not calibrateable, its parameter vector is that of the covariance model.
Parameters:
randomVariableFactory - The factory used to create RandomVariableInterface objects from constants.
covarianceModel - The given covariance model specifying the factor loadings F.
forwardCurve - The given forward curve L0
displacement - The displacement a.
isCalibrateable - If true, the parameter a is a free parameter. Note that the covariance model may have its own parameter calibration settings.
• #### BlendedLocalVolatilityModel

public BlendedLocalVolatilityModel(AbstractRandomVariableFactory randomVariableFactory,
AbstractLIBORCovarianceModelParametric covarianceModel,
double displacement,
boolean isCalibrateable)
Displaced diffusion model build on top of a standard covariance model. The model performs a linear interpolation of a log-normal model (a = 0) and a normal model (a = 1). The model constructed is (a + (1-a)L) F where a is the displacement and L is the component of the stochastic process and F is the factor loading loading from the given covariance model. The parameter of this model is a joint parameter vector, where the first entry is the displacement and the remaining entries are the parameter vector of the given base covariance model. If this model is not calibrateable, its parameter vector is that of the covariance model.
Parameters:
randomVariableFactory - The factory used to create RandomVariableInterface objects from constants.
covarianceModel - The given covariance model specifying the factor loadings F.
displacement - The displacement a.
isCalibrateable - If true, the parameter a is a free parameter. Note that the covariance model may have its own parameter calibration settings.
• #### BlendedLocalVolatilityModel

public BlendedLocalVolatilityModel(AbstractLIBORCovarianceModelParametric covarianceModel,
ForwardCurveInterface forwardCurve,
double displacement,
boolean isCalibrateable)
Displaced diffusion model build on top of a standard covariance model. The model constructed is (a L0 + (1-a)L) F where a is the displacement and L is the component of the stochastic process and F is the factor loading from the given covariance model. The parameter of this model is a joint parameter vector, where the first entry is the displacement and the remaining entries are the parameter vector of the given base covariance model. If this model is not calibrateable, its parameter vector is that of the covariance model.
Parameters:
covarianceModel - The given covariance model specifying the factor loadings F.
forwardCurve - The given forward curve L0
displacement - The displacement a.
isCalibrateable - If true, the parameter a is a free parameter. Note that the covariance model may have its own parameter calibration settings.
• #### BlendedLocalVolatilityModel

public BlendedLocalVolatilityModel(AbstractLIBORCovarianceModelParametric covarianceModel,
double displacement,
boolean isCalibrateable)
Displaced diffusion model build on top of a standard covariance model. The model performs a linear interpolation of a log-normal model (a = 0) and a normal model (a = 1). The model constructed is (a + (1-a)L) F where a is the displacement and L is the component of the stochastic process and F is the factor loading loading from the given covariance model. The parameter of this model is a joint parameter vector, where the first entry is the displacement and the remaining entries are the parameter vector of the given base covariance model. If this model is not calibrateable, its parameter vector is that of the covariance model.
Parameters:
covarianceModel - The given covariance model specifying the factor loadings F.
displacement - The displacement a.
isCalibrateable - If true, the parameter a is a free parameter. Note that the covariance model may have its own parameter calibration settings.
• ### Method Detail

• #### clone

public Object clone()
Specified by:
clone in class AbstractLIBORCovarianceModelParametric
• #### getBaseCovarianceModel

public AbstractLIBORCovarianceModelParametric getBaseCovarianceModel()
(a Li,0 + (1-a)Li(t)) Fi(t)
where a is the displacement and Li is the realization of the i-th component of the stochastic process and Fi is the factor loading loading from the given covariance model.
Returns:
The base covariance model.
• #### getParameter

public double[] getParameter()
Description copied from class: AbstractLIBORCovarianceModelParametric
Get the parameters of determining this parametric covariance model. The parameters are usually free parameters which may be used in calibration.
Specified by:
getParameter in class AbstractLIBORCovarianceModelParametric
Returns:
Parameter vector.
• #### getCloneWithModifiedParameters

public AbstractLIBORCovarianceModelParametric getCloneWithModifiedParameters(double[] parameters)
Description copied from class: AbstractLIBORCovarianceModelParametric
Return an instance of this model using a new set of parameters. Note: To improve performance it is admissible to return the same instance of the object given that the parameters have not changed. Models should be immutable.
Specified by:
getCloneWithModifiedParameters in class AbstractLIBORCovarianceModelParametric
Parameters:
parameters - The new set of parameters.
Returns:
An instance of AbstractLIBORCovarianceModelParametric with modified parameters.

public RandomVariableInterface[] getFactorLoading(int timeIndex,
int component,
RandomVariableInterface[] realizationAtTimeIndex)
Description copied from class: AbstractLIBORCovarianceModel
Return the factor loading for a given time index and component index. The factor loading is the vector fi such that the scalar product
fjfk = fj,1fk,1 + ... + fj,mfk,m
is the instantaneous covariance of the component j and k.
Specified by:
getFactorLoading in class AbstractLIBORCovarianceModel
Parameters:
timeIndex - The time index at which factor loading is requested.
component - The index of the component i.
realizationAtTimeIndex - The realization of the stochastic process (may be used to implement local volatility/covariance/correlation models).
Returns:

public RandomVariableInterface getFactorLoadingPseudoInverse(int timeIndex,
int component,
int factor,
RandomVariableInterface[] realizationAtTimeIndex)
Description copied from class: AbstractLIBORCovarianceModel
Returns the pseudo inverse of the factor matrix.
Specified by:
getFactorLoadingPseudoInverse in class AbstractLIBORCovarianceModel
Parameters:
timeIndex - The time index at which factor loading inverse is requested.
component - The index of the component i.
factor - The index of the factor j.
realizationAtTimeIndex - The realization of the stochastic process (may be used to implement local volatility/covariance/correlation models).
Returns: