Point process simulation of generalised inverse Gaussian processes and estimation of the Jaeger integral

In this paper novel simulation methods are provided for the generalised inverse Gaussian (GIG) L\'{e}vy process. Such processes are intractable for simulation except in certain special edge cases, since the L\'{e}vy density associated with the GIG process is expressed as an integral involving certain Bessel Functions, known as the Jaeger integral in diffusive transport applications. We here show for the first time how to solve the problem indirectly, using generalised shot-noise methods to simulate the underlying point processes and constructing an auxiliary variables approach that avoids any direct calculation of the integrals involved. The resulting augmented bivariate process is still intractable and so we propose a novel thinning method based on upper bounds on the intractable integrand. Moreover our approach leads to lower and upper bounds on the Jaeger integral itself, which may be compared with other approximation methods. The shot noise method involves a truncated infinite series of decreasing random variables, and as such is approximate, although the series are found to be rapidly convergent in most cases. We note that the GIG process is the required Brownian motion subordinator for the generalised hyperbolic (GH) L\'{e}vy process and so our simulation approach will straightforwardly extend also to the simulation of these intractable proceses. Our new methods will find application in forward simulation of processes of GIG and GH type, in financial and engineering data, for example, as well as inference for states and parameters of stochastic processes driven by GIG and GH L\'{e}vy processes.


Introduction
The Lévy process is a fundamental tool for the study of continuous time stochastic phenomena [1]- [3]. The most familiar example is of course Brownian motion, but it is well known that the Gaussian assumption is inadequate for modelling of real-world phenomena, which are often more heavy-tailed than the Gaussian. Applications are found in areas such as financial modelling [4]- [6], communications [7]- [12], signal processing [13], image analysis [14], [15] and audio processing [16], [17]. Non-Gaussian heavy-tailed effects are also important in the climatological sciences [18], [19], in the medical sciences [20] and for the understanding of sparse modelling/Compressive Sensing [21]- [29].
In this paper we study a very general class of non-Gaussian Lévy processes, the generalised inverse Gaussian process [2], [30], a process which can capture various degrees of heavy-tailed behaviour, including the gamma process, the inverse Gaussian and the reciprocal-gamma process, as well as processes that lie somewhere 'in between' these edge cases [30]. Our work also enables direct simulation of the mean-variance mixtures of GIG processes, leading to the generalised hyperbolic (GH) processes [31]. Important sub-classes of the GH process include the asymmetric Student-t process which has previously been intractable for simulation and inference to our knowledge (this class is entirely distinct from the Student-t processes developed in the Machine Learning literature [32]). The use of asymmetric Student-t models in financial econometric applications are discussed in [33].
Rosinski [34] presents a generalised shot-noise representation of non-Gaussian Lévy processes, and it is this approach that we develop here for the GIG and GH processes. Our previous work using the shot noise representation has focussed on stable law processes and their applications in engineering, see [35]- [37] and references therein. There have been relevant developments in various special cases over recent years, including [38] who present the theory of normal-inverse Gaussian (NIG) processes, [39] who present approximate sampling methods for the NIG case, while [40] give applications of series based methods for non-Gaussian Ornstein-Uhlenbeck (OU) processes. [41] provided rejection sampling and series based simulations for the GIG OU process using the concepts of [34], but these are applied to a different Background driving Lévy process (BDLP) than our work and indeed require evaluation of a generally intractable integral involving Bessel Functions. In addition [42]- [44] have provided exact simulation methods for the related class of tempered stable (TS) processes, while recent relevant literature on GIG Lévy fields can be found in [45]. It should be noted that the shot noise method involves infinite series of decreasing random variables, and in practice the series must be truncated at some finite limit in simulation. This truncation is the only approximation involved in our methods, which are otherwise exact, and in most cases the series are found to converge rapidly as the number of terms increases.
The distribution of the GIG Lévy process at t = 1, the GIG distribution, possesses a three parameter probability density function defined for positive real random variables as follows [30]: where λ ∈ R, K λ (·) is the modified Bessel function of the second kind and I is the indicator function. The support of parameters γ and δ depend on the sign of λ such that: as discussed in [30]. Random variate generation algorithms for a GIG variable are studied in [46], [47].
It is shown in [48] that the GIG distribution is infinitely divisible and hence can be the distribution of a Lévy process at time t = 1. Furthermore, particular values of the parameters lead to special cases of the GIG distribution such as the inverse Gaussian (λ = −1/2), Gamma (δ = 0, λ > 0) and the reciprocal-Gamma (γ = 0, λ < 0) distributions, and in these limit cases the normalising constant is replaced by the normalising constant of these well known distributions.
The principal contribution of this paper is to provide a comprehensive suite of methods for simulation of GIG processes, without the need for evaluation of intractable integrals, beyond pointwise evaluation of the relevant Bessel functions. An auxiliary variables approach transforms the univariate GIG point process into a bivariate point process having the GIG process as its marginal by construction, and requiring no explicit evaluation of integrals. We derive tractable dominating measures for the augmented GIG Lévy density, hence leading to a random thinning methodology for generation of jumps of the underlying marginal GIG process. The whole procedure is carried out through generation of familiar random variables (from the gamma family) and point processes (both gamma and tempered stable). In addition we are able to bound the average acceptance rates of the random variate generation and also to provide upper and lower bounds on the GIG Lévy density and the corresponding Jaeger integral. Finally the whole methodology is made accessible to practitioners through the publication of Matlab and Python code 1 to implement the GIG sampling schemes. Section 2 presents the necessary preliminaries for simulation of Lévy processes and their corresponding point processes, using a generalised shot-noise approach. Section 3 gives the specific forms for the GIG Lévy density and derives bounds on these densities, as well as a generic thinning method for tractable sampling of the underlying point processes, and presents in detail the simulation method for two different parameter ranges of the process. Section 4 presents example simulations, compared with exact simulations of the GIG random variable and finally Section 5 discusses the application of GIG processes in simulation and inference for more general processes including the generalised hyperbolic process.

