## Class LIBORCovarianceModelStochasticVolatility

• All Implemented Interfaces:
Serializable, LIBORCovarianceModel, LIBORCovarianceModelCalibrateable

public class LIBORCovarianceModelStochasticVolatility
extends AbstractLIBORCovarianceModelParametric
Simple stochastic volatility model, using a process $d\lambda(t) = \nu \lambda(t) \left( \rho \mathrm{d} W_{1}(t) + \sqrt{1-\rho^{2}} \mathrm{d} W_{2}(t) \right) \text{,}$ where $$\lambda(0) = 1$$ to scale all factor loadings $$f_{i}$$ returned by a given covariance model. The model constructed is $$\lambda(t) F(t)$$ where $$\lambda(t)$$ is the (Euler discretization of the) above process and $$F = ( f_{1}, \ldots, f_{m} )$$ is the factor loading from the given covariance model. The process uses the first two factors of the Brownian motion provided by an object implementing BrownianMotion. This can be used to generate correlations to other objects. If you like to reuse a factor of another Brownian motion use a BrownianMotionView to delegate $$( \mathrm{d} W_{1}(t) , \mathrm{d} W_{2}(t) )$$ to a different object. The parameter of this model is a joint parameter vector, consisting of the parameter vector of the given base covariance model and appending the parameters ν and ρ at the end. If this model is not calibrateable, its parameter vector is that of the covariance model, i.e., ν and ρ will be not part of the calibration. For an illustration of its usage see the associated unit test.
Version:
1.0
Author:
Christian Fries
Serialized Form
• ### Constructor Detail

• #### LIBORCovarianceModelStochasticVolatility

public LIBORCovarianceModelStochasticVolatility​(AbstractLIBORCovarianceModelParametric covarianceModel,
BrownianMotion brownianMotion,
RandomVariable nu,
RandomVariable rho,
boolean isCalibrateable)
Create a modification of a given AbstractLIBORCovarianceModelParametric with a stochastic volatility scaling.
Parameters:
covarianceModel - A given AbstractLIBORCovarianceModelParametric.
brownianMotion - An object implementing BrownianMotion with at least two factors. This class uses the first two factors, but you may use BrownianMotionView to change this.
nu - The initial value for ν, the volatility of the volatility.
rho - The initial value for ρ the correlation to the first factor.
isCalibrateable - If true, the parameters ν and ρ are parameters. Note that the covariance model (covarianceModel) may have its own parameter calibration settings.
• #### LIBORCovarianceModelStochasticVolatility

public LIBORCovarianceModelStochasticVolatility​(AbstractLIBORCovarianceModelParametric covarianceModel,
BrownianMotion brownianMotion,
double nu,
double rho,
boolean isCalibrateable)
Create a modification of a given AbstractLIBORCovarianceModelParametric with a stochastic volatility scaling.
Parameters:
covarianceModel - A given AbstractLIBORCovarianceModelParametric.
brownianMotion - An object implementing BrownianMotion with at least two factors. This class uses the first two factors, but you may use BrownianMotionView to change this.
nu - The initial value for ν, the volatility of the volatility.
rho - The initial value for ρ the correlation to the first factor.
isCalibrateable - If true, the parameters ν and ρ are parameters. Note that the covariance model (covarianceModel) may have its own parameter calibration settings.
• ### Method Detail

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:
Specified by:
Parameters:
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:

int component,
int factor,
RandomVariable[] realizationAtTimeIndex)
Description copied from interface: LIBORCovarianceModel
Returns the pseudo inverse of the factor matrix.
Specified by:
Specified by:
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:
• #### getCloneWithModifiedData

public AbstractLIBORCovarianceModelParametric getCloneWithModifiedData​(Map<String,​Object> dataModified)
throws CalculationException
Description 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 map dataModified. 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 interface LIBORCovarianceModel
Specified by:
getCloneWithModifiedData in class AbstractLIBORCovarianceModel
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.