Efficient estimation of first passage time density function for ... - Caltech

16 downloads 0 Views 434KB Size Report
Bridge, Jump Diffusion, First Passage Time, Poisson process, inverse ... that the traditionally used geometric Brownian motion model for market behavior.
EFFICIENT ESTIMATION OF FIRST PASSAGE TIME DENSITY FUNCTION FOR JUMP DIFFUSION PROCESSES ∗ AMIR F. ATIYA† AND STEVE A.K. METWALLY‡ Abstract. The first passage time problem has attracted considerable research interest in the field of stochastic processes. It concerns the estimation of the probability density of the time for a random process to cross a specified boundary level. Even though there are many theoretical advances in solving this problem, for many classes of random processes no analytical solution exists. The jumpdiffusion process is one such class. Recent research in finance theory has renewed the interest in jump diffusion processes, and the first passage time problem for such processes is applicable to several finance problems. In this paper we develop fast Monte Carlo-type numerical methods for computing the first passage density function for jump-diffusion processes. Compared with the standard Monte Carlo approach, our approaches are about 10-30 times faster.

keywords: Monte Carlo Simulation, Brownian Motion, Brownian Bridge, Jump Diffusion, First Passage Time, Poisson process, inverse Gaussian density. 1. Introduction. Jump diffusion processes have experienced renewed interest in the theory of finance. It became widely acknowledged in the academic literature that the traditionally used geometric Brownian motion model for market behavior falls short of explaining empirical observations of market returns and its underlying derivatives’ prices [4], [24], [6]. Markets exhibit fat-tailed behavior, and for that a jump diffusion process (JDP’s) has established itself as a sound alternative to the Geometric Brownian motion model. Dealing with JDP’s, however, for example in valuing derivatives, estimating risk, modeling credit spreads, etc. is mathematically much more challenging than the case of pure diffusion. Except for very basic applications where closed form solutions are attainable, for most problems the computational approach is the only way to go. As a step in the direction of improving the efficiency of the computational approach we consider here the first passage time density problem for JDP’s, and develop two Monte Carlo algorithms that are significantly more efficient than the traditionally used approach. The first passage time problem for JDP’s has many applications in finance, but most notably the following. In credit risk modeling a widely used approach, originally proposed by Merton [15], models the market value of assets as a JDP (the jump part is needed here to model significant events or shocks such as a surprise earnings release). When the market value of assets goes below some level, determined in terms of the company’s liabilities, then the company is apt to default on its obligations. The first passage time density is required in order to obtain the expected discounted cash flows (say for a loan to the considered company). Another application is in market risk analysis. The first passage time density is needed in case we need to evaluate the probability of crossing certain loss levels during certain periods. Another application is in derivatives pricing, such as pricing barrier options or lookback options, which involve crossing certain levels ( [16], [17]), or pricing American options [23], which entail evaluating the first passage time density for a time varying boundary. ∗ Submitted to SIAM Journal on Scientific Computing November 15, 2002. Revised January 22, 2004. † Department of Computer Engineering, Cairo University, Egypt ([email protected]). ‡ (Corresponding Author) Department of Industrial Engineering and Operations Research, Columbia University, New York, NY ([email protected]).

1

2

Submitted to SIAM Journal on Scientific Computing November 15, 2002

Such applications are typically applied to large portfolios involving thousands of securities, and, in addition, thousands of iteration runs are needed on each security in the portfolio to calibrate the model parameters. Computationally efficient procedures are therefore highly sought. We wish to mention that the first passage time density problem for JDP’s is also applicable to many problems other than finance. Examples are applications in the areas of queuing networks [11], computer vision [25], target recognition [19], adaptive control ( [3], [5]), and neurobiology [10]. The first passage time density problem [12] is a classic problem in the theory of random processes. The well-known inverse Gaussian distribution gives a solution for the Brownian motion case [2], [1]. For JDP’s there is no analytic solution except for two cases: when the jump sizes are doubly exponential or exponentially distributed [13], or when the jumps can have only nonnegative values (assuming that the crossing boundary is below the process starting value) [2]. Despite the fact that only few process types have closed form solutions for the first passage time problem, we have found in the literature only a few numerical methods for solving the problem. One method computes the boundary-crossing for continuous processes [8] based on a finite grid approach. Another method [21], also for continuous processes, numerically solves an integral equation that the first passage time density has to satisfy (it is based on Chapman-Kolmogorov equation). It is not clear, however, if these two methods can be generalized to processes having discontinuities or jumps. Another method [14] is a Monte Carlo approach using the concept of importance sampling. Also, in [17] we have developed a numerical method to compute certain expectations (of the pay-off) over the first passage time density for jump diffusion processes using a combination of Monte Carlo simulation and Taylor series expansion. The article is organized as follows: In Section 2 we present the mathematical model, with a short overview of the developed methods. Section 3 presents the proposed algorithms. In Section 4 we give the simulation results to test the proposed methods. Section 5 contains a few concluding comments. 2. Mathematical Model. We assume a simple jump diffusion process that consists of two parts, a continuous and a discontinuous part. The continuous part is a Brownian motion with constant instantaneous drift c and volatility σ. The discontinuous part represents the jump in the process value with Jt being the jump size: dxt = cdt + σdZt + Jt dqt

(2.1)