Shot noise representations, Lévy densities and thinning
In this section we present the required preliminaries about Lévy processes and shot-noise simulation of those processes, using the framework of [34]. The characteristic function for a general non-negative-valued Lévy process W (t) having no drift or Brownian motion part is given by [49], Corollary 15.8, as: where Q is a Lévy measure on [0, ∞) and satisfying (0,∞) (1 ∧ x)Q(dx) < ∞ ([1], p.72). By the Lévy-Ito integral representation, we may express W (t) directly as: Here N is a bivariate point process having mean measure Lebesgue × Q on [0, T ] × (0, ∞), which can be conveniently expressed as: uniform random variables which give the times of arrival of jumps, {X i } are the size of the jumps and δ V,X is the Dirac measure centered at time V and jump size X.
Substituting N directly into (3) leads to The almost sure convergence of this series to {W (t)} is proven in [34]. Most of the new material in this paper is concerned with generating the jump sizes {X i } for the GIG case. We will thus usually refer to the point process as just the set of jump sizes, N = {X i }, but of course corresponding jump times {V i } will need to be sampled as above in all cases in order to realise the process according to (4).
In principle it may be possible to simulate directly from the point process N , but in practice the potentially infinite number of jumps in any finite time interval make this impossible. If the jumps can be ordered by size, however, it may be possible to simulate all of the significant jumps and ignore or approximate the residual error from omitting the smallest jumps. It turns out that this can be done in a very convenient way, using the well known approach of [34], [50], [51]. The starting point is the simulation of the epochs of a unit rate Poisson process {Γ i } i≥1 . The intensity function of this process is of course λ Γ = 1, and the resulting realisations contain almost surely an infinite number of terms. We know how to simulate an arbitrarily large number of ordered terms from this process by repeatedly generating standard exponential random variables and calculating the cumulative sum of these to obtain an ordered Γ i sequence. Now, define the upper tail probability of the Lévy measure as and a corresponding non-increasing function h(.) as the inverse tail probability: Then, the following point process converges a.s. to N [34]: and the corresponding convergent representation of the Lévy process is (neglecting the compensator term c i , which is zero for all cases considered here): Thus, to generate points directly from N by this method it is necessary to be able to compute h(γ) = Q + −1 (γ) explicitly. In the cases considered here it will not be possible to do this and instead an indirect approach is adopted, using thinning or rejection sampling [34], [52] of more tractable point processes for which h(γ) is directly available. In particular, we seek a 'bounding' process N 0 having Lévy measure Q 0 and satisfying dQ 0 (x)/dQ(x) ≥ 1 ∀x ∈ (0, ∞); then, realisations of N 0 are thinned with probability dQ(x)/dQ 0 (x) in order to obtain samples from the desired process N . In all cases considered here the Lévy measure possesses a density function, which we also denote by Q(x) (using the minor abuse of notation 'dQ(x) = Q(x)dx') and the required bounding condition is then Q 0 (x) ≥ Q(x), with associated thinning probability Q(x)/Q 0 (x).
Two bounding processes are used extensively in the methods of this paper, the tempered stable (TS) and gamma processes, which may be simulated by standard shot noise methods as follows:

