Module net.finmath.lib
Class ExponentialDecayLocalVolatilityModel
java.lang.Object
net.finmath.montecarlo.interestrate.models.covariance.AbstractLIBORCovarianceModel
net.finmath.montecarlo.interestrate.models.covariance.AbstractLIBORCovarianceModelParametric
net.finmath.montecarlo.interestrate.models.covariance.ExponentialDecayLocalVolatilityModel
- All Implemented Interfaces:
Serializable
,LIBORCovarianceModel
,LIBORCovarianceModelCalibrateable
Exponential decay model build on top of a given covariance model.
The model constructed for the i-th factor loading is
(Li(t) + d) Fi(t)
where d is the displacement 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.
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
- See Also:
- Serialized Form
-
Constructor Summary
ConstructorsConstructorDescriptionExponentialDecayLocalVolatilityModel(AbstractLIBORCovarianceModelParametric covarianceModel, double decay, boolean isCalibrateable)
Exponential decay model build on top of a standard covariance model.ExponentialDecayLocalVolatilityModel(RandomVariableFactory randomVariableFactory, AbstractLIBORCovarianceModelParametric covarianceModel, double decay, boolean isCalibrateable)
Exponential decay model build on top of a standard covariance model.ExponentialDecayLocalVolatilityModel(RandomVariableFactory randomVariableFactory, AbstractLIBORCovarianceModelParametric covarianceModel, RandomVariable decay, boolean isCalibrateable)
Exponential decay model build on top of a standard covariance model. -
Method Summary
Modifier and TypeMethodDescriptionclone()
Returns the base covariance model, i.e., the model providing the factor loading F such that this model's i-th factor loading is exp(- a t) Fi(t) where a is the decay parameter and Fi is the factor loading from the given covariance model.getCloneWithModifiedData(Map<String,Object> dataModified)
Returns a clone of this model where the specified properties have been modified.getCloneWithModifiedParameters(double[] parameters)
Return an instance of this model using a new set of parameters.getCloneWithModifiedParameters(RandomVariable[] parameters)
Return an instance of this model using a new set of parameters.getFactorLoading(int timeIndex, int component, RandomVariable[] realizationAtTimeIndex)
Return the factor loading for a given time index and component index.getFactorLoadingPseudoInverse(int timeIndex, int component, int factor, RandomVariable[] realizationAtTimeIndex)
Returns the pseudo inverse of the factor matrix.Get the parameters of determining this parametric covariance model.double[]
Get the parameters of determining this parametric covariance model.Methods inherited from class net.finmath.montecarlo.interestrate.models.covariance.AbstractLIBORCovarianceModelParametric
getCloneCalibrated, getCloneCalibrated, getCloneCalibratedLegazy, toString
Methods inherited from class net.finmath.montecarlo.interestrate.models.covariance.AbstractLIBORCovarianceModel
getCovariance, getCovariance, getFactorLoading, getFactorLoading, getLiborPeriodDiscretization, getNumberOfFactors, getTimeDiscretization
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface net.finmath.montecarlo.interestrate.models.covariance.LIBORCovarianceModel
getCovariance, getCovariance, getFactorLoading, getFactorLoading, getLiborPeriodDiscretization, getNumberOfFactors, getTimeDiscretization
-
Constructor Details
-
ExponentialDecayLocalVolatilityModel
public ExponentialDecayLocalVolatilityModel(RandomVariableFactory randomVariableFactory, AbstractLIBORCovarianceModelParametric covarianceModel, RandomVariable decay, boolean isCalibrateable)Exponential decay model build on top of a standard covariance model. The model constructed for the i-th factor loading is exp(- a t) Fi(t) where a is the decay parameter and Fi is the factor loading from the given covariance model. The parameter of this model is a joint parameter vector, consisting of the parameter vector of the given base covariance model and appending the decay parameter at the end. If this model is not calibrateable, its parameter vector is that of the underlying covariance model, i.e., only the decay parameter will be not part of the calibration.- Parameters:
randomVariableFactory
- A random variable factory (used when cloning with modifed parameters).covarianceModel
- The given covariance model specifying the factor loadings F.decay
- The decay a.isCalibrateable
- If true, the parameter a is a free parameter. Note that the covariance model may have its own parameter calibration settings.
-
ExponentialDecayLocalVolatilityModel
public ExponentialDecayLocalVolatilityModel(RandomVariableFactory randomVariableFactory, AbstractLIBORCovarianceModelParametric covarianceModel, double decay, boolean isCalibrateable)Exponential decay model build on top of a standard covariance model. The model constructed for the i-th factor loading is exp(- a t) Fi(t) where a is the decay parameter and Fi is the factor loading from the given covariance model. The parameter of this model is a joint parameter vector, consisting of the parameter vector of the given base covariance model and appending the decay parameter at the end. If this model is not calibrateable, its parameter vector is that of the underlying covariance model, i.e., only the decay parameter will be not part of the calibration.- Parameters:
randomVariableFactory
- A random variable factory (used for the given parameter and when cloning with modifed parameters).covarianceModel
- The given covariance model specifying the factor loadings F.decay
- 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.
-
ExponentialDecayLocalVolatilityModel
public ExponentialDecayLocalVolatilityModel(AbstractLIBORCovarianceModelParametric covarianceModel, double decay, boolean isCalibrateable)Exponential decay model build on top of a standard covariance model. The model constructed for the i-th factor loading is exp(- a t) Fi(t) where a is the decay parameter and Fi is the factor loading from the given covariance model. The parameter of this model is a joint parameter vector, consisting of the parameter vector of the given base covariance model and appending the decay parameter at the end. If this model is not calibrateable, its parameter vector is that of the underlying covariance model, i.e., only the decay parameter will be not part of the calibration.- Parameters:
covarianceModel
- The given covariance model specifying the factor loadings F.decay
- 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 Details
-
clone
- Specified by:
clone
in classAbstractLIBORCovarianceModelParametric
-
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 exp(- a t) Fi(t) where a is the decay parameter and Fi is the factor loading from the given covariance model.- Returns:
- The base covariance model.
-
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.- Overrides:
getParameter
in classAbstractLIBORCovarianceModelParametric
- Returns:
- Parameter vector.
-
getParameterAsDouble
public double[] getParameterAsDouble()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:
getParameterAsDouble
in classAbstractLIBORCovarianceModelParametric
- Returns:
- Parameter vector.
-
getCloneWithModifiedParameters
public AbstractLIBORCovarianceModelParametric getCloneWithModifiedParameters(RandomVariable[] 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.- Overrides:
getCloneWithModifiedParameters
in classAbstractLIBORCovarianceModelParametric
- Parameters:
parameters
- The new set of parameters.- Returns:
- An instance of AbstractLIBORCovarianceModelParametric with modified parameters.
-
getCloneWithModifiedParameters
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 classAbstractLIBORCovarianceModelParametric
- Parameters:
parameters
- The new set of parameters.- Returns:
- An instance of AbstractLIBORCovarianceModelParametric with modified parameters.
-
getFactorLoading
public RandomVariable[] getFactorLoading(int timeIndex, int component, RandomVariable[] realizationAtTimeIndex)Description copied from interface:LIBORCovarianceModel
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 interfaceLIBORCovarianceModel
- Specified by:
getFactorLoading
in classAbstractLIBORCovarianceModel
- 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:
- The factor loading fi(t).
-
getFactorLoadingPseudoInverse
public RandomVariable getFactorLoadingPseudoInverse(int timeIndex, int component, int factor, RandomVariable[] realizationAtTimeIndex)Description copied from interface:LIBORCovarianceModel
Returns the pseudo inverse of the factor matrix.- Specified by:
getFactorLoadingPseudoInverse
in interfaceLIBORCovarianceModel
- Specified by:
getFactorLoadingPseudoInverse
in classAbstractLIBORCovarianceModel
- 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:
- The entry of the pseudo-inverse of the factor loading matrix.
-
getDisplacement
-
getCloneWithModifiedData
public AbstractLIBORCovarianceModelParametric getCloneWithModifiedData(Map<String,Object> dataModified) throws CalculationExceptionDescription copied from interface:LIBORCovarianceModel
Returns a clone of this model where the specified properties have been modified. Note that there is no guarantee that a model reacts on a specification of a properties in the parameter mapdataModified
. If data is provided which is ignored by the model no exception may be thrown. Furthermore the structure of the covariance model has to match changed data. A change of the time discretizations may requires a change in the parameters but this function will just insert the new time discretization without changing the parameters. An exception may not be thrown.- Specified by:
getCloneWithModifiedData
in interfaceLIBORCovarianceModel
- Specified by:
getCloneWithModifiedData
in classAbstractLIBORCovarianceModel
- Parameters:
dataModified
- Key-value-map of parameters to modify.- Returns:
- A clone of this model (or a new instance of this model if no parameter was modified).
- Throws:
CalculationException
- Thrown when the model could not be created.
-