InverseGaussianBernsteinFunction-class: Class for Inverse Gaussian Bernstein function

InverseGaussianBernsteinFunction-classR Documentation

Class for Inverse Gaussian Bernstein function

Description

For the inverse Gaussian Lévy subordinator with \eta > 0, the corresponding Bernstein function is the function

\psi(x) = \sqrt{2x + \eta^2} - \eta, x>0.

Details

For the inverse Gaussian Bernstein function, the higher-order alternating iterated forward differences are not known in closed-form, but we can use numerical integration (here: stats::integrate()) to approximate it with the following representation:

{(-1)}^{k-1} \Delta^{k} \psi(x) = \int_0^\infty e^{-ux} (1-e^{-u})^k \frac{1}{\sqrt{2\pi} u^{3/2}} e^{-\frac{1}{2}\eta^2 u} du, x>0, k>0.

This Bernstein function can be found on p. 309 in \insertCiteMai2017armo. Furthermore it is a transformation of no. 2 in the list of complete Bernstein functions in Chp. 16 of \insertCiteSchilling2012armo.

The inverse Gaussian Bernstein function has the Lévy density \nu:

\nu(du) = \frac{1}{\sqrt{2 \pi u^3}} \operatorname{e}^{-\frac{1}{2} \eta^2 u} , \quad u > 0 ,

and it has the Stieltjes density \sigma:

\sigma(du) = \frac{ \sin(\pi / 2) }{ \pi } \cdot \frac{ \sqrt{2 x - \eta^2} }{ x } , \quad u > \eta^2 / 2 .

Slots

eta

The distribution parameter (drift of the underlying Gaussian process).

References

\insertAllCited

See Also

levyDensity(), stieltjesDensity(), valueOf(), intensities(), uexIntensities(), exIntensities(), exQMatrix(), rextmo(), rpextmo()

Other Bernstein function classes: AlphaStableBernsteinFunction-class, BernsteinFunction-class, CompleteBernsteinFunction-class, CompositeScaledBernsteinFunction-class, ConstantBernsteinFunction-class, ConvexCombinationOfBernsteinFunctions-class, ExponentialBernsteinFunction-class, GammaBernsteinFunction-class, LevyBernsteinFunction-class, LinearBernsteinFunction-class, ParetoBernsteinFunction-class, PoissonBernsteinFunction-class, ScaledBernsteinFunction-class, SumOfBernsteinFunctions-class

Other Levy Bernstein function classes: AlphaStableBernsteinFunction-class, CompleteBernsteinFunction-class, ExponentialBernsteinFunction-class, GammaBernsteinFunction-class, LevyBernsteinFunction-class, ParetoBernsteinFunction-class, PoissonBernsteinFunction-class

Other Complete Bernstein function classes: AlphaStableBernsteinFunction-class, ExponentialBernsteinFunction-class, GammaBernsteinFunction-class

Other Algebraic Bernstein function classes: AlphaStableBernsteinFunction-class, ExponentialBernsteinFunction-class, ParetoBernsteinFunction-class

Examples

# Create an object of class InverseGaussianBernsteinFunction
InverseGaussianBernsteinFunction()
InverseGaussianBernsteinFunction(eta = 0.3)

# Create a Lévy density
bf <- InverseGaussianBernsteinFunction(eta = 0.7)
levy_density <- levyDensity(bf)
integrate(
  function(x) pmin(1, x) * levy_density(x),
  lower = attr(levy_density, "lower"),
  upper = attr(levy_density, "upper")
)

# Create a Stieltjes density
bf <- InverseGaussianBernsteinFunction(eta = 0.5)
stieltjes_density <- stieltjesDensity(bf)
integrate(
  function(x) 1/(1 + x) * stieltjes_density(x),
  lower = attr(stieltjes_density, "lower"),
  upper = attr(stieltjes_density, "upper")
)

# Evaluate the Bernstein function
bf <- InverseGaussianBernsteinFunction(eta = 0.3)
valueOf(bf, 1:5)

# Calculate shock-arrival intensities
bf <- InverseGaussianBernsteinFunction(eta = 0.8)
intensities(bf, 3)
intensities(bf, 3, method = "stieltjes")
intensities(bf, 3, tolerance = 1e-4)

# Calculate exchangeable shock-arrival intensities
bf <- InverseGaussianBernsteinFunction(eta = 0.4)
uexIntensities(bf, 3)
uexIntensities(bf, 3, method = "stieltjes")
uexIntensities(bf, 3, tolerance = 1e-4)

# Calculate exchangeable shock-size arrival intensities
bf <- InverseGaussianBernsteinFunction(eta = 0.2)
exIntensities(bf, 3)
exIntensities(bf, 3, method = "stieltjes")
exIntensities(bf, 3, tolerance = 1e-4)

# Calculate the Markov generator
bf <- InverseGaussianBernsteinFunction(eta = 0.6)
exQMatrix(bf, 3)
exQMatrix(bf, 3, method = "stieltjes")
exQMatrix(bf, 3, tolerance = 1e-4)

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