Tempered stable point process
In the tempered stable (TS) case the Lévy density is, for α ∈ (0, 1) [53] (see also [54]) x > 0 Several possible approaches to simulation of sample paths from tempered stable processes were proposed in [34], [54] and compared in [55], which recommends the use of the inverse Lévy measure approach over thinning and rejection sampling methods. For the inverse Lévy measure approach the tail probability may be calculated in terms of gamma functions, but is not easily inverted, and numerical approximations are needed [55]. We thus adopt a thinning approach [34] in which the Lévy density is factorised into a positive α-stable process with Lévy density Q 0 (x) = Cx −1−α [56] and a tempering function e −βx . The stable law process has tail mass Q + 0 (x) = C α x −α and hence h(γ) = Q + 0 (γ) −1 = αγ C −1/α . Having simulated the stable point process with rate function Q 0 , points are individually selected (thinned) with probability e −βx , otherwise deleted.
The recipe for generating the tempered stable process N T S is then: Algorithm 1 Generation of tempered stable process 1. Assign N T S = ∅. 5. Form a realisation of the tempered stable Lévy process as: In practice i is truncated at some large value and an approximate realisation results.

Gamma process
The Lévy density for the Gamma process is: x > 0 [34] suggests four possible sampling schemes for this process. The tail probability is the Exponential integral, which would require numerical inversion, see [57]. Instead we adopt the thinning (also called the 'rejection method' in [34]) version of this in which a dominating point process is chosen as Q 0 (x) = C x (1 + βx) −1 . The tail probability for this is Q + 0 (x) = C log β −1 x −1 + 1 and hence h(γ) = 1 β(exp(γ/C)−1) . Points are then thinned with probability (1 + βx) exp(−βx) ≤ 1. As reported in [34], this thinning method is highly effective, with very few point rejections observed. The recipe for generating the gamma process N Ga is then given in Algorithm 2.
Algorithm 2 Generation of gamma process 2. Generate the epochs of a unit rate Poisson process,

Form a realisation of the Gamma Lévy process as:
As before i is truncated at some large value, yielding an approximate realisation of the gamma process.

Simulation from the generalised inverse Gaussian Lévy process
In this section the GIG Lévy density is presented and a general scheme is presented that will enable simulation from the GIG process.
The Lévy density for the generalised inverse Gaussian (GIG) process is given by [30]: where H λ (z) = J λ (z) + iY λ (z) is the Hankel function of the first kind (z is always real-valued in the current context), J λ (z) is the Bessel function of the first kind, and Y λ (z) is the Bessel function of the second kind.
The GIG Lévy density comprises two terms: the initial integral, which we denote Q GIG (x): added to a second term, present only for λ > 0: This second term is a Gamma process that may be straightforwardly simulated using the standard methods of 2.2 and added to the simulation of points from the first term Q GIG (x). Hence we will neglect this second term for now. It will be convenient to rewrite Q GIG (x) using the substitution z = δ √ 2y as: Note that this integral is known elsewhere as the Jaeger integral, which finds application in diffusive transport [58]. Beyond our direct interest in GIG processes, there is significant interest in approximating these integrals accurately, and our bounding approach is likely to provide accurate bounds and approximations which may be compared with those proposed in [58].
Throughout this paper we will consider only positive and real-valued variables x, y and z, as the complex versions of these functions are not required in the present context.
Our general scheme is to consider the following intensity function associated with a bivariate point process on (0, ∞) × (0, ∞): which has by construction the GIG process as its marginal: We propose to simulate points directly from this bivariate process, hence avoiding any direct evaluation of the Jaeger . Thus a significant part of our approach is in constructing suitable dominating functions that are tractable for simulation, and this is achieved by studying the properties of the Jaeger integral.
The first set of bounds are obtained from the basic properties of the Hankel function [59] and will lead in particular to a simulation algorithm for the case |λ| ≥ 0.5. Properties of the modulus of the Hankel function are mainly derived from the Nicholson integral representation [59], where K 0 is the modified Bessel function of the second kind. In particular this leads to an asymptotic (z → ∞) series expansion ( [59], Section 13.75): from which the well known asymptotic value is obtained, From the Nicholson integral the following important property can also be derived ( [59], Section 13.74): Property 1. For any real, positive z, z|H ν (z)| 2 is a decreasing function of z for ν > 0.5 and an increasing function of z when 0 < ν < 0.5.
These basic properties are used to prove the following bounds: Theorem 1. For any positive z and fixed |λ| ≥ 0.5, the following bound applies: and, for |λ| ≤ 0.5, with equality holding in both cases when |λ| = 0.5.
Proof. Property 1 and the limiting value of 2/π lead to The results follow by substitution of (12) into Q GIG (x, z) (9).
Corollary 1. The bound in (10), applicable for |λ| ≥ 0.5, can be rewritten as where √ Ga is the square-root gamma density, i.e. the density of X 0.5 when X ∼ Ga(x|α, β), having probability density function Remark 1. It can be seen immediately that (3.1) corresponds marginally to a tempered stable process in x, and conditionally to a √ Ga density for z, a tractable feature that will enable sampling from the dominating bivariate point process. In fact, this decomposition and that of Corollory 2 are the key point for our new GIG simulation methods. We are here decomposing the bivariate point process in (x, z) as a marked point process comprising a marginal Poisson process for x and a conditional mark random variable z ([6], Section 2.6.4). The important point here is that the conditional distributions of z|x are integrable and tractable probability density functions and hence a marginal-conditional sampling procedure may be adopted constructively to simulate from the joint point process in (x, z).