where the first two terms on the right hand side represent the continuous part and the third term represents the discontinuous part of the process, q = (qt )t≥0 is a homogeneous Poisson process with a non-negative intensity parameter λ . Let T1 , T2 , ... denote the arrival times of the jumps. JT1 , JT2 , ... are i.i.d. random variables. Z = (Zt )t≥0 is a standard Brownian motion, ZT ∼ N (0, T ). The available standard simulation method to obtain the first passage time density is to generate the jump-diffusion process by discretizing time and simulating equation (2.1) many times, observing the level crossing times, and then implementing a density estimation method. One problem with this method is that it is very slow and produces a biased estimate due to discretization. The two methods we propose are also a Monte Carlo-type method. The distinction here is that we typically have to evaluate only a few points every Monte Carlo iteration in contrast to thousands of points per iteration for the plain Monte Carlo method. Thus it is significantly faster. The proposed methods do not suffer from a

AMIR F. ATIYA AND STEVE A.K. METWALLY

3

discretization bias like the standard approach. The methods are also very flexible. They can handle the following cases: • The jump magnitudes obey a certain density. • Multiple processes with the jumps correlated across the processes. • The jump instants obey a different density from Poisson, a Poisson density with time varying rate of arrival, or if they are serially correlated. There are several reasons why a fast method is needed. A typical run for the standard Monte Carlo method would require evaluating thousands of time steps per process path. In addition, tens of thousands of Monte Carlo runs (generated paths) are needed to obtain an accurate density estimation. For many applications there are thousands of processes, and it is required to compute the first passage time density for each process (e.g. a loan portfolio with many corporate debt instruments, or a many nodes in a computer network). In some situations the process parameters (c, σ, and Jt ) are unknown and have to be tuned by some optimization procedure and hence the first passage time density has to be computed for each optimization iteration. Increasing the discretization step would accelerate the computation a little, but at the expense of increasing the bias. 2.1. A Brief Description of the Proposed Methods. The general idea of the first proposed method is that first we generate the jump instants by generating the inter-jump times. Then, the process value immediately before the first jump is generated using a normal distribution. Then, the value immediately after the jump is generated, using the jump-size distribution. Then the value immediately before the second jump is generated using a normal distribution. We continue in this manner until we reach the end of the time interval. Once these inter-jump interval end points are generated, we consider the these intervals sequentially. If at a particular jump the process crossed the boundary level for the first time, then we have generated a crossing point. Otherwise, we focus on the following inter-jump interval. Even if the terminal values in that interval are above the boundary, there is a chance that in between the two jumps, where the process follows a pure Brownian motion, the path has crossed the boundary level. But since we know the initial and terminal values, the Brownian motion is actually a tied-down Brownian motion or a Brownian bridge [12]. We provide the formula for this conditional density (see next section). We use that formula to generate a crossing point in this inter-jump interval. In the process we use the concept of rejection sampling, where a generated point being “rejected” means no crossing occurred in the interval. We use some concepts of importance sampling to speed up the sampling. This whole procedure is performed sequentially starting from the interval t = 0 till the first jump, then the interval from the first jump till the second jump, and so on until the end of the time interval. We repeat this experiment in a Monte Carlo fashion to obtain many points, and use a density estimator such as the kernel estimator to estimate the first passage time density. The second method focuses also on the jumps and is sequential in nature. Unlike the first method, we generate a first passage point conditioned on the starting point of the interval rather than the two end points. First we generate the jump instants. Starting from the first inter-jump period, we generate a point from the inverse Gaussian density, which is the density of the boundary crossing time for pure diffusion processes. In the inter-jump period, the process is a pure diffusion, so the first passage time will follow that density. If the generated point falls inside the inter-jump interval, then we have a valid generated point for the first passage time. If not, then

4

Submitted to SIAM Journal on Scientific Computing November 15, 2002

we reject that point. The intervening jump will invalidate that generated point. We then generate the process value at the end of the current interval. This is shown to be distributed as a difference of two normal densities. We use rejection sampling to generate such a point. Then we generate a post-jump process value. At that point we have arrived to the beginning of the next inter-jump interval, and we repeat the whole procedure on this new interval. We keep moving from one interval to the next until we either arrive at a legitimate first passage point, or arrive to the end of the considered interval with no crossing point. 2.2. The Inter-Jump Boundary-Crossing Distribution. Consider an interval [0, T ], and let the jump instants be T1 , ..., TK . As mentioned, these are the first variables to be generated. Let x Ti− be the process value immediately before  the ith jump, and x Ti+ be the process value immediately after the ith jump. These    values are generated sequentially, that is first x T1− , then x T1+ , then x T2− , then  x T2+ , etc (see the detailed algorithm steps in the next section). Let V be the boundary level, and let us define A (t) as the event “the process crossed the boundary level for the first time in the interval [t, t + dt]”. The conditional inter-jump first passage density is defined as:   + gi (t) = p A (t) ∈ dt|x Ti−1 , x Ti− From [9]:   + ∗ p x Ti− ∈ dx|A (t) , x Ti−1   gi (t) = + P x Ti− ∈ dx|x Ti−1    + p A (t) ∈ dt|x Ti−1 ∗ p x Ti− ∈ dx|x (t) = V   = + P x Ti− ∈ dx|x Ti−1 + p A (t) ∈ dt|x Ti−1



(2.2)

