Skip to contents

For the Exponential-jump compound Poisson subordinator with \(\lambda > 0\), the corresponding Bernstein function is $$ \psi(x) = \frac{x}{x + \lambda}, x>0. $$

Details

For the Exponential jump CPP Bernstein function, the higher order alternating iterated forward differences are known in closed form: $$ {(-1)}^{k-1} \Delta^k \psi(x) = \lambda \cdot B(k+1, x+\lambda), x>0, k>0 . $$

This Bernstein function is no. 4 in the list of complete Bernstein functions in Chp. 16 of (Schilling et al. 2012) .

The Exponential Bernstein function has the Lévy density \(\nu\): $$ \nu(du) = \lambda \operatorname{e}^{-\lambda u}, \quad u > 0 , $$ and it has the (discrete) Stieltjes density \(\sigma\): $$ \sigma(du) = \delta_{\{ \lambda \}}(du), \quad u > 0 . $$

Slots

lambda

The index \(\lambda\).

References

Schilling RL, Song R, Vondracek Z (2012). Bernstein functions, 2 edition. De Gruyter. doi:10.1515/9783110269338 .

Examples

# Create an object of class ExponentialBernsteinFunction
ExponentialBernsteinFunction()
#> An object of class "ExponentialBernsteinFunction"
#> 	 (invalid or not initialized)
ExponentialBernsteinFunction(lambda = 0.5)
#> An object of class "ExponentialBernsteinFunction"
#> - lambda: 0.5

# Create a Lévy density
bf <- ExponentialBernsteinFunction(lambda = 0.7)
levy_density <- getLevyDensity(bf)
integrate(
  function(x) pmin(1, x) * levy_density(x),
  lower = attr(levy_density, "lower"),
  upper = attr(levy_density, "upper")
)
#> 0.7191639 with absolute error < 4.4e-06

# Create a Stieltjes density
bf <- ExponentialBernsteinFunction(lambda = 0.5)
stieltjes_density <- getStieltjesDensity(bf)
sum(stieltjes_density$y * 1/(1 + stieltjes_density$x))
#> [1] 0.6666667

# Evaluate the Bernstein function
bf <- ExponentialBernsteinFunction(lambda = 0.3)
calcIterativeDifference(bf, 1:5)
#> [1] 0.7692308 0.8695652 0.9090909 0.9302326 0.9433962

# Calculate shock-arrival intensities
bf <- ExponentialBernsteinFunction(lambda = 0.8)
calcShockArrivalIntensities(bf, 3)
#> [1] 0.07518797 0.07518797 0.08354219 0.07518797 0.08354219 0.08354219 0.31328321
calcShockArrivalIntensities(bf, 3, method = "levy")
#> [1] 0.07518797 0.07518797 0.08354219 0.07518797 0.08354219 0.08354219 0.31328321
calcShockArrivalIntensities(bf, 3, tolerance = 1e-4)
#> [1] 0.07518797 0.07518797 0.08354219 0.07518797 0.08354219 0.08354219 0.31328321

# Calculate exchangeable shock-arrival intensities
bf <- ExponentialBernsteinFunction(lambda = 0.4)
calcExShockArrivalIntensities(bf, 3)
#> [1] 0.04901961 0.07002801 0.52521008
calcExShockArrivalIntensities(bf, 3, method = "levy")
#> [1] 0.04901961 0.07002801 0.52521008
calcExShockArrivalIntensities(bf, 3, tolerance = 1e-4)
#> [1] 0.04901961 0.07002801 0.52521008

# Calculate exchangeable shock-size arrival intensities
bf <- ExponentialBernsteinFunction(lambda = 0.2)
calcExShockSizeArrivalIntensities(bf, 3)
#> [1] 0.08522727 0.14204545 0.71022727
calcExShockSizeArrivalIntensities(bf, 3, method = "levy")
#> [1] 0.08522727 0.14204545 0.71022727
calcExShockSizeArrivalIntensities(bf, 3, tolerance = 1e-4)
#> [1] 0.08522727 0.14204545 0.71022727

# Calculate the Markov generator
bf <- ExponentialBernsteinFunction(lambda = 0.6)
calcMDCMGeneratorMatrix(bf, 3)
#>            [,1]       [,2]       [,3]      [,4]
#> [1,] -0.8333333  0.1923077  0.2403846 0.4006410
#> [2,]  0.0000000 -0.7692308  0.2884615 0.4807692
#> [3,]  0.0000000  0.0000000 -0.6250000 0.6250000
#> [4,]  0.0000000  0.0000000  0.0000000 0.0000000
calcMDCMGeneratorMatrix(bf, 3, method = "levy")
#>            [,1]       [,2]       [,3]      [,4]
#> [1,] -0.8333333  0.1923077  0.2403846 0.4006410
#> [2,]  0.0000000 -0.7692308  0.2884615 0.4807692
#> [3,]  0.0000000  0.0000000 -0.6250000 0.6250000
#> [4,]  0.0000000  0.0000000  0.0000000 0.0000000
calcMDCMGeneratorMatrix(bf, 3, tolerance = 1e-4)
#>            [,1]       [,2]       [,3]      [,4]
#> [1,] -0.8333333  0.1923077  0.2403846 0.4006410
#> [2,]  0.0000000 -0.7692308  0.2884615 0.4807692
#> [3,]  0.0000000  0.0000000 -0.6250000 0.6250000
#> [4,]  0.0000000  0.0000000  0.0000000 0.0000000