Remark 2.
Integration with respect to z leads to a simple upper bound on the GIG Lévy density: which was also obtained by [41], and used in a rejection sampling procedure that requires a direct evaluation of the Jaeger integral, in contrast with our approach. For |λ| ≤ 0.5, a similar argument leads to a lower bound with the same formula as (14).
Remark 3. The first bound for ν ≥ 0.5 in (12) will be used shortly as an envelope function for rejection sampling in the case |λ| ≥ 0.5 using Corollary 1. The second bound in (12) for ν ≤ 0.5 will be adapted in Theorem 2 to develop more sophisticated bounds in this parameter range.
A second set of bounds can be stated as follows: This will define the corner point on a piecewise lower or upper bound. Define now and define the following functions: and for ν ≥ 0.5, with all inequalities becoming equalities when ν = 0.5, and both A(z) bounds (left side inequalities) becoming tight at z = 0 and z = ∞.
The right hand side of the inequalities, B(z), are proven by the monotonicity and sign of gradient for both z 2ν |H ν (z)| 2 and z|H ν (z)| 2 . We may choose an arbitrary corner point (z 0 , H 0 ) on z|H ν (z)| 2 and monotonicity of z|H ν (z)| 2 (Property 1) immediately implies that, for z ≥ z 0 , Moreover, monotonicity and sign of gradient of z 2ν |H ν (z)| 2 [58] imply that from which the bounds B(z) are immediately obtained. Remark 5. The choice of z 0 ∈ (0, ∞) is arbitrary. However, its value will impact the tightness of the bounding functions B(z) and will hence impact the effectiveness of our subsequent sampling algorithms and integral approximations. A suitable generic choice was found to be at the same z value as the corner point of the corresponding A(z) bounds, i.e. set z 0 = z 1 , as plotted in Figs. 1 and 2, though further optimisation may be possible in applications.

Corollary 2.
For the case |λ| < 0.5, the right hand bound in (15), B(z), can be substituted into Q GIG (x, z) (9) and rearranged to obtain:  Furthermore, the two piecewise sections of this bound may be factorised in terms of left-and right-truncated squareroot gamma densities: where the truncated square-root gamma densities are, with their associated normalising constants: and lower/upper incomplete gamma functions are defined in the usual way, for Re(s) > 0, as: can thus be split up into two tractable point processes for simulation: a first, N 1 , comprising a modified tempered |λ|-stable process with truncated √ Ga conditional for z; and a second, N 2 , comprising a modified tempered 0.5-stable process with a further truncated √ Ga conditional for z. We will later use this union of point processes as the dominating Lévy measure in simulation of the |λ| < 0.5 case.
Corollary 3. Integration of the bounding function (18) with respect to z allows a more sophisticated estimate for the Jaeger integral and therefore the Lévy density for the GIG process, which is an upper bound for |λ| < 0.5 and a lower bound for |λ| > 0.5, following the direction of the right hand inequalities in (18) and (16). A similar procedure inserting the left hand (A(z)) inequalities from (18) and (16) yields the corresponding lower (|λ| < 0.5) and upper (|λ| > 0.5) bounds. Define first the bounding functions Q A GIG (x) and Q B GIG (x), corresponding to the bounds A(z) and B(z) as follows: These are obtained by substituting the bounds A(z) or B(z) into the expression for Q GIG (x, z) (9) and integrating with respect to z.
Noting that z 0 ∈ (0, ∞) can be chosen arbitrarily, the Q B GIG estimates may be improved by optimising with respect to z 0 to either maximise (|λ| < 0.5) or minimise (|λ| > 0.5) Q B GIG (x) at each point x. Then, following the direction of the inequalities in (15) and (16) we obtain the following estimates of Q GIG (x): with all inequalities becoming equalities at |λ| = 0.5. Optimisation to achieve the required maximum and minimum functions can be achieved by numerical search.
Example plots are given in Fig. 3 in which the optimised lower and upper bounds are plotted, showing very close agreement (often indistinguishable by eye) in their estimation of Q GIG (x), over various parameter ranges and large x ranges (i.e. the bounds are visually quite tight). Overlaid are the x −3/2 and x −(1+|λ|) trends and also the simple approximation of (14). This simple approximation diverges significantly from our proposed bounds, particularly when |λ| is not close to 0.5 (when |λ| = 0.5 all bounds are equal to the true function Q GIG (x) for the inverse Gaussian (IG) process).

