Tutorials › Stochastic Differential Equations in Pharmacokinetics › Brownian Increments on a Simulation Grid

Discretization Schemes · Tutorial 53 of 100

Brownian Increments on a Simulation Grid

You will learn to construct Brownian increments with the right variance and dependence structure, then use them correctly in grid-based PK SDE simulations.

Intermediate 12 min read

What You'll Learn

  • Generate Brownian increments with variance equal to each time-step length.
  • Adapt the construction to irregular simulation grids.
  • Derive scalar and compartmental Euler–Maruyama updates from Brownian increments.
  • Check conditional means, variances, and cross-covariances of simulated updates.
  • Preserve a Brownian path when refining a grid with a Brownian bridge.
  • Recognize when a simulation increment has been scaled or coupled incorrectly.

Why Brownian Increments Need the Grid Length

A simulation grid turns a continuous-time SDE into a sequence of updates. The random input to each update is not an arbitrary normal error: it represents the change in a Brownian motion over that particular time interval. Its variance therefore depends on the interval length. Getting this scaling right is essential whether the grid is equally spaced, irregular, or used for several interacting pharmacokinetic compartments.

The construction below uses standard Brownian motion, as introduced in Stochastic Calculus. For an SDE driven by Brownian motion, Euler–Maruyama evaluates the drift and diffusion at the beginning of each grid interval and multiplies the diffusion by the Brownian increment for that interval. The resulting update is a discrete approximation to the SDE, not generally an exact transition.

Definition: Let \(0=t_0<t_1<\cdots<t_N=T\) be a simulation grid and let \(h_n=t_{n+1}-t_n\). For a standard Brownian motion \(W\), its increment on interval \(n\) is \(\Delta W_n=W(t_{n+1})-W(t_n)\). These increments are independent and \(\Delta W_n\sim N(0,h_n)\). Thus one can generate them as \(\Delta W_n=\sqrt{h_n}Z_n\), where the \(Z_n\) are independent \(N(0,1)\) variables.

The grid need not be regular. Each increment has variance equal to its own interval length, not to a single global step size. The square root in the construction is important: multiplying a standard normal by \(h_n\) would give variance \(h_n^2\), whereas multiplying by \(\sqrt{h_n}\) gives variance \(h_n\).

From Brownian Increments to an SDE Update

Consider the scalar SDE \(dX(t)=a(t,X(t))\,dt+b(t,X(t))\,dW(t)\). On an interval \([t_n,t_{n+1}]\), its integral form is \(X(t_{n+1})=X(t_n)+\int_{t_n}^{t_{n+1}}a(s,X(s))\,ds+\int_{t_n}^{t_{n+1}}b(s,X(s))\,dW(s)\). Euler–Maruyama approximates the two integrands by their values at the left endpoint. This gives the grid update below.

$$ X_{n+1}=X_n+a(t_n,X_n)h_n+b(t_n,X_n)\Delta W_n =X_n+a(t_n,X_n)h_n+b(t_n,X_n)\sqrt{h_n}Z_n. $$

Here \(X_n\) is the simulated state at time \(t_n\). The random variable \(Z_n\) is generated afresh for each interval, independently of the previous Brownian increments. In an SDE model, \(X_n\) is determined by the information available by time \(t_n\); consequently, the new Brownian increment is independent of \(X_n\). This gives a useful check on the update’s one-step mean and variance.

Result: Suppose \(X_n\) is measurable with respect to the information available at time \(t_n\), and \(\Delta W_n\) is an independent \(N(0,h_n)\) increment. For the Euler–Maruyama update, conditional on that information, \(E[X_{n+1}-X_n]=a(t_n,X_n)h_n\) and \(\operatorname{Var}(X_{n+1}-X_n)=b(t_n,X_n)^2h_n\).

To verify the result, write \(a_n=a(t_n,X_n)\) and \(b_n=b(t_n,X_n)\). Given the information at time \(t_n\), both are fixed. Since \(E[\Delta W_n]=0\), the conditional mean of \(a_nh_n+b_n\Delta W_n\) is \(a_nh_n\). Its conditional variance is \(b_n^2\operatorname{Var}(\Delta W_n)=b_n^2h_n\). This proves both statements. In particular, a simulation that gives a one-step noise variance proportional to \(h_n^2\) has used the wrong scaling. \(\square\)

Worked Example: A Scalar Concentration SDE

Consider \(dC(t)=-0.2C(t)\,dt+0.3C(t)\,dW(t)\), with \(C_0=10\), on a step of length \(h=0.25\). Suppose the sampled standard normal value for this step is \(Z_0=0.2\).

