Options
All
  • Public
  • Public/Protected
  • All
Menu

Random spot recovery rate latent variable portfolio model.

See: A Spot Stochastic Recovery Extension of the Gaussian Copula N.Bennani and J.Maetz, MPRA July 2009 Extension of Spot Recovery model for Gaussian Copula H.Li, October 2009, MPRA The model is adpated here for a multifactor set up and a generic copula so it can be used for pricing in single factor mode or for risk metrics in its multifactor version.\par

todo

Rewrite this model: the distribution of the spot recovery given default could be given as a functional of rr_i with the market factors and the rest of methods depend on this. That would offer a family of models.

todo

Implement eq. 45 to have the EL(t) and be able to integrate the model

Hierarchy

Implements

Index

Constructors

constructor

  • Parameters

    • copulaPolicy: any

    Returns SpotRecoveryLatentModel

Properties

Private _basket

_basket: Basket

_cachedMktFactor

_cachedMktFactor: Handle<Quote>

_copula

_copula: any

Private _crossIdiosyncFctrs

_crossIdiosyncFctrs: Real[]

_factorWeights

_factorWeights: Real[][] = [[]]

_idiosyncFctrs

_idiosyncFctrs: Real[] = []

Private _integration

_integration: LMIntegration

_isDisposed

_isDisposed: boolean = false

Private _modelA

_modelA: Real

_nFactors

_nFactors: Size

_nVariables

_nVariables: Size

Private _numNames

_numNames: Size

_observables

_observables: Set<Observable> = new Set()

_observers

_observers: Set<Observer> = new Set()

Private _recoveries

_recoveries: Real[]

copulaPolicy

copulaPolicy: any

dispose

dispose: () => void

Type declaration

    • (): void
    • Returns void

isDisposed

isDisposed: boolean

notifyObservers

notifyObservers: () => void

Type declaration

    • (): void
    • Returns void

registerObserver

registerObserver: (o: Observer) => void

Type declaration

registerWith

registerWith: (h: Observable) => void

Type declaration

registerWithObservables

registerWithObservables: (o: Observer) => void

Type declaration

unregisterObserver

unregisterObserver: (o: Observer) => void

Type declaration

unregisterWith

unregisterWith: (h: Observable) => Size

Type declaration

unregisterWithAll

unregisterWithAll: () => void

Type declaration

    • (): void
    • Returns void

Methods

allFactorCumulInverter

  • allFactorCumulInverter(probs: Real[]): Real[]

conditionalDefaultProbability1

  • Parameters

    • date: Date
    • iName: Size
    • mktFactors: Real[]

    Returns Probability

conditionalDefaultProbability2

conditionalDefaultProbabilityInvP

  • Parameters

    Returns Probability

conditionalExpLossRR

  • conditionalExpLossRR(d: Date, iName: Size, mktFactors: Real[]): Real
  • Parameters

    • d: Date
    • iName: Size
    • mktFactors: Real[]

    Returns Real

conditionalExpLossRRInv

  • Parameters

    Returns Real

conditionalRecovery

  • conditionalRecovery(latentVarSample: Real, iName: Size, d: Date): Real
  • Parameters

    • latentVarSample: Real
    • iName: Size
    • d: Date

    Returns Real

conditionalRecoveryInvPinvRR

  • Parameters

    Returns Real

copula

  • copula(): any
  • Returns any

cumulativeY

cumulativeZ

deepUpdate

  • deepUpdate(): void

density

expCondRecovery

  • expCondRecovery(d: Date, iName: Size, mktFactors: Real[]): Real
  • Expected conditional spot recovery rate. Conditional on a set of systemic factors and default returns the integrated attainable recovery values. \par Corresponds to a multifactor generalization of the model in eq. 44 on p.15 of Extension of Spot Recovery Model for Gaussian Copula Hui Li. 2009 Only remember that $\rho_l Z $ there is here (multiple betas): $ \sum_k \beta_{ik}^l Z_k $ and that $ \rho_d \rho_l $ there is here: $ \sum_k \beta_{ik}^d \beta_{ik}^l $ \par (d,l corresponds to first and last set of betas)

    Parameters

    • d: Date
    • iName: Size
    • mktFactors: Real[]

    Returns Real

expCondRecoveryInvPinvRR

  • expCondRecoveryInvPinvRR(invUncondDefP: Real, invUncondRR: Real, iName: Size, mktFactors: Real[]): Real
  • Parameters

    Returns Real

expCondRecoveryP

  • Parameters

    Returns Real

expectedLoss

  • expectedLoss(d: Date, iName: Size): Real
  • Single name expected loss.\par The main reason of this method is for the testing of this model. The model is coherent in that it preserves the single name expected loss and thus is coherent with the single name CDS market when used in the pricing context. i.e. it should match: $pdef_i(d) \times RR_i $

    Parameters

    • d: Date
    • iName: Size

    Returns Real

factorWeights

  • factorWeights(): Real[][]

idiosyncFctrs

  • idiosyncFctrs(): Real[]

init

  • Parameters

    • copulaPolicyImpl: any

    Returns LatentModel

integratedExpectedValue1

integratedExpectedValue2

integration

inverseCumulativeDensity

inverseCumulativeY

inverseCumulativeZ

latentRRVarValue

  • Parameters

    Returns Real

latentVarValue

latentVariableCorrel

lmInit1

  • Parameters

    • factorWeights: Real[][]
    • Default value ini: any = null

    Returns LatentModel

lmInit2

  • Parameters

    • factorWeights: Real[]
    • Default value ini: any = null

    Returns LatentModel

lmInit3

lmInit4

numFactors

  • numFactors(): Size

numTotalFactors

  • numTotalFactors(): Size

resetBasket

  • resetBasket(basket: Basket): void
  • Parameters

    Returns void

size

  • Returns Size

srlmInit

update

  • update(): void