From [20], we have the first passage time (inverse Gaussian) density :  + p (A (t) ∈ dt|x Ti−1 =    2 ! + + x Ti−1 −V x Ti−1 − V + c (t − Ti−1 ) −3/2 √ (2.3) (t − Ti−1 ) exp − 2 (t − Ti−1 ) σ 2 σ 2π The other two components of the formula are normal density functions:   + P (x Ti− ∈ dx|x Ti−1 =    2 ! + x Ti− − x Ti−1 − c (Ti − Ti−1 ) p exp − 2 (Ti − Ti−1 ) σ 2 σ 2π (Ti − Ti−1 ) 1

(2.4)

  P (x Ti− ∈ dx|x (t) = V =   2 ! x Ti− − V − c (Ti − t) p exp − 2 (Ti − t) σ 2 σ 2π (Ti − t) 1

(2.5)

Substituting (3), (4), and (5) in (2) and after some algebraic grouping we get:

5

AMIR F. ATIYA AND STEVE A.K. METWALLY

 + x Ti−1 −V −3/2 −1/2 (t − Ti−1 ) (Ti − t) ∗ gi (t)= 2 2yπσ   2 !   2 + x Ti−1 − V + c (t − Ti−1 ) x Ti− − V − c (Ti − t) exp − − (2.6) 2 (Ti − t) σ 2 2 (t − Ti−1 ) σ 2 where    2 ! + x Ti−1 − x Ti− + cτ 1 y= √ exp − 2τ σ 2 σ 2πτ

(2.7)

and τ = Ti − Ti−1 . 2.3. The First Passage Time Distribution. In the past subsection we considered the conditional first passage time density for one inter-jump interval. Here, we combine the results to obtain the conditional density for the whole interval [0, T ] (conditional on jump instants and values). Let Bs be   a Brownian Bridge in the in+ , BT − = x Ti− . From [12], we can obtain the terval [Ti−1 , Ti ] with BT + = x Ti−1 i i−1 probability that the minimum of Bs is always above the boundary level in the interval τ: 

+ Ti−1



Ti−

, BT − = x Bs > V |BT + = x Pi = P inf i i−1 Ti−1 ≤s≤Ti    + −  1 − exp − 2[x(Ti−1 )−V ][x(Ti )−V ] if x Ti− > V τ σ2 =  0 otherwise





(2.8)

Let T0 = 0 and TK+1 = T . Also let I represent the index of the first jump, if any, that crosses the boundary level during the during the simulated time:

 I = min (i : x Tj− > V ; j = 1, ..., i &    x Tj+ > V ; j = 1, ..., i − 1 & x Ti+ ≤ V

(2.9)

If no such I exists, then set I = 0. Let M (s) ≡ M denote the index of the inter-jump period in which the time s falls. This means that s ∈ [TM −1 , TM ]. Then,    + , x Ti− , i = 1, ..., K + 1 = P (A (s) ∈ ds|x Ti−1  QM −1  if M < I or I = 0 gM (s) Qj=1 Pj Q M −1 M gM (s) j=1 Pj + j=1 Pj δ (s − TI ) if M = I   0 if M > I where δ is the Dirac’s delta function.

(2.10)

6

Submitted to SIAM Journal on Scientific Computing November 15, 2002

2.4. The Kernel Density Estimator. Once we generate the points, as will be described next section, we use a kernel density estimator with a Gaussian Kernel. The kernel density estimator is based on centering a kernel function of a certain width (called bandwidth) around each generated data point [22], as follows N

1X K (h, t − si ) fˆ = N i=1

(2.11)

where K (h, t − s) denotes the kernel function as a function of t with bandwidth h and centered around the generated point s. The bandwidth is a key quantity for the kernel density estimator. It determines the degree of smoothness of the estimated density. A well-known formula for the optimal bandwidth given in [22] as the value that minimizes the asymptotic mean integrated squared error: √



Z





2N π

hopt =

00

ft

2

−0.2 dt

(2.12)

−∞

where N is the number of generated points, and ft is true density. The only problem with using this formula is that it depends on the true density which is actually unknown. A common practice is to use in this formula some proxy for the true density, or a pilot estimate. In our case we assume a very rough initial approximation for the distribution as a Gamma distribution with the first and second moments chosen to match those estimated from the points generated from the considered problem:

ft =

αβ β−1 t exp (−αt) Γ (β)

The reason for choosing the Gamma distribution is that it has similarities in terms of the general shape to the unknown density, including the fact that both of them are nonzero only for positive t. In this case the functional becomes Z





00

ft

0

2

dt =

5 X Wi αi Γ (2β − i) 2

i=1

2(2β−i) (Γ (β))

where W1 = A2 , W2 = 2AB, W3 = B 2 + 2AC, W4 = 2BC, W5 = C 2 and A = α2 , B = −2α (β − 1) , C = (β − 1) (β − 2) In order to obtain a finite functional, and hence a non-zero bandwidth, we need to constrain β to be at least equal to 3. Using this constraint, we can obtain the estimates ˆ (t) = 1 PN ti and of the parameters α and β via the Method of Moments: t = E q N i=1  PN 2 1 2 ˆ (t2 ) − t2 . The ˆ E t = N i=1 ti and the sample standard deviation is ζ = E 2 estimates are: α ˆ = t2 and βˆ = t 2 ≥ 3. ζ

ζ

AMIR F. ATIYA AND STEVE A.K. METWALLY

7

3. The Proposed Simulation Algorithms. 3.1. Method 1. We consider the inter-jump periods sequentially. Consider for example the ith period [Ti−1 , Ti ]. We generate a variable from a distribution uniform in an interval starting from Ti−1 , but extending beyond Ti by a factor of Pi / (1 − Pi ) (steps 4b and 4c in the algorithm below). If the generated point s falls in the interjump interval [Ti−1 , Ti ], then “a boundary crossing has occurred” at that generated point. We then sample the function gi (s) at that generated point. and multiply the kernel centered at s by that function gi (s). On the other hand, if the generated point s falls outside the interval [Ti−1 , Ti ] (which happens with probability Pi ), then that point is “rejected”. This means no boundary crossing has occurred in the interval, and we proceed to the next interval and repeat the whole process again. So the purpose of the generated point is two-fold: to take care of the fact that there is a probability 1−Pi that boundary crossing occurs in the interval in a rejectionsampling approach, and to generate an actual point that will enter into the kernel summation. We note, however, that the generated point is not generated according to conditional boundary crossing distribution gi (s). We use some concept of importance sampling to weight the kernel in a way to obtain an appropriate density estimate. This is described as follows: The right hand side summation in Equation (2.11) can be viewed as a finite sample estimate of the following: h i Z Ti Egi (s) K(h, t − s) ≡ gi (s)k(h, t − s)ds (3.1) Ti−1

The integral in the RHS can be viewed as h i T − T  i i−1 EU (s) gi (s)K(h, t − s) 1 − Pi

(3.2)

−Ti−1 where U (s) is uniform density in [Ti−1 , Ti−1 + Ti1−P ], from which we sampled the i point. Therefore, one way to obtain an estimate for the true density is to sample according to a uniform density as described above, and weight the kernel with gi (s)(Ti − Ti−1 )/(1 − Pi ). The division by 1 − Pi reflects the probability of accepting a generated point, which itself equals the integration of gi (s) from Ti−1 to Ti . This is the way we implemented the estimate for the density. The steps of the algorithm are described as follows. 1. For n = 1 to N perform the following Monte Carlo runs (steps 2-5): 2. Generate Ti by generating the inter-jump times (Ti − Ti−1 ) according to the given density (e.g. exponential, etc.). 3. For i = 1 to K (K is the number of jumps that occur during the finite horizon [0, T ]): + (a) Generate x(Ti− ) from a normal distribution of mean x(Ti−1 ) + c(Ti − p Ti−1 ) and standard deviation σ Ti − Ti−1 . The initial state is x(0) = x(T0+ ). (b) Generate JTi according to the given jump size distribution. (c) Compute the post jump value: x(Ti+ ) = x(Ti− ) + JTi . 4. For i = 1 to K + 1 (a) Compute Pi according to equation (2.8). i −Ti−1 ) (b) Let b = (T(1−P i) (c) Generate s from a distribution uniform in the interval [Ti−1 , Ti−1 + b].

8

Submitted to SIAM Journal on Scientific Computing November 15, 2002

(d) If s ∈ [Ti−1 , Ti ] then first passage time occurred in this interval [Ti−1 , Ti ]. In this case, we evaluate gi (s) by substituting the generated s into equation (2.6). Then: • Evaluate the kernel function by the density value at the  weighted  Ti −Ti−1 ˆ gi (s) ∗ K(hopt , t − s). generated point: fn (t) = 1−Pi • Exit loop and perform another Monte Carlo cycle (steps 2-4) (e) Else If s ∈ / [Ti−1 , Ti ], then first passage time has not yet occurred. (f) If x Ti+ ≤ V then the jump crossed the boundary level (set I = i, following the definition in equation (2.9)). Then: • TI is a first passage time. Evaluate the kernel function fˆn (t) = K(hopt , t − TI ) • Exit loop and perform another Monte Carlo cycle (steps 2-4) (g) Else If x(Ti+ ) > V , then examine the next interval, that is increment i and perform another iteration of step 4. 5. Perform another Monte Carlo cycle (steps 2-4). 6. If n = N i.e. we have completed all cycles of the Monte Carlo simulation, obPN tain the estimate for the first passage density function: fˆ(t) = N1 n=1 fˆn (t) 3.2. Method 2. 3.2.1. Overview. Method 1 discussed above focuses mainly on estimating the density. However, the obtained points are not generated according to the actual density because of the importance sampling trick used. They merely contribute to estimating the density. It would be useful to have a method where also the points are generated according to the sought density. For example one could use these points to estimate moments or expectations of certain functions. Method 2, discussed here, achieves this objective. However, this is at the expense of somewhat higher complexity. Method 2 is sequential in nature. Unlike Method 1, we condition all densities on the starting point of the inter-jump interval, rather than the two end points of the interval. The method can be summarized as follows. We generate the first jump instant T1 , and first consider the interval [0, T1 ]. Then, we generate a first passage point given the starting value x(0) by generating a point from the inverse Gaussian density. It is the well-known density of first passage time for the case of pure diffusion processes (see Eq. 2.3). If that point falls in the considered interval [0, T1 ], then we have generated a valid first passage point, we stop and go on to generate a new path. Otherwise, if the point falls outside the interval, then we reject that point, and go on to examine the next interval. Towards that end, we generate a point for the process value at the end of the interval (i.e. x(T1− )). The density of x(T1− ), conditional on no crossing having occurred in [0, T1 ], is a difference between two normal densities. A point is generated from the larger of the two normal densities, and rejection sampling is utilized to take care of the subtracted portion of the density. Once x(T1− ) is obtained, the post jump value x(T1+ ) can be generated from the jump magnitude distribution. The above procedure is repeated for the next time interval, starting from generating from the inverse Gaussian density given starting point x(T1+ ) and so on. We continue in this manner until either we get a valid first passage point, or we arrive at the end of the interval without any crossing. Once we generated many points we apply the kernel estimator to obtain the density. 3.2.2. Generating from the Inverse Gaussian Density:. There are fairly efficient methods to generate a point from the inverse Gaussian density. We use the method proposed by Michael, Schucany and Hass [18]. Let us use the standard form

AMIR F. ATIYA AND STEVE A.K. METWALLY

typically used for the inverse Gaussian density. It is given by (see [7]): r 2 λ − λ(s−µ) 2µ2 s pµ,λ (s) = e , s≥0 2πs3

9

(3.3)

Considering an interval [Ti−1 , Ti ], for our case, from Eq. (2.3):

+ λ = ]f rac(x(Ti−1 ) − V )2 σ 2 ,

 x(T + ) − V  i−1 µ=− c

(3.4)

+ where we have assumed that x(Ti−1 ) is available as it has been generated in the previous time step. The following is Michael-Schucany-Hass’s algorithm:

Algorithm MSH: • Generate a normal random number v. • Set y = v 2 . p 2 µ • Compute x1 = µ + µ2λy − 2λ 4µλy + µ2 y 2 . • Generate a uniform random number u in [0, 1]. • If u < µ/(µ + x1 ) then return x ≡ x1 , else return x ≡ µ2 /x1 . This algorithm as developed, however, applies only for the case of µ ≥ 0 (i.e. c ≤ 0. To extend it to the positive drift (c > 0) case, observe that 2λ

p−µ,λ (s) = pµ,λ (s)e− µ

(3.5)

Both densities have the same shape, but the case µ < 0 does not integrate to one, reflecting the fact that boundary crossing might never happen if the drift goes in the direction opposite to the boundary position. To handle this situation, rejection sampling is utilized (see the steps of the algorithm in 3.2.4). 3.2.3. Obtaining Interval End Points. Performing certain manipulations on Eq. (2.8), we obtain     + P inf x(s) > V, x Ti− |x Ti−1 = Ti−1 ≤s≤Ti "    2 +  )−c(Ti −Ti−1 )] [x(Ti− )−x(Ti−1  1  √ exp − −  2(Ti −Ti−1 )σ 2  σ 2π(Ti −Ti−1 )      # 2 + +  −c(Ti −Ti−1 )] −V ][x(Ti− )−V ] x(Ti− )−x(Ti−1 2[x(Ti−1 ) ) [  exp − exp − for x Ti− > V  2(Ti −Ti−1 )σ 2 (Ti −Ti−1 )σ 2       0 for x Ti− ≤ V   + equals the above The sought density, P x Ti− | inf (Ti−1 ≤s≤Ti ) x(s) > V, x Ti−1 density times a factor independent of x(Ti− ). So the idea is to generate a point from the first normal density in the RHS. If the generated point x is below the boundary V we reject the point. If not, then generate a uniformly distributed point u (in [0, 1]), and reject x if u is below the ratio of the normal density being subtracted (second density in the RHS) and the first density on the RHS, of course all evaluted at x. The rejection probability can be simplified as     ! + 2 x Ti−1 − V x Ti− − V Preject = exp − (Ti − Ti−1 )σ 2

10

Submitted to SIAM Journal on Scientific Computing November 15, 2002

= 1 − Pi

(3.6)

where Pi is the same probability obtained in Eq. (2.8). If a point is rejected, then generate another point and repeat the procedure again. 3.2.4. Steps of the Algorithm. 1. For n = 1 to N perform the following Monte Carlo runs (steps 2-5): 2. For i = 1 to K (K is the number of jumps that occur during the finite horizon [0, T ]): (a) Generate Ti by generating the inter-jump times (Ti − Ti−1 ) according to the given density (e.g. exponential, etc.). + (b) If c > 0, then set Paccept = exp(−2c(x(Ti−1 ) − V )/σ 2 ) (let the initial + state x(0) ≡ x(T0 )). If c ≤ 0, set Paccept = 1. Generate a [0, 1] uniform variable u. If u > Paccept then reject the generated first passage time number. Go to Step 2)d) to analyze the next time period. + + (c) Let λ = (x(Ti−1 ) − V )2 /σ 2 , µ = (x(Ti−1 ) − V )/|c|. Generate s from an inverse Gaussian density according to Algorithm MSH above. Set t = s + Ti−1 . If t ∈ [Ti−1 , Ti ], then we have successfully generated a first passage time t. Set tn ≡ t. Augment n and generate a new path by implementing Steps 2)a)-e). (d) Otherwise: Generate a variate x from a normal p distribution of mean + x(Ti−1 ) + c(Ti − Ti−1 ) and standard deviation σ Ti − Ti−1 . Generate a [0, 1] uniform variable u. If u < 1 − Pi reject the generated variate and repeat this step again by generating another x. (e) If u ≥ 1 − Pi , then set x(Ti− ) = x. Generate JTi according to the given jump size distribution, and compute the post-jump value: x(Ti+ ) = x(Ti− ) + JTi . Augment i, and go to Step 2)a) to examine the next inter-jump period. 3. Once completed PN all N Monte Carlo iterations, compute the density estimate: fˆ(t) = N1 n=1 K(hopt , t − tn ) where the summation is over all successfully generated tn ’s. 3.3. Generalizations. From the description of both algorithms one can see that we did not assume any form for the jump magnitude density or for the jump arrival time density, so they can apply to fairly general classes of jump diffusion processes. The developed Method 2 applies also for multiple processes, where the jumps could be correlated across the processes. Consider for example two processes. The problem is to estimate the joint density function f (t1 , t2 ) for the first passage times t1 and t2 of the two processes. How to simulate that problem is to generate the jumps of each of the two processes. These jumps could be correlated, in the sense that a jump in one process could with a certain probability result in a simultaneous jump in the other process. (These are type of processes encountered in finance, for example the contagion effect.) The correlated jump instants can be easily generated. We implement Method 2 on each process, and obtain a pair (t1 , t2 ) of first passage times, for which we can use a two-dimensional kernel estimator. The method is applicable only when the diffusion variables and the jump variables are independent. 4. Simulation Results. We tested the proposed algorithm on three examples. As a comparison, we also implemented the standard Monte Carlo approach on the same examples. The standard Monte Carlo approach (described in Section 2) is obtained by discretizing time and generating the jump-diffusion process Eq. (2.1)