First construct the Brownian increment: \(\Delta W_0=\sqrt{0.25}(0.2)=0.5(0.2)=0.1\). Its distribution before observing the draw is \(N(0,0.25)\).

The drift contribution is \((-0.2)(10)(0.25)=-0.5\). The diffusion coefficient at the start of the step is \(0.3(10)=3\), so the stochastic contribution is \(3(0.1)=0.3\). Therefore \(C_1=10-0.5+0.3=9.8\).

Conditional on \(C_0=10\), the update has mean change \(-0.2(10)(0.25)=-0.5\) and variance \((0.3(10))^2(0.25)=2.25\). The particular draw gives a stochastic contribution of \(0.3\); it does not change the variance prescribed by the model.

Several Brownian Drivers and Compartment Systems

For a system with \(q\) independent Brownian drivers, generate \(q\) independent standard normal values on each interval and scale each by \(\sqrt{h_n}\). If \(X(t)\) is a \(d\)-component state, write its SDE as \(dX(t)=a(t,X(t))\,dt+B(t,X(t))\,dW(t)\), where \(W\) has \(q\) independent standard Brownian components and \(B\) is a \(d\)-by-\(q\) matrix. Its grid update is \(X_{n+1}=X_n+a(t_n,X_n)h_n+B(t_n,X_n)\Delta W_n\).

The conditional mean change is \(a(t_n,X_n)h_n\), and the conditional covariance matrix of the change is \(B(t_n,X_n)B(t_n,X_n)^\mathsf{T}h_n\). For correlated Brownian drivers with covariance matrix \(Q\) per unit time, use an increment with covariance \(h_nQ\); for example, if \(Q=LL^\mathsf{T}\), generate \(\Delta W_n=\sqrt{h_n}LZ_n\), where \(Z_n\) has independent standard normal components. The same correlation structure must be used at every step unless the model specifies otherwise.

Worked Example: A Two-Compartment PK Update

Let \(A_c\) and \(A_p\) denote central and peripheral amounts, with \(dA_c=(-0.1A_c-0.2A_c+0.1A_p)\,dt+0.05A_c\,dW_1\) and \(dA_p=(0.2A_c-0.1A_p)\,dt+0.1A_p\,dW_2\). Assume the two Brownian drivers are independent. At the start of a step, let \(A_c=100\), \(A_p=20\), and \(h=0.1\). Suppose \(Z_1=0.5\) and \(Z_2=-1\).

The two increments are \(\Delta W_1=\sqrt{0.1}(0.5)\approx0.158114\) and \(\Delta W_2=\sqrt{0.1}(-1)\approx-0.316228\). They are independent, each with variance \(0.1\).

The central drift rate is \(-0.1(100)-0.2(100)+0.1(20)=-28\), so its drift contribution is \(-28(0.1)=-2.8\). The central diffusion coefficient is \(0.05(100)=5\), giving stochastic contribution \(5(0.158114)\approx0.790570\). Thus \(A_{c,1}\approx100-2.8+0.790570=97.990570\).

The peripheral drift rate is \(0.2(100)-0.1(20)=18\), and its drift contribution is \(18(0.1)=1.8\). Its diffusion coefficient is \(0.1(20)=2\), giving stochastic contribution \(2(-0.316228)\approx-0.632456\). Thus \(A_{p,1}\approx20+1.8-0.632456=21.167544\).

Conditional on the starting state, the covariance matrix of the stochastic change is diagonal here, with entries \((5^2)(0.1)=2.5\) and \((2^2)(0.1)=0.4\). The off-diagonal entries are zero because the drivers are independent. Correlated drivers would generally produce nonzero off-diagonal entries.

Refining a Grid Without Changing Its Brownian Path

Independent increments are appropriate when simulating a new Brownian path on a chosen grid. But if a coarse interval is subdivided and the already simulated endpoint is to remain fixed, drawing two entirely new increments would generally change that endpoint. A Brownian bridge gives the conditional distribution of the finer increments given their sum.

Result: Let \(h=h_1+h_2\), with \(h_1,h_2>0\). If \(D=\Delta W_1+\Delta W_2\) is the increment over the whole interval, then, conditional on \(D\), \(\Delta W_1\sim N\!\left(\frac{h_1}{h}D,\frac{h_1h_2}{h}\right)\), and \(\Delta W_2=D-\Delta W_1\).

For the derivation, before conditioning, \(\Delta W_1\) and \(\Delta W_2\) are independent normals with variances \(h_1\) and \(h_2\). Therefore \(D\) has variance \(h\), and \(\operatorname{Cov}(\Delta W_1,D)=h_1\). The conditional distribution formula for jointly normal variables gives conditional mean \(h_1D/h\) and conditional variance \(h_1-h_1^2/h=h_1h_2/h\). Defining the second increment as the difference makes the sum exactly \(D\), as required. \(\square\)