Simulation of GIG processes with |λ| ≥ 0.5
In this section the specific algorithm applied for simulation in the case |λ| ≥ 0.5 is detailed. In this parameter range it has been found very effective to use Theorem 1 and Corollary 1, so that the dominating bivariate process is: which is simulated as a marked point process having factorised (marginal-conditional) intensity function (Corollary 1) as follows: The thinning probability for points drawn from the dominating point process is then: The procedure for generation of points from the process with intensity function Q GIG (x) is given in Algorithm 3. In the case of λ > 0, points generated from the process with intensity function shown in Eq. (8) are added to the set of points coming from Q GIG (x) to obtain jump sizes from the GIG process.

For each point
The procedure is completed as before by independently drawing an associated jump time v ∼ U[0, T ] for each accepted jump size ('point') x ∈ N . The value of the GIG Lévy process at t is given in Eq. (4).

Acceptance rate
The mean acceptance probability for fixed x is: which may be bounded using Theorem 2. For the current parameter setting (|λ| > 0.5) we have A(z) ≤ z|H |λ| (z)| 2 ≤ B(z). Lower and upper bounds are obtained by substituting A(z) and B(z) and then by direct integration to give: As noted before, the corner point z 0 ∈ (0, ∞) may be chosen arbitrarily, while z 1 is fixed. Hence the lower bound may be optimised with respect to z 0 at each x value to obtain a tighter lower bound: The (numerically optimised) lower bound and (fixed) upper bound on the mean acceptance rate ρ(x) are visualised for different parameter settings in Fig. 4. It can be observed, as expected from the inequalities (19), that the bounds are tight as x → 0 and x → ∞, and that acceptance rates get lower as |λ| increases. In all cases though they indicate that only large jumps (large x values) will be rejected, and that at some point all jumps below a certain x value are highly likely to be accepted on average.
In principle we can go a little further than the acceptance rate for fixed x and compute overall acceptance rates for the algorithm, and quantities such as the expected number of acceptances/rejections overall. In particular it may be informative to calculate the expected number of accepted points if the underlying Poisson process {Γ i } is truncated to values of less than say c, i.e. the process is approximated using the random truncation Γi≤c h(Γ i ). Since {Γ i } is a unit rate Poisson process, the expected number of accepted points at a truncation level c is: Here h(Γ) is the non-increasing function used to generate a particular point process (5), and in the case of Algorithm 3 this is the tempered stable process with h(Γ) = αΓ C −1/α . α(x) is the acceptance probability in any accept-reject step prior to generating z; in this case this is the term exp(−βx) from the accept-reject step from the tempered stable process, where β = γ 2 /2 (Algorithm 1). Computing the integrand in (20) gives the point process intensity of acceptances as a function of the unit rate Poisson process's time evolution. Figure 5 illustrates this by plotting the upper and lower bounds on this intensity for two values of λ < −0.5. Note that on average many fewer points are accepted at the start of the series for the larger magnitude λ, which lends some theoretical weight to the empirically observed property that the series are more slowly converging as λ becomes increasingly negative (and the process more light-tailed), see experimental simulations section for further results on this effect. We also plot in Fig. 6 the total number of expected rejections, computed as c − N R (c) by numerically integrating (20) with the upper and lower bounds substituted for the integrand. This serves to illustrate again the significant impact of λ on total number of rejected points for a particular truncation limit c. Also overlaid on this figure are the actual mean number of rejections averaged over 1000 simulations of the relevant process with different truncation levels c, illustrating that the true expectation lies between the theoretical bounds. 3.2 Simulation of GIG processes with 0 < |λ| < 0.5 The simple bound of Theorem 1 cannot be straightforwardly applied to simulation the GIG process for |λ| < 0.5. Instead we use the more sophisticated piecewise bounds of Theorem 2 and Corollary 2, which give us the dominating point process (18) that can be split into two independent point processes N 1 and N 2 as follows: Each may be simulated using a thinned tempered stable process for x and a truncated √ Ga density for z. Having simulated each pair (x, z) they are accepted with probability equal to the ratio Q GIG (x, z)/Q 0 GIG (x, z). Owing to the piecewise form of the acceptance probability the two processes may be treated independently, including accept reject steps and the point process union taken at the final step to achieve the final GIG samples. The sampling procedure for point process N 1 is given in Algorithm 4.
Similarly, for N 2 , the procedure is given in Algorithm 5.
Finally, the set of points N = N 1 ∪ N 2 is a realisation of jump sizes from the point process having intensity Q GIG (x). The procedure is completed as before by generating independent jump times v ∼ U[0, T ] for all points x ∈ N .

