Parallel Monte-Carlo and Moment Equations for SDEs

A.C. Guidoum1 and K. Boukhetala2

2020-03-27

The MCM.sde() function

R> MCM.sde(model, statistic, R = 1000, time, exact = NULL, names = NULL,level = 0.95, 
+         parallel = c("no", "multicore", "snow"),ncpus = getOption("ncpus", 1L), cl = NULL, ...)

The main arguments of MCM.sde() function in Sim.DiffProc package consist:

R> plot(x,index = 1,type=c("all","hist","qqplot","boxplot","CI"), ...)

This takes a MCM.sde() object and produces plots for the R replicates of the interesting quantity.

One-dimensional SDE

Itô Sde 1D:
 | dX(t) = 0.5 * theta^2 * X(t) * dt + theta * X(t) * dW(t)
 | t in [0,1].

MCM Based on 10 Batches of 500-Realisations at time 1

   Exact Estimate    Bias Std.Error    RMSE  CI( 2.5 % , 97.5 % )
m 1.3248   1.3122 0.01255   0.00940 0.03087 ( 1.29381 , 1.33065 )
S 1.3252   1.2872 0.03799   0.06658 0.20332 ( 1.15668 , 1.41766 )
Stratonovich Sde 1D:
 | dX(t) = 0.5 * theta^2 * X(t) * dt + theta * X(t) o dW(t)
 | t in [0,1].

MCM Based on 10 Batches of 500-Realisations at time 1

    Exact Estimate     Bias Std.Error    RMSE  CI( 2.5 % , 97.5 % )
m 1.00000   1.0119 -0.01186   0.01046 0.03355 ( 0.99136 , 1.03236 )
S 0.75505   0.7991 -0.04405   0.06401 0.19702 ( 0.67364 , 0.92456 )

Two-dimensional SDEs

Itô Sde 2D:
 | dX(t) = 1/mu * (theta - X(t)) * dt + sqrt(sigma) * dW1(t)
 | dY(t) = X(t) * dt + 0 * dW2(t)
 | t in [0,15].

MCM Based on 10 Batches of 500-Realisations at time 10

       Exact Estimate     Bias Std.Error    RMSE
m1   1.99991  1.99388  0.00603   0.00774 0.02398
m2  18.00009 17.98175  0.01834   0.02535 0.07823
S1   0.25000  0.26433 -0.01433   0.00432 0.01931
S2   4.25005  4.19569  0.05436   0.06359 0.19837
C12  0.24998  0.25133 -0.00135   0.01678 0.05037
       CI( 2.5 % , 97.5 % )
m1    ( 1.97871 , 2.00905 )
m2  ( 17.93206 , 18.03144 )
S1     ( 0.25586 , 0.2728 )
S2    ( 4.07106 , 4.32032 )
C12   ( 0.21844 , 0.28422 )

Three-dimensional SDEs

Stratonovich Sde 3D:
 | dX(t) = mu * Y(t) * dt + sigma * Z(t) o dW1(t)
 | dY(t) = 0 * dt + 1 o dW2(t)
 | dZ(t) = 0 * dt + 1 o dW3(t)
 | t in [0,1].

MCM Based on 10 Batches of 500-Realisations at time 1

    Estimate Std.Error   CI( 2.5 % , 97.5 % )
mu1 -0.00173   0.00498 ( -0.01149 , 0.00803 )
mu2 -0.00791   0.00532 ( -0.01834 , 0.00252 )
mu3 -0.00729   0.02197 ( -0.05035 , 0.03577 )
mu4  0.12039   0.00150  ( 0.11745 , 0.12333 )
mu5  0.25940   0.00450  ( 0.25058 , 0.26822 )
mu6  0.00245   0.00474 ( -0.00684 , 0.01174 )

The MEM.sde() function

R> MEM.sde(drift, diffusion, type = c("ito", "str"), solve = FALSE,
+         parms = NULL, init = NULL, time = NULL, ...)

The main arguments of MEM.sde() function in Sim.DiffProc package consist:

One-dimensional SDE

Itô Sde 1D:
 | dX(t) = 0.5 * 0.75^2 * X(t) * dt + 0.75 * X(t) * dW(t)
 | t in [0,1].

