OneFactorGaussianCopula Class Reference

One-factor Gaussian Copula. More...

`#include <ql/experimental/credit/onefactorgaussiancopula.hpp>`

Inheritance diagram for OneFactorGaussianCopula:
[legend]

## Public Member Functions

| OneFactorGaussianCopula (const Handle< Quote > &correlation, Real maximum=5, Size integrationSteps=50)
Real | density (Real m) const
| Density function of M. More...
Real | cumulativeZ (Real z) const
| Cumulative distribution of Z. More...
Real | cumulativeY (Real y) const
Real | testCumulativeY (Real y) const
Real | inverseCumulativeY (Real p) const
Public Member Functions inherited from OneFactorCopula
| OneFactorCopula (const Handle< Quote > &correlation, Real maximum=5.0, Size integrationSteps=50, Real minimum=-5.0)
Real | correlation () const
| Single correlation parameter.
Real | conditionalProbability (Real prob, Real m) const
| Conditional probability. More...
std::vector< Real > | conditionalProbability (const std::vector< Real > &prob, Real m) const
| Vector of conditional probabilities. More...
Real | integral (Real p) const
template<class F >
Real | integral (const F &f, std::vector< Real > &probabilities) const
template<class F >
Distribution | integral (const F &f, const std::vector< Real > &nominals, const std::vector< Real > &probabilities) const
int | checkMoments (Real tolerance) const
Public Member Functions inherited from LazyObject
void | update ()
void | recalculate ()
void | freeze ()
void | unfreeze ()
void | alwaysForwardNotifications ()
Public Member Functions inherited from Observable
| Observable (const Observable &)
Observable & | operator= (const Observable &)
void | notifyObservers ()
Public Member Functions inherited from Observer
| Observer (const Observer &)
Observer & | operator= (const Observer &)
std::pair< iterator, bool > | registerWith (const ext::shared_ptr< Observable > &)
void | registerWithObservables (const ext::shared_ptr< Observer > &)
Size | unregisterWith (const ext::shared_ptr< Observable > &)
void | unregisterWithAll ()
virtual void | deepUpdate ()

## Additional Inherited Members

Public Types inherited from Observer
typedef boost::unordered_set< ext::shared_ptr< Observable > > | set_type
typedef set_type::iterator | iterator
Protected Member Functions inherited from OneFactorCopula
Size | steps () const
Real | dm (Size i) const
Real | m (Size i) const
Real | densitydm (Size i) const
Protected Member Functions inherited from LazyObject
virtual void | calculate () const
Protected Attributes inherited from OneFactorCopula
Handle< Quote > | correlation_
Real | max_
Size | steps_
Real | min_
std::vector< Real > | y_
std::vector< Real > | cumulativeY_
Protected Attributes inherited from LazyObject
bool | calculated_
bool | frozen_
bool | alwaysForward_

## Detailed Description

One-factor Gaussian Copula.

The copula model

\[ Y_i = a_i\,M+\sqrt{1-a_i^2}\:Z_i \]

is specified here by setting the desnity function for all variables, \( M, Z,\) and also \( Y \) to the standard normal distribution \( \phi(x) = \exp(-x^2/2) / \sqrt{2\pi}. \)

## Member Function Documentation

## density()

Real density | ( | Real | m | ) | const

virtual

Density function of M.

Derived classes must override this method and ensure zero mean and unit variance.

Implements OneFactorCopula.

## cumulativeZ()

Real cumulativeZ | ( | Real | z | ) | const

virtual

Cumulative distribution of Z.

Derived classes must override this method and ensure zero mean and unit variance.

Implements OneFactorCopula.

## cumulativeY()

Real cumulativeY | ( | Real | y | ) | const

virtual

overrides the base class implementation based on table data

Reimplemented from OneFactorCopula.

## inverseCumulativeY()

Real inverseCumulativeY | ( | Real | p | ) | const

virtual

overrides the base class implementation based on table data

Reimplemented from OneFactorCopula.