One-factor Student t - Gaussian Copula. More...
#include <ql/experimental/credit/onefactorstudentcopula.hpp>
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... | |
![]() | |
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 |
![]() | |
void | update () |
void | recalculate () |
void | freeze () |
void | unfreeze () |
void | alwaysForwardNotifications () |
![]() | |
Observable (const Observable &) | |
Observable & | operator= (const Observable &) |
void | notifyObservers () |
![]() | |
Observer (const Observer &) | |
Observer & | operator= (const Observer &) |
std::pair< iterator, bool > | registerWith (const boost::shared_ptr< Observable > &) |
void | registerWithObservables (const boost::shared_ptr< Observer > &) |
Size | unregisterWith (const boost::shared_ptr< Observable > &) |
void | unregisterWithAll () |
virtual void | deepUpdate () |
Additional Inherited Members | |
![]() | |
typedef std::set< boost::shared_ptr< Observable > > | set_type |
typedef set_type::iterator | iterator |
![]() | |
Size | steps () const |
Real | dm (Size i) const |
Real | m (Size i) const |
Real | densitydm (Size i) const |
![]() | |
virtual void | calculate () const |
![]() | |
Handle< Quote > | correlation_ |
Real | max_ |
Size | steps_ |
Real | min_ |
std::vector< Real > | y_ |
std::vector< Real > | cumulativeY_ |
![]() | |
bool | calculated_ |
bool | frozen_ |
bool | alwaysForward_ |
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}. \)
Density function of M.
Derived classes must override this method and ensure zero mean and unit variance.
Implements OneFactorCopula.
Cumulative distribution of Z.
Derived classes must override this method and ensure zero mean and unit variance.
Implements OneFactorCopula.