#include <qle/models/extendedconstantlosslatentmodel.hpp>
Public Member Functions | |
ExtendedConstantLossLatentModel (const std::vector< std::vector< Real >> &factorWeights, const std::vector< Real > &recoveries, const std::vector< std::vector< Real >> &recoveryProbabilities, const std::vector< std::vector< Real >> &recoveryRates, LatentModelIntegrationType::LatentModelIntegrationType integralType, const initTraits &ini=initTraits()) | |
ExtendedConstantLossLatentModel (const Handle< Quote > &mktCorrel, const std::vector< Real > &recoveries, const std::vector< std::vector< Real >> &recoveryProbabilities, const std::vector< std::vector< Real >> &recoveryRates, LatentModelIntegrationType::LatentModelIntegrationType integralType, Size nVariables, const initTraits &ini=initTraits()) | |
void | checkStochasticRecoveries () |
Real | conditionalRecovery (const Date &d, Size iName, const std::vector< Real > &mktFactors) const |
Real | conditionalRecovery (Probability uncondDefP, Size iName, const std::vector< Real > &mktFactors) const |
Real | conditionalRecoveryInvP (Real invUncondDefP, Size iName, const std::vector< Real > &mktFactors) const |
Real | conditionalRecovery (Real latentVarSample, Size iName, const Date &d) const |
const std::vector< Real > & | recoveries () const |
Real | expectedRecovery (const Date &d, Size iName, const DefaultProbKey &defKeys) const |
const std::vector< std::vector< Real > > & | recoveryProbabilities () |
const std::vector< std::vector< Real > > & | recoveryRateGrids () |
Public Member Functions inherited from DefaultLatentModel< copulaPolicy > | |
DefaultLatentModel (const std::vector< std::vector< Real >> &factorWeights, LatentModelIntegrationType::LatentModelIntegrationType integralType, const initTraits &ini=initTraits()) | |
DefaultLatentModel (const Handle< Quote > &mktCorrel, Size nVariables, LatentModelIntegrationType::LatentModelIntegrationType integralType, const initTraits &ini=initTraits()) | |
void | resetBasket (const boost::shared_ptr< Basket > basket) const |
Probability | conditionalDefaultProbability (Probability prob, Size iName, const std::vector< Real > &mktFactors) const |
Probability | conditionalDefaultProbabilityInvP (Real invCumYProb, Size iName, const std::vector< Real > &m) const |
Probability | probOfDefault (Size iName, const Date &d) const |
Real | defaultCorrelation (const Date &d, Size iNamei, Size iNamej) const |
Probability | probAtLeastNEvents (Size n, const Date &date) const |
Additional Inherited Members | |
Protected Member Functions inherited from DefaultLatentModel< copulaPolicy > | |
void | update () override |
Probability | conditionalDefaultProbability (const Date &date, Size iName, const std::vector< Real > &mktFactors) const |
Probability | condProbProduct (Real invCumYProb1, Real invCumYProb2, Size iName1, Size iName2, const std::vector< Real > &mktFactors) const |
Real | conditionalProbAtLeastNEvents (Size n, const Date &date, const std::vector< Real > &mktFactors) const |
Conditional probability of n default events or more. | |
const boost::shared_ptr< LMIntegration > & | integration () const override |
access to integration: | |
Protected Attributes inherited from DefaultLatentModel< copulaPolicy > | |
boost::shared_ptr< Basket > | basket_ |
boost::shared_ptr< LMIntegration > | integration_ |
Constant deterministic loss amount default latent model, extended to cover a discrete distribution of recovery rates following Krekel (2008), https://ssrn.com/abstract=11340228. For each obligor we pass a vector of J recovery probabilities p_1, ..., p_J and recovery rates in decreasing order r_1 > r_2 > ... > r_J contional on default. If this data is empty, the extended model will fall back on the ConstantLossLatentModel.