Acceptance Rates
Theorem 2 is used once again to find lower bounds on the expected acceptance rates. In this case the bound to apply is z|H λ (z)| 2 ≤ A(z).
For N 1 the average acceptance rate ρ 1 (x) is which may be lower bounded by substituting the bound z|H λ (z)| 2 ≤ A(z) from Theorem 2 and by direct integration to give: Use the thinned series method to simulate points x i , i = 1, 2, 3... from a point process with intensity function: which is a modified tempered |λ|-stable process, see Section 3.3 and Algorithm 6.
3. For each x i , simulate a z i from a truncated square-root gamma density: Use the thinned series method to simulate points x i , i = 1, 2, 3... from a point process with intensity function: 3. For each x i , simulate a z i from a truncated square-root gamma density:

With probability:
Similarly, for N 2 the average acceptance rate ρ 2 (x) is H 0 z|H |λ| (z)| 2 dz and again lower bounds are obtained by substituting z|H λ (z)| 2 ≤ A(z) from Theorem 2 and direct integration to give: We note that both of these bounds are in fact independent of the value of x. If we use B(z) to obtain an upper bound on the acceptance rates ρ 1 and ρ 2 , both bounds are found to be 1, i.e. no useful information is gleaned from the upper bound.

Sampling from the marginal point process envelope
In steps 2 above we require simulation of the marginal point process for x in the dominating bivariate point process. For N 1 this has intensity: and we propose two possible methods for simulating this point process.
The first and most basic method uses the fact that the lower incomplete gamma function is upper bounded by the complete gamma function, i.e. γ(|λ|, z 2 0 x/(2δ 2 )) ≤ Γ(|λ|), which allows generation from Q 1 by thinning of a tempered stable process. We thus have the following upper bounding envelope as a tempered stable density: This process may be routinely sampled by thinning of a positive tempered |λ|-stable process as described in 2.1.
Having generated points from the tempered stable envelope function the process is thinned with probability: Experimentally we found that the acceptance rates were quite low for this bound, meaning that fairly long tempered stable series had to be generated (but see note below about the case γ = 0), so a more sophisticated bound was sought, as follows.
The second and more effective method employs the following bound on the lower incomplete gamma function ( [60], Theorem 4.1): aγ(a, x) x a ≤ (1 + ae −x ) (a + 1) and so γ(|λ|, z 2 0 x/(2δ 2 )) (z 2 0 x/(2δ 2 )) |λ| ≤ (1 + |λ|e −z 2 0 x/(2δ 2 ) ) |λ|(|λ| + 1) (22) so that the point process intensity function is upper bounded by where (24) follows from 0 < e −z 2 0 x/(2δ 2 ) ≤ 1 for x ∈ [0, ∞). The bounding processQ 2 1 (x) may be simulated as a single gamma process, having parameters a = z0 π 2 |λ|H0 and β = γ 2 /2. It is then thinned with the following probability: The whole procedure is given in Algorithm 6. Note that a slightly more refined bounding procedure may be implemented by observing that (23) is the intensity function of the union of two gamma processes, which may be independently simulated and their union thinned with probability Q1(x) Q 2a 1 (x) , at the expense of generating one additional gamma process. Note also that the second method using Algorithm 6 does not work for γ = 0 since the bounding point process cannot be simulated in this case; instead the first method with boundQ 1 1 (x) must be used for the γ = 0 case. This second method, using bounding functionQ 2 1 (x), is regarded as the superior approach for all parameter settings except for γ = 0 since it has increased acceptance probabilities and also relies on an underpinning Gamma process rather than a |λ|-stable process as its basis, and the series representation of the Gamma process is known to converge very rapidly to zero compared to the |λ|-stable process [34], [40].
Similarly, for N 2 we follow a thinning approach. The marginal dominating Lévy density for N 2 is: Using the complete gamma function as part of an upper bound for this density, we can sample N 2 as a tempered stable intensity e −xγ 2 /2 (2δ 2 ) 0.5 Γ(0.5) π 2 H0x 3/2 , and apply thinning with probability Γ(0.5, z 2 0 x/(2δ 2 ))/Γ(0.5). This procedure is found to work well and the procedure is summarised in Algorithm 7.
Algorithm 7 Generating from Q 2 1. Generate a tempered stable process N M T S using Algorithm 1 with parameters C = (2δ 2 ) 0.5 Γ(0.5) , α = 0.5 and β = γ 2 /2. Rejection rates could potentially be further improved by more tightly upper bounding the term Γ(0.5, 2δ 2 ). The following simple bound is suitable, and valid for 0 < s < 1: This was not explored in the simulations as Algorithm 7 was found to perform well.