AMIR F. ATIYA AND STEVE A.K. METWALLY

11

forward in time many times, observing the first passage times, and applying the kernel density estimator. We ran MATLAB programs on a Pentium 4 2.8 GHz computer. To obtain the true density, we ran the standard Monte Carlo approach by generating 5 million points using a discretization size ∆ = 0.0002. Because of the very large number of points and the very fine discretization, it can be safely assumed that the resulting estimate is very close to the true density (the bias is negligible). We used this density as a benchmark against which we estimate the mean square error (MSE) for each of the tested methods. The MSE is defined as the integral of the square difference between the estimated density and the benchmark. For each example we considered two cases. In the first one we generate 100,000 points, and in the second one we generate 500,000 points. To obtain a fair comparison we ran the standard Monte Carlo method twice using two discretization step sizes. The first one is chosen large enough so that its speed (as measured by CPU time) is about equal to that of the proposed method. Then, we compare the MSE of both methods. That discretization turned out to be 0.05. Conversely, in the second experiment we chose the discretization size of the standard method fine enough so that the resulting MSE is about the same as that of the proposed method. Then we compare the CPU time of both methods (the discretization size turned out to be 0.0005). These two provide a way to measure one performance criterion by fixing the other. The numerical details are given below. In the following three examples, x0 is the starting value for the process, λ is the arrival rate for the Poisson jump process, µJ and σJ are the mean and standard deviation of the jump sizes respectively. The reason why the boundary level V is expressed as the logarithm of some number is that the applications we intend to solve involve lognormal processes with jumps (entailing log transformations). In all examples we assumed the jump size distribution to be normal. Example 4.1: We use the following parameters values: x0 = 0, V = ln(0.9), c = −0.002, σ = 0.2, λ = 1, σJ = 0.2, µJ = 0, T = 1. The optimal bandwidth for the true density estimate is hopt = 0.01515 using α = 9.44844, and β = 3. The results are given in Table 4.1, Fig. 4.1 for the 100,000 iterations case and Table 4.2, Fig. 4.2 for the 500,000 iterations case. Example 4.2: We use the following parameters values: x0 = 0, V = ln(0.95), c = −0.012, σ = 0.2, λ = 3, σJ = 0.12, µJ = 0, T = 1. The optimal bandwidth for the true density estimate is hopt = 0.00289 using α = 17.17329, and β = 3. The results are given in Table 4.3, Fig. 4.3 for the 100,000 iterations case and Table 4.4, Fig. 4.4 for the 500,000 iterations case. Example 4.3: We use the following parameters values: x0 = 0, V = ln(0.85), c = −0.048, σ = 0.2, λ = 8, σJ = 0.12, µJ = 0, T = 1. The optimal bandwidth for the true density estimate is hopt = 0.005388 using α = 9.20809, and β = 3. The results are given in Table 4.5, Fig. 4.5 for the 100,000 iterations case and Table 4.6, Fig. 4.6 for the 500,000 iterations case. 4.1. Comments on the Results. From the three examples we can see that for an acceptable result from the standard Monte Carlo approach, the proposed approach is around 10-30 times faster depending on the parameters values. The discretization size of 0.0005 causes the standard Monte Carlo approach to have an MSE close to that of our proposed approach at the expense of much higher CPU time. The discretization size of 0.05 choice causes the standard Monte Carlo approach to have a CPU time close to that of our proposed approach at the expense of much higher MSE (200-1000 times higher) as well as a bumpy behavior in the density estimate (see Fig. 4.1 -

12

Submitted to SIAM Journal on Scientific Computing November 15, 2002

4.6). The reason for this bumpy behavior is the large discretization size relative to the optimal bandwidth size, which causes many generated points to cluster along a number of discrete points. Table 4.1 Comparisons between Method 1 (UNIF), Method 2 (IG) and standard Monte Carlo (SMC) approaches for example 4.1 using 100,000 iterations. CPU time, MSE, and MSE x CPU are per iteration.

