Class for the \(\alpha\)-stable Bernstein function
Source:R/s4-AlphaStableBernsteinFunction.R
AlphaStableBernsteinFunction-class.Rd
For the \(\alpha\)-stable Lévy subordinator with \(0 < \alpha < 1\), the corresponding Bernstein function is the power function with exponent \(\alpha\), i.e. $$ \psi(x) = x^\alpha, \quad x>0. $$
Details
For the \(\alpha\)-stable Bernstein function, the higher order alternating
iterated forward differences are known in closed form but cannot be evaluated
numerically without the danger of loss of significance. 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
\alpha \frac{1}{\Gamma(1-\alpha) u^{1+\alpha}} du, x>0, k>0 .
$$
This Bernstein function is no. 1 in the list of complete Bernstein functions in Chp. 16 of (Schilling et al. 2012) .
The \(\alpha\)-stable Bernstein function has the Lévy density \(\nu\): $$ \nu(du) = \frac{\alpha}{\Gamma(1-\alpha)} u^{-1 - \alpha} , \quad u > 0 , $$ and it has the Stieltjes density \(\sigma\): $$ \sigma(du) = \frac{\sin(\alpha \pi)}{\pi} u^{\alpha - 1}, \quad u > 0 . $$
References
Schilling RL, Song R, Vondracek Z (2012). Bernstein functions, 2 edition. De Gruyter. doi:10.1515/9783110269338 .
See also
levyDensity()
, stieltjesDensity()
, valueOf()
,
intensities()
, uexIntensities()
, exIntensities()
, exQMatrix()
,
rextmo()
, rpextmo()
Other Bernstein function classes:
BernsteinFunction-class
,
CompleteBernsteinFunction-class
,
CompositeScaledBernsteinFunction-class
,
ConstantBernsteinFunction-class
,
ConvexCombinationOfBernsteinFunctions-class
,
ExponentialBernsteinFunction-class
,
GammaBernsteinFunction-class
,
InverseGaussianBernsteinFunction-class
,
LevyBernsteinFunction-class
,
LinearBernsteinFunction-class
,
ParetoBernsteinFunction-class
,
PoissonBernsteinFunction-class
,
ScaledBernsteinFunction-class
,
SumOfBernsteinFunctions-class
Other Levy Bernstein function classes:
CompleteBernsteinFunction-class
,
ExponentialBernsteinFunction-class
,
GammaBernsteinFunction-class
,
InverseGaussianBernsteinFunction-class
,
LevyBernsteinFunction-class
,
ParetoBernsteinFunction-class
,
PoissonBernsteinFunction-class
Other Complete Bernstein function classes:
ExponentialBernsteinFunction-class
,
GammaBernsteinFunction-class
,
InverseGaussianBernsteinFunction-class
Other Algebraic Bernstein function classes:
ExponentialBernsteinFunction-class
,
InverseGaussianBernsteinFunction-class
,
ParetoBernsteinFunction-class
Examples
# Create an object of class AlphaStableBernsteinFunction
AlphaStableBernsteinFunction()
#> An object of class "AlphaStableBernsteinFunction"
#> (invalid or not initialized)
AlphaStableBernsteinFunction(alpha = 0.5)
#> An object of class "AlphaStableBernsteinFunction"
#> - alpha: 0.5
# Create a Lévy density
bf <- AlphaStableBernsteinFunction(alpha = 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")
)
#> 1.114243 with absolute error < 1.4e-05
# Create a Stieltjes density
bf <- AlphaStableBernsteinFunction(alpha = 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")
)
#> 1 with absolute error < 8.4e-06
# Evaluate the Bernstein function
bf <- AlphaStableBernsteinFunction(alpha = 0.3)
valueOf(bf, 1:5)
#> [1] 1.000000 1.231144 1.390389 1.515717 1.620657
# Calculate shock-arrival intensities
bf <- AlphaStableBernsteinFunction(alpha = 0.8)
intensities(bf, 3)
#> [1] 0.66712356 0.66712356 0.07397757 0.66712356 0.07397757 0.07397757 0.18492131
intensities(bf, 3, method = "stieltjes")
#> [1] 0.66712356 0.66712356 0.07397757 0.66712356 0.07397757 0.07397757 0.18492131
intensities(bf, 3, tolerance = 1e-4)
#> [1] 0.66712356 0.66712356 0.07397757 0.66712356 0.07397757 0.07397757 0.18492130
# Calculate exchangeable shock-arrival intensities
bf <- AlphaStableBernsteinFunction(alpha = 0.4)
uexIntensities(bf, 3)
#> [1] 0.23233766 0.08717025 0.59332184
uexIntensities(bf, 3, method = "stieltjes")
#> [1] 0.23233766 0.08717025 0.59332184
uexIntensities(bf, 3, tolerance = 1e-4)
#> [1] 0.23233766 0.08717027 0.59332185
# Calculate exchangeable shock-size arrival intensities
bf <- AlphaStableBernsteinFunction(alpha = 0.2)
exIntensities(bf, 3)
#> [1] 0.2910978 0.1549973 0.7996359
exIntensities(bf, 3, method = "stieltjes")
#> [1] 0.2910978 0.1549973 0.7996359
exIntensities(bf, 3, tolerance = 1e-4)
#> [1] 0.2910978 0.1549974 0.7996358
# Calculate the Markov generator
bf <- AlphaStableBernsteinFunction(alpha = 0.6)
exQMatrix(bf, 3)
#> [,1] [,2] [,3] [,4]
#> [1,] -1.933182 1.252396 0.2947533 0.3860323
#> [2,] 0.000000 -1.515717 1.0314331 0.4842834
#> [3,] 0.000000 0.000000 -1.0000000 1.0000000
#> [4,] 0.000000 0.000000 0.0000000 0.0000000
exQMatrix(bf, 3, method = "stieltjes")
#> [,1] [,2] [,3] [,4]
#> [1,] -1.933182 1.252396 0.2947533 0.3860323
#> [2,] 0.000000 -1.515717 1.0314331 0.4842834
#> [3,] 0.000000 0.000000 -1.0000000 1.0000000
#> [4,] 0.000000 0.000000 0.0000000 0.0000000
exQMatrix(bf, 3, tolerance = 1e-4)
#> [,1] [,2] [,3] [,4]
#> [1,] -1.933182 1.252396 0.2947533 0.3860323
#> [2,] 0.000000 -1.515717 1.0314331 0.4842834
#> [3,] 0.000000 0.000000 -1.0000000 1.0000000
#> [4,] 0.000000 0.000000 0.0000000 0.0000000