Simulations
In this section example simulations from the new method are generated up to t = T , where T = 1, and compared with a random variable generator for the GIG distribution [46], [61] (a 'ground truth' simulation for comparing the distribution at t = T , but unlike our method, not able to generate the entire path of the process). In our new shot noise case, M = 1000 terms are generated for each point process series representation and 10 6 random realisations of the GIG random variable are generated to produce Figs. 9-15, in which examples of the principal parameter ranges and edge case γ = 0 are presented. Note that M represents the total number of terms generated for each of the underlying tempered stable and gamma processes, rather than the final number of accepted terms. 10 4 random samples were generated in each case for our new shot noise method and 10 6 samples for the 'ground truth' method of [46], [61] at t = 1. In Figs. 16-19 example pathwise simulations are plotted for several parameter settings, drawing 30 independent realisations of the GIG process in each case, setting T = 1. For cases where λ > 0 the additional term in the Lévy density, λ e −xγ 2 /2 x , see (7), is generated as an independent Gamma process and the union of the these points with those from Q GIG is taken to generate the final simulated process. Once the union of all the points has been taken, to form a set of jump sizes {x i }, independent and uniformly distributed jump times {v i ∈ [0, T ]} are generated and the process path may be realised as As previously discussed, the resulting process approximates a GIG Lévy process. By comparing the distribution of the Lévy process at t = 1 and the distribution of GIG random variables generated using [46], [61], the quality of this approximation may be evaluated, at least at the end-point of the interval t = T = 1. A possible statistical test in this case is the two-sample Kolmogorov-Smirnov (KS) test since in most cases the CDF of a GIG random variable is not available in closed form. The KS test checks whether the two samples come from the same distribution by reporting the KS statistic, computed as the supremum of the absolute difference between the empirical CDFs of the two samples [62].
The results of such a KS test are reported in Fig. 7, for values of |λ| < −0.5, varying shot noise series length M , and using random sample sizes of 10000. Remaining parameters were γ = 0.1, δ = 2. It can be seen that the convergence of the KS statistic is slower as λ becomes more negative, as alluded to in earlier analysis. The final p-values at M = 10000 are typically well above 0.1, indicating that the hypothesis cannot be rejected for this M , at a confidence level of 0.1, with considerably earlier convergence for the smaller absolute values of λ.
For 0 < |λ| < 0.5 we observed very rapid convergence of the KS statistics to acceptable levels as M increases, typically within a few dozen terms in the series, so we do not display these results.
For λ > 0.5 Fig. 8 gives the equivalent set of KS curves, showing more rapid convergence than their negative counterparts (presumably because of the additional gamma process that is mixed into the point process) and again showing p-values typically well above 0.1 for M = 10000.
Of course, we do recognise that our generated GIG processes are approximate, and so it should always be possible to reject the null hypothesis for sufficiently large sample sets, but nevertheless these tests do give a helpful indication of the new algorithm's performance for different ranges of λ. Similar behaviours were observed for other settings of parameters γ and δ.
Finally the computational burden of the algorithms are linear in M , the number of terms in the series. Moreover there are no random waiting times since the accept-reject steps are performed as one-off tests for each point generated in the series. The most significant contributors to the load are the calculation of the various acceptance probabilities and the sampling of the auxiliary variables z. The Matlab and Python code runs at similar speed on standard laptop platforms. On a Microsoft Surface (Intel(R) Core(TM) i7-1065G7 CPU @ 1.30GHz 1.50 GHz) the time for computation was very roughly 10 −6 M s per random process realisation with |λ| ≥ 0.5 and approximately double that for the more complex |λ| < 0.5 case. Note also that in Algorithm 3 some significant parallelisation is possible, since Steps 1.-3. do not depend on λ. Thus it would be possible to simulate many different realisations for different λ by performing one set of steps 1.-3. and then performing step 4. independently for each λ value required. This could be of significant value in ensemble and Monte Carlo inference procedures, as well as for rapid visualisation of different λ scenarios.   : Simulation comparison between the shot noise generated GIG process and GIG random variates, λ = −0.1, γ = 0.1, δ = 2, 10 6 random samples.Left hand panel: QQ plot comparing our shot noise method (x-axis) with random samples of the GIG density generated using the 'ground truth' method of [46], [61]. Right hand panel: Normalised histogram density estimate for our method compared with the true GIG density function. Figure 10: Simulation comparison between the shot noise generated GIG process and GIG random variates, λ = −0.4, γ = 0.5, δ = 1, 10 6 random samples. Left hand panel: QQ plot comparing our shot noise method (x-axis) with random samples of the GIG density generated using the 'ground truth' method of [46], [61]. Right hand panel: Normalised histogram density estimate for our method compared with the true GIG density function. Figure 11: Simulation comparison between the shot noise generated GIG process and GIG random variates, λ = −1, γ = 0.5, δ = 4, 10 6 random samples. Left hand panel: QQ plot comparing our shot noise method (x-axis) with random samples of the GIG density generated using the 'ground truth' method of [46], [61]. Right hand panel: Normalised histogram density estimate for our method compared with the true GIG density function. Figure 12: Simulation comparison between the shot noise generated GIG process and GIG random variates, λ = −0.3, γ = 0, δ = 4, 10 6 random samples. Left hand panel: QQ plot comparing our shot noise method (x-axis) with random samples of the GIG density generated using the 'ground truth' method of [46], [61]. Right hand panel: Normalised histogram density estimate for our method compared with the true GIG density function. Figure 13: Simulation comparison between the shot noise generated GIG process and GIG random variates, λ = −1, γ = 0, δ = 4, 10 6 random samples. Left hand panel: QQ plot comparing our shot noise method (x-axis) with random samples of the GIG density generated using the 'ground truth' method of [46], [61]. Right hand panel: Normalised histogram density estimate for our method compared with the true GIG density function. Figure 14: Simulation comparison between the shot noise generated GIG process and GIG random variates, λ = 1, γ = 0.4, δ = 4, 10 6 random samples. Left hand panel: QQ plot comparing our shot noise method (x-axis) with random samples of the GIG density generated using the 'ground truth' method of [46], [61]. Right hand panel: Normalised histogram density estimate for our method compared with the true GIG density function. Figure 15: Simulation comparison between the shot noise generated GIG process and GIG random variates, λ = 0.3, γ = 0.5, δ = 2, 10 6 random samples. Left hand panel: QQ plot comparing our shot noise method (x-axis) with random samples of the GIG density generated using the 'ground truth' method of [46], [61]. Right hand panel: Normalised histogram density estimate for our method compared with the true GIG density function.

Discussion
This paper has presented a generic simulation methodology for GIG processes. The methods are simple and efficient to implement and have good acceptance rates, which will make them of use in applications for practitioners. Moreover, we provide code in Matlab and Python in order to give researchers immediate access to the methods.
Simulation of GIG processes opens up the possibility of simulation and inference for many more complex processes; in particular, a direct extension takes the sampled GIG process and generates other processes within the generalised shot-noise methodology [34]: where U i are iid uniform random variates and H(u, γ) a non-increasing function of γ. Of particular interest will be the mean-variance mixture of Gaussians, with: and J i = h(Γ i ) is the ith ordered jump of the simulated GIG process. This approach, which is an exactly equivalent process to the time-changed Brownian motion description of [38], leads directly to a simulation method for the generalised hyperbolic (GH) process, and its conditionally Gaussian form will enable inference for these processes, using a conditionally Gaussian approach similar in spirit to [35], [37]. Our continued work on these processes will study these inferential approaches with the GIG/GH model and also their use as driving processes for stochastic differential equations, again extending the approach of [37] to these more general classes of process.