OneFactorStudentGaussianCopula Class Reference

One-factor Student t - Gaussian Copula. More...

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

Inheritance diagram for OneFactorStudentGaussianCopula:
[legend]

## Public Member Functions

| OneFactorStudentGaussianCopula (const Handle< Quote > &correlation, int nm, Real maximum=10, Size integrationSteps=200)
Real | density (Real m) const
| Density function of M. More...
Real | cumulativeZ (Real z) const
| Cumulative distribution of Z. More...
Public Member Functions inherited from OneFactorCopula
| OneFactorCopula (const Handle< Quote > &correlation, Real maximum=5.0, Size integrationSteps=50, Real minimum=-5.0)
virtual Real | cumulativeY (Real y) const
| Cumulative distribution of Y. More...
virtual Real | inverseCumulativeY (Real p) const
| Inverse cumulative distribution of Y. More...
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 Student t - Gaussian Copula.

The copula model

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

is specified here by setting the probability density functions for \( Z_i \) ( \( D_Z \)) to a Gaussian and for \( M \) ( \( D_M \)) to a Student t-distribution with \( N_m \) degrees of freedom.

The variance of the Student t-distribution with \( \nu \) degrees of freedom is \( \nu / (\nu - 2) \). Since the copula approach requires zero mean and unit variance distributions, \( M \) is scaled by \( \sqrt{(N_m - 2) / N_m}. \)

## 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.