SMC ∆ = 0.0005 SMC ∆ = 0.05 Method 1 (UNIF) Method 2 (IG)

Optimal Bandwidth 0.011581 0.015206 0.014481 0.007421

CPU Time 0.013184 0.000500 0.000511 0.000646

MSE 0.000374 0.214804 0.000379 0.000422

MSE x CPU 0.00000494 0.00010747 0.00000019 0.00000027

Table 4.2 Comparisons between Method 1 (UNIF), Method 2 (IG) and standard Monte Carlo (SMC) approaches for example 4.1 using 500,000 iterations. CPU time, MSE, and MSE x CPU are per iteration.

SMC ∆ = 0.0005 SMC ∆ = 0.05 Method 1 (UNIF) Method 2 (IG)

Optimal Bandwidth 0.008383 0.010977 0.010458 0.005365

CPU Time 0.013272 0.000499 0.000509 0.000649

MSE 0.000244 0.324998 0.000317 0.000473

MSE x CPU 0.00000324 0.00016219 0.00000016 0.00000031

Table 4.3 Comparisons between Method 1 (UNIF), Method 2 (IG) and standard Monte Carlo (SMC) approaches for example 4.2 using 100,000 iterations. CPU time, MSE, and MSE x CPU are per iteration.

SMC ∆ = 0.0005 SMC ∆ = 0.05 Method 1 (UNIF) Method 2 (IG)