Moment equations: 
 | dm(t) = 0.28125 * m(t)
 | dS(t) = 0.5625 * m(t)^2 + 1.125 * S(t)

Approximation of moment at time 1
 | m(1) = 1.3248
 | S(1) = 1.3252
Stratonovich Sde 1D:
 | dX(t) = 0.5 * 0.75^2 * X(t) * dt + 0.75 * X(t) o dW(t)
 | t in [0,1].

Moment equations: 
 | dm(t) = 0
 | dS(t) = 0.5625 * S(t) + 0.5625 * m(t)^2

Approximation of moment at time 1
 | m(1) = 1
 | S(1) = 0.75505

Two-dimensional SDEs

Itô Sde 2D:
 | dX(t) = 1/1 * (2 - X(t)) * dt + sqrt(0.5) * dW1(t)
 | dY(t) = X(t) * dt + 0 * dW2(t)
 | t in [0,10].

Moment equations: 
 | dm1(t)  = 2 - m1(t)
 | dm2(t)  = m1(t)
 | dS1(t)  = 0.5 - 2 * S1(t)
 | dS2(t)  = 2 * C12(t)
 | dC12(t) = S1(t) - C12(t)

Approximation of moment at time 10                                                              
  | m1(10)  =   1.9999 | S1(10)  =  0.25 | C12(10)  =  0.24998
  | m2(10)  =  18.0001 | S2(10)  =  4.25                      

Three-dimensional SDEs

Itô Sde 3D:
 | dX(t) = 0.5 * Y(t) * dt + 0.25 * Z(t) * dW1(t)
 | dY(t) = 0 * dt + 1 * dW2(t)
 | dZ(t) = 0 * dt + 1 * dW3(t)
 | t in [0,1].

Moment equations: 
 | dm1(t)  = 0.5 * m2(t)
 | dm2(t)  = 0
 | dm3(t)  = 0
 | dS1(t)  = (0.25 * m3(t))^2 + 0.0625 * S3(t) + C12(t)
 | dS2(t)  = 1
 | dS3(t)  = 1
 | dC12(t) = 0.25 * m3(t) + 0.5 * S2(t)
 | dC13(t) = 0.25 * m3(t) + 0.5 * C23(t)
 | dC23(t) = 1

Approximation of moment at time 1                                                      
   | m1(1)  =  5 | S1(1)  =  0.11458 | C12(1)  =  0.25
   | m2(1)  =  0 | S2(1)  =  1.00000 | C13(1)  =  0.25
   | m3(1)  =  0 | S3(1)  =  1.00000 | C23(1)  =  1.00

Further reading

  1. snssdekd() & dsdekd() & rsdekd()- Monte-Carlo Simulation and Analysis of Stochastic Differential Equations.
  2. bridgesdekd() & dsdekd() & rsdekd() - Constructs and Analysis of Bridges Stochastic Differential Equations.
  3. fptsdekd() & dfptsdekd() - Monte-Carlo Simulation and Kernel Density Estimation of First passage time.
  4. MCM.sde() & MEM.sde() - Parallel Monte-Carlo and Moment Equations for SDEs.
  5. TEX.sde() - Converting Sim.DiffProc Objects to LaTeX.
  6. fitsde() - Parametric Estimation of 1-D Stochastic Differential Equation.

References

  1. Guidoum AC, Boukhetala K (2020). Performing Parallel Monte Carlo and Moment Equations Methods for Ito and Stratonovich Stochastic Differential Systems: R Package Sim.DiffProc. Accept Submission to Journal of Statistical Software.

  2. Guidoum AC, Boukhetala K (2020). Sim.DiffProc: Simulation of Diffusion Processes. R package version 4.5, URL https://cran.r-project.org/package=Sim.DiffProc.


  1. Department of Probabilities & Statistics, Faculty of Mathematics, University of Science and Technology Houari Boumediene, BP 32 El-Alia, U.S.T.H.B, Algeria, E-mail ()

  2. Faculty of Mathematics, University of Science and Technology Houari Boumediene, BP 32 El-Alia, U.S.T.H.B, Algeria, E-mail ()