Class for Exponential Bernstein functions
Source:R/s4-ExponentialBernsteinFunction.R
ExponentialBernsteinFunction-class.Rd
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 . $$
References
Schilling RL, Song R, Vondracek Z (2012). Bernstein functions, 2 edition. De Gruyter. doi:10.1515/9783110269338 .
See also
getLevyDensity()
, getStieltjesDensity()
,
calcIterativeDifference()
, calcShockArrivalIntensities()
,
calcExShockArrivalIntensities()
, calcExShockSizeArrivalIntensities()
,
calcMDCMGeneratorMatrix()
, rextmo()
, rpextmo()
Other Bernstein function classes:
AlphaStableBernsteinFunction-class
,
BernsteinFunction-class
,
CompleteBernsteinFunction-class
,
CompositeScaledBernsteinFunction-class
,
ConstantBernsteinFunction-class
,
ConvexCombinationOfBernsteinFunctions-class
,
GammaBernsteinFunction-class
,
InverseGaussianBernsteinFunction-class
,
LevyBernsteinFunction-class
,
LinearBernsteinFunction-class
,
ParetoBernsteinFunction-class
,
PoissonBernsteinFunction-class
,
ScaledBernsteinFunction-class
,
SumOfBernsteinFunctions-class
Other Levy Bernstein function classes:
AlphaStableBernsteinFunction-class
,
CompleteBernsteinFunction-class
,
GammaBernsteinFunction-class
,
InverseGaussianBernsteinFunction-class
,
LevyBernsteinFunction-class
,
ParetoBernsteinFunction-class
,
PoissonBernsteinFunction-class
Other Complete Bernstein function classes:
AlphaStableBernsteinFunction-class
,
GammaBernsteinFunction-class
,
InverseGaussianBernsteinFunction-class
Other Algebraic Bernstein function classes:
AlphaStableBernsteinFunction-class
,
InverseGaussianBernsteinFunction-class
,
ParetoBernsteinFunction-class
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