Optimal Bandwidth 0.006411 0.010770 0.008986 0.005079

CPU Time 0.008193 0.000603 0.000677 0.000700

MSE 0.012371 2.676885 0.014407 0.005764

MSE x CPU 0.00010136 0.00161336 0.00000975 0.00000403

Table 4.4 Comparisons between Method 1 (UNIF), Method 2 (IG) and standard Monte Carlo (SMC) approaches for example 4.2 using 500,000 iterations. CPU time, MSE, and MSE x CPU are per iteration.

SMC ∆ = 0.0005 SMC ∆ = 0.05 Method 1 (UNIF) Method 2 (IG)

Optimal Bandwidth 0.004658 0.007778 0.006511 0.003685

CPU Time 0.008605 0.000583 0.000683 0.000701

MSE 0.006270 3.322925 0.006829 0.006421

MSE x CPU 0.00005395 0.00193707 0.00000466 0.00000450

AMIR F. ATIYA AND STEVE A.K. METWALLY

13

Table 4.5 Comparisons between Method 1 (UNIF), Method 2 (IG) and standard Monte Carlo (SMC) approaches for example 4.2 using 100,000 iterations. CPU time, MSE, and MSE x CPU are per iteration.

SMC ∆ = 0.0005 SMC ∆ = 0.05 Method 1 (UNIF) Method 2 (IG)

