ExtArch2FParam-class: Two-factor extendible Archimedean calibration parameter...

ExtArch2FParam-classR Documentation

Two-factor extendible Archimedean calibration parameter classes

Description

CalibrationParam-class with two parameters for the extendible Archimedean-(survival-)copula model with Exponential margins for the (average) default counting process.

Usage

## S4 method for signature 'ExtArch2FParam'
initialize(
  .Object,
  dim,
  lambda,
  nu,
  rho,
  tau,
  survival,
  family = c("Clayton", "Frank", "Gumbel", "Joe")
)

## S4 method for signature 'ExtArch2FParam'
simulate_dt(object, ..., n_sim = 10000L)

## S4 method for signature 'ExtArch2FParam'
expected_pcds_equation(
  object,
  times,
  discount_factors,
  recovery_rate,
  coupon,
  upfront,
  ...,
  method = c("default", "prob", "mc")
)

## S4 method for signature 'ExtArch2FParam'
show(object)

## S4 method for signature 'ClaytonExtArch2FParam'
initialize(.Object, ..., survival = FALSE)

## S4 method for signature 'FrankExtArch2FParam'
initialize(.Object, ..., survival = TRUE)

## S4 method for signature 'GumbelExtArch2FParam'
initialize(.Object, ..., survival = TRUE)

## S4 method for signature 'JoeExtArch2FParam'
initialize(.Object, ..., survival = TRUE)

Arguments

.Object

An object: see the “Initialize Methods” section.

dim

Dimension.

lambda

Marginal intensity.

nu

(Internal) dependence parameter (see copula::archmCopula).

rho

Bivariate Spearman's Rho.

tau

Bivariate Kendall's Tau.

survival

Flag if survival copula is specified (default, except for Clayton).

family

Name of the Archimedean copula family (see copula::archmCopula).

object

A CalibrationParam-object.

...

Pass-through parameters.

n_sim

Number of samples.

times

A non-negative numeric vector of timepoints.

discount_factors

Non-negative numeric vector for the discount factors for the timepoints.

recovery_rate

Non-negative number between zero and one for the recovery rate..

coupon

Numeric number for the running coupon.

upfront

Numeric number for the upfront payment.

method

Calculation method (either "default", "prob" (requires implementation of probability_distribution), or "mc").

Details

The model is defined by the assumption that the multivariate default times τ = (τ_1, …, τ_d) are from an extendible Archimedean-(survival-)copula with Exponential margins. The (internal) dependency parameter ν (model specific) has a one-to-one relationship and can be replaced by Spearman's Rho rho (except for the family based on Joe's copula) or Kendall's Tau tau. The possible range for rho and tau is from zero to one (boundaries might not be included).

Functions

  • initialize(ExtArch2FParam): Constructor

  • simulate_dt(ExtArch2FParam): simulates the vector of default times and returns a matrix x with dim(x) == c(n_sim, getDimension(object)).

  • expected_pcds_equation(ExtArch2FParam): calculates the payoff equation for a portfolio CDS (vectorized w.r.t. the argumentes recovery_rate, coupon, and upfront).

  • show(ExtArch2FParam): Display the object.

  • initialize(ClaytonExtArch2FParam): Constructor

  • initialize(FrankExtArch2FParam): Constructor

  • initialize(GumbelExtArch2FParam): Constructor

  • initialize(JoeExtArch2FParam): Constructor

Slots

lambda

A non-negative number for the marginal rate.

nu

A numeric number for the model specific dependence parameter.

Simulation

The default times are sampled in a two-stage procedure: First a sample is drawn from the Archimedean copula, see copula::archmCopula and copula::rCopula(); then the results are transformed using stats::qexp().

Expected portfolio CDS loss

The expected portfolio CDS loss for recovery rate R is calculated using that

\mathbb{E}[g(L_t)] = (1 - R) \cdot F(t)

with g(x) = (1 - R) \cdot x and F being the Exponential distribution function for rate λ.

Examples

ExtArch2FParam(dim = 5L, lambda = 8e-2, rho = 4e-1, family = "Clayton", survival = TRUE)
ExtArch2FParam(dim = 5L, lambda = 8e-2, rho = 4e-1, family = "Gumbel", survival = FALSE)
ExtArch2FParam(dim = 5L, lambda = 8e-2, tau = 4e-1, family = "Frank", survival = FALSE)
ExtArch2FParam(dim = 5L, lambda = 8e-2, tau = 4e-1, family = "Joe", survival = FALSE)
parm <- FrankExtArch2FParam(dim = 5L, lambda = 8e-2, rho = 4e-1)
simulate_dt(parm, n_sim = 5L)

parm <- FrankExtArch2FParam(75L, 8e-2, rho = 4e-1)
expected_pcds_equation(
  parm, times = seq(25e-2, 5, by = 25e-2), discount_factors = rep(1, 20L), recovery_rate = 0.4,
  coupon = 1e-1, upfront = 0)
expected_pcds_equation(
  parm, times = seq(25e-2, 5, by = 25e-2), discount_factors = rep(1, 20L), recovery_rate = 0.4,
  coupon = 1e-1, upfront = 0, method = "mc", n_sim = 1e1)

ClaytonExtArch2FParam()
ClaytonExtArch2FParam(5L, 8e-2, rho = 4e-1)
ClaytonExtArch2FParam(5L, 8e-2, tau = 4e-1)
FrankExtArch2FParam()
FrankExtArch2FParam(5L, 8e-2, rho = 4e-1)
FrankExtArch2FParam(5L, 8e-2, tau = 4e-1)
GumbelExtArch2FParam()
GumbelExtArch2FParam(5L, 8e-2, rho = 4e-1)
GumbelExtArch2FParam(5L, 8e-2, tau = 4e-1)
JoeExtArch2FParam()
JoeExtArch2FParam(5L, 8e-2, tau = 4e-1)

hsloot/cvalr documentation built on Sept. 24, 2022, 9:25 a.m.