rextmo: Simulate from extendible Marshall–Olkin distributions

View source: R/sample-rextmo.R

rextmoR Documentation

Simulate from extendible Marshall–Olkin distributions

Description

Draws n iid samples from a d-variate extendible Marshall–Olkin distribution parametrized by a Bernstein function bf.

Usage

rextmo(n, d, bf, method = c("MDCM", "AM", "ESM"))

Arguments

n

An integer for the number of samples.

d

An integer for the dimension.

bf

A BernsteinFunction representing the Bernstein function of a extendible Marshall–Olkin distribution.

method

A string indicating which sampling algorithm should be used. Use "MDCM" for the Markovian death-counting model, "AM" for the Arnold model, and "ESM" for the exogenous shock model. We recommend using the ESM only for small dimensions; the AM can be used up until dimension 30.

Details

The extendible Marshall–Olkin distribution has the survival function

\bar{F}{(t)} = \exp{\left\{ - \sum_{i=1}^{d}{ {[ \psi{(i)} - \psi{(i-1)} ]} t_{[i]} } \right\}} , \quad t = {(t_{1}, \ldots, t_{d})} > 0 ,

for Bernstein functions \psi, see BernsteinFunction, and t_{[1]} \geq \cdots \geq t_{[d]}, see \insertCiteMai2017armo.

The relationship between Bernstein functions and exchangeable shock-size arrival intensities of the exchangeable Marshall–Olkin distribution, see rexmo(), is as follows:

\eta_{i} = \binom{d}{i} {(-1)}^{i-1} \Delta{ \psi{(d-i)} } , \quad i \in {\{ 1 , \ldots , d \}} .

This formula for the exchangeable shock-size arrival intensities is not numerically stable in higher dimensions, and rextmo() uses approximation techniques from \insertCiteSloot2022armo to calculate them.

Value

rextmo returns a numeric matrix of size n x d rows and d. Each row corresponds to an independently and identically (iid) distributed sample from a d-variate extendible Marshall–Olkin distribution with specified parameters.

References

\insertAllCited

See Also

Other sampling-algorithms: rexmo(), rmo(), rpextmo()

Examples

rextmo(
  10, 3,
  AlphaStableBernsteinFunction(alpha = log2(2 - 0.5))
)
# independence
rextmo(
  10, 3,
  LinearBernsteinFunction(scale = 1)
)
# comonotone
rextmo(
  10, 3,
  ConstantBernsteinFunction(constant = 1)
)

rextmo(
  10, 3,
  AlphaStableBernsteinFunction(alpha = log2(2 - 0.5)),
  method = "AM"
)
# independence
rextmo(
  10, 3,
  LinearBernsteinFunction(scale = 1),
  method = "AM"
)
# comonotone
rextmo(
  10, 3,
  ConstantBernsteinFunction(constant = 1),
  method = "AM"
)

rextmo(
  10, 3,
  AlphaStableBernsteinFunction(alpha = log2(2 - 0.5)),
  method = "ESM"
)
# independence
rextmo(
  10, 3,
  LinearBernsteinFunction(scale = 1),
  method = "ESM"
)
# comonotone
rextmo(
  10, 3,
  ConstantBernsteinFunction(constant = 1),
  method = "ESM"
)

hsloot/rmo documentation built on April 25, 2024, 10:41 p.m.