Optimal Bandwidth 0.011807 0.011784 0.011978 0.007701

CPU Time 0.015389 0.000654 0.000721 0.000921

MSE 0.000331 0.235272 0.000318 0.000140

MSE x CPU 0.00000510 0.00015387 0.00000023 0.00000013

Table 4.6 Comparisons between Method 1 (UNIF), Method 2 (IG) and standard Monte Carlo (SMC) approaches for example 4.2 using 500,000 iterations. CPU time, MSE, and MSE x CPU are per iteration.

SMC ∆ = 0.0005 SMC ∆ = 0.05 Method 1 (UNIF) Method 2 (IG)

Optimal Bandwidth 0.008616 0.010922 0.008684 0.005571

CPU Time 0.015156 0.000664 0.000718 0.000896

MSE 0.000137 0.271927 0.000123 0.000102

MSE x CPU 0.00000207 0.00018047 0.00000009 0.00000009

Submitted to SIAM Journal on Scientific Computing November 15, 2002

0.9

0.96

0.84

0.78

0.72

0.6

0.66

0.54

0.48

0.42

0.36

0.3

0.24

0.18

0.12

0.06

2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0 0

Density Function

14

Tim e

TRUE

UNIF

IG

SMC 0.0005

SMC 0.05

Fig. 4.1. Density function estimates for example 4.1 using 100,000 iterations for Method 1 (UNIF), Method 2 (IG), and standard Monte Carlo (SMC) approaches. SMC is run using two different discretization sizes: 0.0005 and 0.05. TRUE is the true density function obtained using 5 million iterations.

Density Function

2.5 2 1.5 1 0.5

0.96

0.9

0.84

0.78

0.72

0.66

0.6

0.54

0.48

0.42

0.36

0.3

0.24

0.18

0.12

0.06

0

0

Tim e

TRUE

UNIF

IG

SMC 0.0005

SMC 0.05

Fig. 4.2. Density function estimates for example 4.1 using 500,000 iterations for Method 1 (UNIF), Method 2 (IG), and standard Monte Carlo (SMC) approaches. SMC is run using two different discretization sizes: 0.0005 and 0.05. TRUE is the true density function obtained using 5 million iterations.

AMIR F. ATIYA AND STEVE A.K. METWALLY

15

8 Density Function

7 6 5 4 3 2 1 0.95

0.88

0.82

0.76

0.69

0.63

0.57

0.51

0.44

0.38

0.32

0.25

0.19

0.13

0

0.06

0

Tim e

TRUE

UNIF

IG

SMC 0.0005

SMC 0.05

0.99

0.93

0.87

0.81

0.75

0.68

0.62

0.56

0.5

0.44

0.37

0.31

0.25

0.19

0.13

0

9 8 7 6 5 4 3 2 1 0 0.06

Density Function

Fig. 4.3. Density function estimates for example 4.2 using 100,000 iterations for Method 1 (UNIF), Method 2 (IG), and standard Monte Carlo (SMC) approaches. SMC is run using two different discretization sizes: 0.0005 and 0.05. TRUE is the true density function obtained using 5 million iterations.

Tim e

TRUE

UNIF

IG

SMC 0.0005

SMC 0.05

Fig. 4.4. Density function estimates for example 4.2 using 500,000 iterations for Method 1 (UNIF), Method 2 (IG), and standard Monte Carlo (SMC) approaches. SMC is run using two different discretization sizes: 0.0005 and 0.05. TRUE is the true density function obtained using 5 million iterations.

16

Submitted to SIAM Journal on Scientific Computing November 15, 2002

Density Function

2.5 2 1.5 1 0.5

0.95

0.9

0.84

0.79

0.73

0.67

0.62

0.56

0.51

0.45

0.39

0.34

0.28

0.23

0.17

0.11

0.06

0

0

Tim e

TRUE

UNIF

IG

SMC 0.0005

SMC 0.05

Fig. 4.5. Density function estimates for example 4.3 using 100,000 iterations for Method 1 (UNIF), Method 2 (IG), and standard Monte Carlo (SMC) approaches. SMC is run using two different discretization sizes: 0.0005 and 0.05. TRUE is the true density function obtained using 5 million iterations.

Density Function

2.5 2 1.5 1 0.5 0.97

0.91

0.8

0.86

0.74

