Module net.finmath.lib
Class LIBORCorrelationModelExponentialDecay
java.lang.Object
net.finmath.montecarlo.interestrate.models.covariance.LIBORCorrelationModel
net.finmath.montecarlo.interestrate.models.covariance.LIBORCorrelationModelExponentialDecay
- All Implemented Interfaces:
Serializable
Simple 1-parametric correlation model given by R, where R is a factor reduced matrix
(see
LinearAlgebra.factorReduction(double[][], int)
) created from the
\( n \) Eigenvectors of \( \tilde{R} \) belonging to the \( n \) largest non-negative Eigenvalues,
where \( \tilde{R} = \tilde{\rho}_{i,j} \) and \[ \tilde{\rho}_{i,j} = \exp( -\max(a,0) | T_{i}-T_{j} | ) \]
For a more general model featuring three parameters see LIBORCorrelationModelThreeParameterExponentialDecay
.- Version:
- 1.0
- Author:
- Christian Fries
- See Also:
LinearAlgebra.factorReduction(double[][], int)
,LIBORCorrelationModelThreeParameterExponentialDecay
, Serialized Form
-
Constructor Summary
ConstructorsConstructorDescriptionLIBORCorrelationModelExponentialDecay(TimeDiscretization timeDiscretization, TimeDiscretization liborPeriodDiscretization, int numberOfFactors, double a)
Create a correlation model with an exponentially decaying correlation structure and the given number of factors.LIBORCorrelationModelExponentialDecay(TimeDiscretization timeDiscretization, TimeDiscretization liborPeriodDiscretization, int numberOfFactors, double a, boolean isCalibrateable)
Create a correlation model with an exponentially decaying correlation structure and the given number of factors. -
Method Summary
Modifier and TypeMethodDescriptionclone()
getCloneWithModifiedData(Map<String,Object> dataModified)
Returns a clone of this model where the specified properties have been modified.getCloneWithModifiedParameter(RandomVariable[] parameter)
double
getCorrelation(int timeIndex, int component1, int component2)
double
getFactorLoading(int timeIndex, int factor, int component)
int
Methods inherited from class net.finmath.montecarlo.interestrate.models.covariance.LIBORCorrelationModel
getLiborPeriodDiscretization, getParameterAsDouble, getTimeDiscretization
-
Constructor Details
-
LIBORCorrelationModelExponentialDecay
public LIBORCorrelationModelExponentialDecay(TimeDiscretization timeDiscretization, TimeDiscretization liborPeriodDiscretization, int numberOfFactors, double a, boolean isCalibrateable)Create a correlation model with an exponentially decaying correlation structure and the given number of factors.- Parameters:
timeDiscretization
- Simulation time discretization. Not used in this model.liborPeriodDiscretization
- Tenor time discretization, i.e., the \( T_{i} \)'s.numberOfFactors
- Number \( m \) of factors to be used.a
- Decay parameter. Should be positive. Negative values will be floored to 0.isCalibrateable
- If true, the parameter will become a free parameter in a calibration (i.e., the parameter is available viagetParameter()
.
-
LIBORCorrelationModelExponentialDecay
public LIBORCorrelationModelExponentialDecay(TimeDiscretization timeDiscretization, TimeDiscretization liborPeriodDiscretization, int numberOfFactors, double a)Create a correlation model with an exponentially decaying correlation structure and the given number of factors. The parameter is fixed (not calibrateable).- Parameters:
timeDiscretization
- Simulation time discretization. Not used in this model.liborPeriodDiscretization
- Tenor time discretization, i.e., the \( T_{i} \)'s.numberOfFactors
- Number \( m \) of factors to be used.a
- Decay parameter. Should be positive. Negative values will be floored to 0.
-
-
Method Details
-
getCloneWithModifiedParameter
public LIBORCorrelationModelExponentialDecay getCloneWithModifiedParameter(RandomVariable[] parameter)- Specified by:
getCloneWithModifiedParameter
in classLIBORCorrelationModel
-
clone
- Specified by:
clone
in classLIBORCorrelationModel
-
getFactorLoading
public double getFactorLoading(int timeIndex, int factor, int component)- Specified by:
getFactorLoading
in classLIBORCorrelationModel
-
getCorrelation
public double getCorrelation(int timeIndex, int component1, int component2)- Specified by:
getCorrelation
in classLIBORCorrelationModel
-
getNumberOfFactors
public int getNumberOfFactors()- Specified by:
getNumberOfFactors
in classLIBORCorrelationModel
-
getParameter
- Specified by:
getParameter
in classLIBORCorrelationModel
-
getCloneWithModifiedData
Description copied from class:LIBORCorrelationModel
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 correlation 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 classLIBORCorrelationModel
- 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).
-