Module net.finmath.lib
Interface LIBORCovarianceModel
- All Known Subinterfaces:
LIBORCovarianceModelCalibrateable
- All Known Implementing Classes:
AbstractLIBORCovarianceModel
,AbstractLIBORCovarianceModelParametric
,BlendedLocalVolatilityModel
,DisplacedLocalVolatilityModel
,ExponentialDecayLocalVolatilityModel
,HullWhiteLocalVolatilityModel
,LIBORCovarianceModelBH
,LIBORCovarianceModelExponentialForm5Param
,LIBORCovarianceModelExponentialForm7Param
,LIBORCovarianceModelFromVolatilityAndCorrelation
,LIBORCovarianceModelStochasticHestonVolatility
,LIBORCovarianceModelStochasticVolatility
public interface LIBORCovarianceModel
Interface for covariance models providing a vector of (possibly stochastic) factor loadings.
Classes implementing this interface can be used as "plug ins" for
LIBORMarketModelFromCovarianceModel
.- Version:
- 1.0
- Author:
- Christian Fries
-
Method Summary
Modifier and TypeMethodDescriptiongetCloneWithModifiedData
(Map<String, Object> dataModified) Returns a clone of this model where the specified properties have been modified.getCovariance
(double time, int component1, int component2, RandomVariable[] realizationAtTimeIndex) Returns the instantaneous covariance calculated from factor loadings.getCovariance
(int timeIndex, int component1, int component2, RandomVariable[] realizationAtTimeIndex) Returns the instantaneous covariance calculated from factor loadings.getFactorLoading
(double time, double component, RandomVariable[] realizationAtTimeIndex) Return the factor loading for a given time and a given component.getFactorLoading
(double time, int component, RandomVariable[] realizationAtTimeIndex) Return the factor loading for a given time and component index.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.The forward rate time discretization associated with this model (defines the components).int
The simulation time discretization associated with this model.
-
Method Details
-
getFactorLoading
RandomVariable[] getFactorLoading(double time, double component, RandomVariable[] realizationAtTimeIndex) Return the factor loading for a given time and a given component. 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. With respect to simulation time t, this method uses a piece wise constant interpolation, i.e., it calculates t_i such that t_i is the largest point ingetTimeDiscretization
such that t_i ≤ t . The component here, it given via a double T which may be associated with the LIBOR fixing date. With respect to component time T, this method uses a piece wise constant interpolation, i.e., it calculates T_j such that T_j is the largest point ingetTimeDiscretization
such that T_j ≤ T .- Parameters:
time
- The time t at which factor loading is requested.component
- The component time (as a double associated with the fixing of the forward rate) Ti.realizationAtTimeIndex
- The realization of the stochastic process (may be used to implement local volatility/covariance/correlation models).- Returns:
- The factor loading fi(t).
-
getFactorLoading
RandomVariable[] getFactorLoading(double time, int component, RandomVariable[] realizationAtTimeIndex) Return the factor loading for a given time 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. With respect to simulation time t, this method uses a piece wise constant interpolation, i.e., it calculates t_i such that t_i is the largest point ingetTimeDiscretization
such that t_i ≤ t .- Parameters:
time
- The time t at which factor loading is requested.component
- The index of the component i. Note that this class may have its own LIBOR time discretization and that this index refers to this discretization.realizationAtTimeIndex
- The realization of the stochastic process (may be used to implement local volatility/covariance/correlation models).- Returns:
- The factor loading fi(t).
-
getFactorLoading
RandomVariable[] getFactorLoading(int timeIndex, int component, RandomVariable[] realizationAtTimeIndex) 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.- 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
RandomVariable getFactorLoadingPseudoInverse(int timeIndex, int component, int factor, RandomVariable[] realizationAtTimeIndex) Returns the pseudo inverse of the factor matrix.- 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.
-
getCovariance
RandomVariable getCovariance(double time, int component1, int component2, RandomVariable[] realizationAtTimeIndex) Returns the instantaneous covariance calculated from factor loadings.- Parameters:
time
- The time t at which covariance is requested.component1
- Index of component i.component2
- Index of component j.realizationAtTimeIndex
- The realization of the stochastic process.- Returns:
- The instantaneous covariance between component i and j.
-
getCovariance
RandomVariable getCovariance(int timeIndex, int component1, int component2, RandomVariable[] realizationAtTimeIndex) Returns the instantaneous covariance calculated from factor loadings.- Parameters:
timeIndex
- The time index at which covariance is requested.component1
- Index of component i.component2
- Index of component j.realizationAtTimeIndex
- The realization of the stochastic process.- Returns:
- The instantaneous covariance between component i and j.
-
getTimeDiscretization
TimeDiscretization getTimeDiscretization()The simulation time discretization associated with this model.- Returns:
- the timeDiscretizationFromArray
-
getLiborPeriodDiscretization
TimeDiscretization getLiborPeriodDiscretization()The forward rate time discretization associated with this model (defines the components).- Returns:
- the forward rate time discretization associated with this model.
-
getNumberOfFactors
int getNumberOfFactors()- Returns:
- the numberOfFactors
-
getCloneWithModifiedData
AbstractLIBORCovarianceModelParametric getCloneWithModifiedData(Map<String, Object> dataModified) throws CalculationExceptionReturns 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.- 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.
-