0.69

0.63

0.57

0.51

0.46

0.4

0.34

0.29

0.23

0.17

0.12

0.06

0

0

Tim e

TRUE

UNIF

IG

SMC 0.0005

SMC 0.05

Fig. 4.6. Density function estimates for example 4.3 using 500,000 iterations for Method 1 (UNIF), Method 2 (IG), and standard Monte Carlo (SMC) approaches. SMC is run using two different discretization sizes: 0.0005 and 0.05. TRUE is the true density function obtained using 5 million iterations.

AMIR F. ATIYA AND STEVE A.K. METWALLY

17

5. Conclusion. In this paper we have presented a fast numerical algorithm for the estimation of the first passage time density for jump-diffusion processes. The algorithm utilizes the fact that in typical applications there are typically only a few jumps in the considered interval, and that in-between the jumps the process is a Brownian motion, which tends to be more tractable mathematically. The proposed algorithm is very simple to implement and very flexible to handle other distributions as well. Compared with the standard approach, it has superior speed and accuracy. Compared with an implementation of the standard algorithm that would achieve equal mean square error, the algorithm is about 10-30 times faster. REFERENCES [1] J. Abrahams, A survey of receent progress on level-crossing problems for random processes, Communications and Networks, Springer-Verlag, 1986, pp. 6-25. [2] I. Blake and W. Lindsey, Level-Crossing Problems for Random Processes, IEEE Transactions Information Theory. Vol. IT-19, (1973), pp. 295-315. [3] P. Caines and J.-F. Zhang, On the adaptive control for jump parameter systems via nonlinear filtering, SIAM J. Contr. Optim., Vol. 33, 1995, pp. 1758-1777. [4] M. Chahal and J. Wang, A Jump Diffusion Processes and Emerging Bond and Stock Markets: An Investigation Using Daily Data, Multinational Finance Journal, vol. 1, no. 3 (1997), pp. 169-197. [5] O. Costa and M. Fragoso, Discrete time LQ-optimal control problems for infinite Markov jump parameter systems, IEEE Trans. Automatic Control, Vol. 40, 1995, pp. 2076-2088. [6] S. R. Das, The Surprise Element: Jumps in Interest Rates, Journal of Econometrics, vol. 106 (2002), pp. 27-65. [7] L. Devroye, Non-uniform Random Variate Generation, New York: Springer-Verlag, 1986. [8] D. Dickson and H. Waters. Ruin problems: simulation or calculation?, British Actuarial Journal, 1996, pp. 727-740. [9] W. Feller, An Introduction to Probability Theory and Its Applications. New York:Wiley, Vol. 1, 1968. [10] M. Giraudo and L. Sacerdote, Jump-diffusion processes as models for neuronal activity, Biosystems, Vol. 40, No. 1-2, 1997, pp. 75-82. [11] G. Gorov, Ya. Kogan, and N. Paradizov, Jump diffusion approximation in single-server systems with interruption of service and variable rate of arrival of calls, Avtomatika i Telemekhanika, No. 6, June 1985, pp. 44-51. [12] I. Karatzas and S. Shreve. Brownian Motion and Stochastic Calculus, New York: Springer Verlag, 1991. [13] S.G. Kou, and H. Wang. First Passage Times of A Jump Diffusion Process. Working Paper, December 2000. [14] T. Lehtonen and H. Nyrhinen, Simulating level-crossing probabilities by importance sampling, Advances in Applied Probability, Vol. 24, No. 4, December 1992, pp. 858-874. [15] R.C. Merton, On the pricing of corporate debt: the risk structure of interest rates, Journal of Finance, Vol. 29, (1974), pp. 449-470. [16] R.C. Merton, Option Pricing when the Underlying Stock Returns are Discontinuous, Journal of Financial Economics, Vol. 3, (1976), pp. 125-144. [17] S. Metwally and A. Atiya, Using Brownian Bridge for Fast Simulation of Jump-Diffusion Processes and Barrier Options, The Journal of Derivatives, Vol. 10, no. 1, (2002), pp. 43-54. [18] J. Michael, W. Schucany, and R. Haas, Generating random variates using transformations with multiple roots, The American Statistician, vol. 30, 1976, pp. 88-90. [19] M. Miller, U. Grenander, J. O’Sullivan, and D. Snyder, Automatic target recognition organized via jump-diffusion algorithm, IEEE Trans. Image processing, Vol. 6, No. 1, January 1997, pp. 157-174. [20] L.C.G. Rogers and D. Williams. Diffusions, Markov Processes and Martingales. New York: Wiley, vol. 1, 1994. [21] W. Sharp and E. Allen, Numerical solution of first passage problems using an approximate Chapman-Kolmogorov relation, Probabilistic Engineering Mechanics, Vol. 13, No. 3, July 1998, pp. 233-241. [22] B.W. Silverman, Density Estimation for Statistics and Data Analysis. London: Chapman & Hall, 1986.

18

Submitted to SIAM Journal on Scientific Computing November 15, 2002

[23] X. Zhang, Numerical analysis of American option pricing in a jump-diffusion model, Mathematics of Operations Research, Vol. 22, No. 3, August 1997, pp. 668-690. [24] C. Zhou, A jump-diffusion approach to modeling credit risk and valuing defaultable securities, The Federal Reserve Board: Finance and Economics Discussion Series, No. 1997-15. [25] S.C. Zhu, Stochastic jump-diffusion process for computing medial axes in Markov random fields, IEEE Trans. Pattern Analysis and Machine Intelligence, Vol. 21, No. 11, November 1999, pp. 1158-1169.

Suggest Documents