QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
|
One-factor Gaussian-Student t-Copula. More...
#include <onefactorstudentcopula.hpp>
Public Member Functions | |
OneFactorGaussianStudentCopula (const Handle< Quote > &correlation, int nz, Real maximum=10, Size integrationSteps=200) | |
Real | density (Real m) const override |
Density function of M. More... | |
Real | cumulativeZ (Real z) const override |
Cumulative distribution of Z. More... | |
![]() | |
OneFactorCopula (Handle< Quote > correlation, Real maximum=5.0, Size integrationSteps=50, Real minimum=-5.0) | |
virtual Real | density (Real m) const =0 |
Density function of M. More... | |
virtual Real | cumulativeZ (Real z) const =0 |
Cumulative distribution of Z. More... | |
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. More... | |
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 |
![]() | |
LazyObject () | |
~LazyObject () override=default | |
void | update () override |
bool | isCalculated () const |
void | forwardFirstNotificationOnly () |
void | alwaysForwardNotifications () |
void | recalculate () |
void | freeze () |
void | unfreeze () |
![]() | |
Observable () | |
Observable (const Observable &) | |
Observable & | operator= (const Observable &) |
Observable (Observable &&)=delete | |
Observable & | operator= (Observable &&)=delete |
virtual | ~Observable ()=default |
void | notifyObservers () |
![]() | |
Observer ()=default | |
Observer (const Observer &) | |
Observer & | operator= (const Observer &) |
virtual | ~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 | update ()=0 |
virtual void | deepUpdate () |
Private Member Functions | |
void | performCalculations () const override |
Observer interface. More... | |
Real | cumulativeYintegral (Real y) const |
Private Attributes | |
NormalDistribution | density_ |
CumulativeStudentDistribution | cumulative_ |
int | nz_ |
Real | scaleZ_ |
Additional Inherited Members | |
![]() | |
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_ = false |
bool | frozen_ = false |
bool | alwaysForward_ |
One-factor Gaussian-Student t-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 Student t-distributions with N_z degrees of freedom, and for M ( D_M ) to a Gaussian.
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, Z is scaled by \sqrt{(N_z - 2) / N_z}.
Definition at line 108 of file onefactorstudentcopula.hpp.
OneFactorGaussianStudentCopula | ( | const Handle< Quote > & | correlation, |
int | nz, | ||
Real | maximum = 10 , |
||
Size | integrationSteps = 200 |
||
) |
Definition at line 109 of file onefactorstudentcopula.cpp.
Density function of M.
Derived classes must override this method and ensure zero mean and unit variance.
Implements OneFactorCopula.
Definition at line 134 of file onefactorstudentcopula.hpp.
Cumulative distribution of Z.
Derived classes must override this method and ensure zero mean and unit variance.
Implements OneFactorCopula.
Definition at line 138 of file onefactorstudentcopula.hpp.
|
overrideprivatevirtual |
Observer interface.
Implements LazyObject.
Definition at line 125 of file onefactorstudentcopula.cpp.
Definition at line 145 of file onefactorstudentcopula.cpp.
|
private |
Definition at line 122 of file onefactorstudentcopula.hpp.
|
private |
Definition at line 123 of file onefactorstudentcopula.hpp.
|
private |
Definition at line 124 of file onefactorstudentcopula.hpp.
|
private |
Definition at line 126 of file onefactorstudentcopula.hpp.