To simulate the split, draw an independent \(Z\sim N(0,1)\) and set \(\Delta W_1=(h_1/h)D+\sqrt{h_1h_2/h}\,Z\), then set \(\Delta W_2=D-\Delta W_1\). This construction is useful for grid refinement and for comparing calculations on nested grids: the fine increments agree with the previously generated coarse increment.

Worked Example: Splitting a Simulated Increment

Suppose the increment over a length-one interval is already fixed at \(D=0.2\), and the interval is split into lengths \(h_1=0.4\) and \(h_2=0.6\). The conditional mean and variance of the first increment are \((0.4)(0.2)/1=0.08\) and \((0.4)(0.6)/1=0.24\), respectively.

If the bridge draw is \(Z=0.5\), then \(\Delta W_1=0.08+\sqrt{0.24}(0.5)\approx0.08+0.244949=0.324949\). The second increment is \(\Delta W_2=0.2-0.324949=-0.124949\). Their sum is \(0.324949-0.124949=0.2\), exactly the original coarse increment. The individual fine increments are not independent conditional on their fixed sum.

Practical Checks, Alternatives, and Limitations

A simple implementation check is to generate many increments for each grid interval and examine their empirical means, variances, and pairwise correlations. Means should be near zero, variances near the corresponding \(h_n\), and increments on disjoint intervals should have near-zero empirical correlations. For multiple independent drivers, check cross-driver correlations as well. These are diagnostics for code, not proofs from a finite simulation; discrepancies can arise by chance, especially with few replicates.

The most common scaling mistake is to use \(\Delta W_n=h_nZ_n\). Its variance is \(h_n^2\), not \(h_n\), so the simulated stochastic variation is too small when \(h_n<1\) and too large when \(h_n>1\). Another mistake is reusing the same \(Z_n\) at every step. That creates dependent increments rather than the independent increments of Brownian motion. On an irregular grid, using one step length for all increments likewise gives the wrong interval-specific variances.

Euler–Maruyama is a convenient general-purpose grid update, but it is not the only approach. If a model has a tractable exact transition, sampling from that transition can avoid the left-endpoint approximation. More elaborate numerical schemes can improve accuracy under suitable conditions, but may require additional stochastic quantities beyond the Brownian increments used here. The appropriate choice depends on the model, the time scale, and the purpose of the simulation. In every case, correct increments are necessary, but they do not by themselves guarantee an accurate or biologically adequate simulation.

1
Set the grid.
Compute each interval length \(h_n=t_{n+1}-t_n\), retaining the separate lengths if the grid is irregular.
2
Generate independent normals.
For each interval and each independent Brownian driver, draw a fresh standard normal value.
3
Scale and update.
Multiply each normal by \(\sqrt{h_n}\), then apply the appropriate scalar or vector SDE update.
4
Check the construction.
Verify interval-specific variances, independence across intervals, and the intended cross-driver covariance.
Key takeaway: On an interval of length \(h_n\), a Brownian increment is generated as \(\sqrt{h_n}Z_n\), not \(h_nZ_n\). Independent increments feed standard grid updates; when refining an existing path, use a bridge so the refined increments still sum to the original one.

Check Your Understanding

Work through each question, then compare your reasoning with the solutions.

  1. For an interval of length \(0.09\), what is the distribution of the Brownian increment? If \(Z=1.5\), what increment is generated?
  2. A scalar Euler–Maruyama step has \(h=0.2\) and diffusion coefficient \(b=4\) at the current state. What is the conditional variance of its stochastic change?
  3. For two independent Brownian drivers and \(h=0.25\), describe how to generate the two increments. What is their covariance?
  4. A length-one increment is \(D=0.3\) and the interval is split equally. State the conditional mean and variance of the first subincrement.

Solutions. (1) The increment has distribution \(N(0,0.09)\). Since \(\sqrt{0.09}=0.3\), the draw is \(0.3(1.5)=0.45\). (2) The conditional variance is \(b^2h=4^2(0.2)=3.2\). (3) Draw independent \(Z_1,Z_2\sim N(0,1)\) and set \(\Delta W_1=0.5Z_1\), \(\Delta W_2=0.5Z_2\). Each has variance \(0.25\), and their covariance is zero. (4) Here \(h_1=h_2=0.5\), \(h=1\). The conditional mean is \((0.5/1)(0.3)=0.15\), and the conditional variance is \((0.5)(0.5)/1=0.25\).

Clinical Biostats