TransformedProcess[expr,xproc,t]
represents the transformed process of expr where the variable x follows the random process proc and t denotes the time.
TransformedProcess[expr,{x1proc1,x2proc2,…},t]
represents a transformed process where x1, x2, … are independent and follow the processes proc1, proc2, ….
TransformedProcess
TransformedProcess[expr,xproc,t]
represents the transformed process of expr where the variable x follows the random process proc and t denotes the time.
TransformedProcess[expr,{x1proc1,x2proc2,…},t]
represents a transformed process where x1, x2, … are independent and follow the processes proc1, proc2, ….
Details and Options
- TransformedProcess is typically used to represent functional transformations of one or a finite number of time slices.
- xproc can be entered as x
dist
proc or x \[Distributed]proc. - The processes proci must all be discrete-time or continuous-time processes.
- The expression expr must be a function of xi[fij[t]] for a finite number of different fij.
- Assumptions on parameters can be specified using the option Assumptions->assum.
- TransformedProcess can be used with such functions as Mean, PDF, Probability, and RandomFunction.
Examples
open all close allBasic Examples (1)
Define a transformed Wiener process:
𝒫 = TransformedProcess[t b[2t + 1], bWienerProcess[], t];data = RandomFunction[𝒫, {0, 10, 0.1}, 3];ListLinePlot[data]{Mean[𝒫[t]], Variance[𝒫[t]]}CovarianceFunction[𝒫, t, s]Scope (8)
Single Process Single Time (4)
𝒫 = TransformedProcess[p[t] ^ 2, pPoissonProcess[1], t];data = RandomFunction[𝒫, {0, 30, 0.1}, 3];ListLinePlot[data]Covariance and correlation functions for the process:
CovarianceFunction[𝒫, s, t]CorrelationFunction[𝒫, s, t]𝒫 = TransformedProcess[a[t] ^ 3, aARProcess[{1 / 5}, 1], t];data = RandomFunction[𝒫, {0, 30}, 3];ListLinePlot[data, PlotRange -> All]{Mean[𝒫[t]], Variance[𝒫[t]]}Monomial transformation of a Wiener process:
𝒫 = TransformedProcess[b[t] ^ k, bWienerProcess[], t];Mean[𝒫[t]]Evaluate the mean function for specific values of k:
{% /. {k -> 4}, % /. {k -> 6}}Quadratic transformation of an Ornstein–Uhlenbeck process:
𝒫 = TransformedProcess[p[2t + 1] ^ 2 + 3, pOrnsteinUhlenbeckProcess[0, 1, 0.2], t];Simulate the transformed process:
data = RandomFunction[𝒫, {0, 30, 0.1}, 3];ListLinePlot[data, PlotRange -> All]Mean and variance functions are constant:
{Mean[𝒫[t]], Variance[𝒫[t]]}Verify the results by simulating a slice of the process:
data1 = RandomVariate[𝒫[1.9], 12000];{Mean[data1], Variance[data1]}Multiple Process Single Time (2)
Sum of a Wiener process and a geometric Brownian motion process:
𝒫 = TransformedProcess[w[t] + g[t], {wWienerProcess[], gGeometricBrownianMotionProcess[0, 1, 2]}, t];data = RandomFunction[𝒫, {0, 10, 0.1}, 3];ListLinePlot[data, PlotRange -> All]Skewness and kurtosis functions:
{Skewness[𝒫[t]], Kurtosis[𝒫[t]]}Create a jump-diffusion process as the sum of a Poisson process and a Wiener process:
Jump𝒫 = PoissonProcess[3];Diffusion𝒫 = WienerProcess[];𝒫 = TransformedProcess[w[t] + p[t], {wDiffusion𝒫, pJump𝒫}, t];tspec = {0, 3, .05};
jump = RandomFunction[Jump𝒫, tspec];
diff = RandomFunction[Diffusion𝒫, tspec];
jumpdiff = RandomFunction[𝒫, tspec];{ListPlot[{jump, diff}, PlotLegends -> Placed[{"jump", "diffusion"}, Below]], ListPlot[jumpdiff, PlotStyle -> RGBColor[0.560181, 0.691569, 0.194885], PlotLegends -> Placed[{"jump-diffusion"}, Below]]}Compute slice properties for the process:
{Mean[𝒫[t]], Variance[𝒫[t]]}{Skewness[𝒫[t]], Kurtosis[𝒫[t]]}CharacteristicFunction[𝒫[t], x]Single Process Multiple Times (1)
Multiple Processes Multiple Times (1)
Sum of two different time slices of a Wiener process and an Ornstein–Uhlenbeck process:
𝒫 = TransformedProcess[x[5t + 1] - y[7t + 3], {xWienerProcess[], yOrnsteinUhlenbeckProcess[0, 1, 1 / 5]}, t];data = RandomFunction[𝒫, {0, 10, 0.1}, 3];ListLinePlot[data]Compute probabilities and expectations:
Assuming[{t > 3 / 7}, Probability[z[t] ^ 2 < 5z[t], z𝒫]]NExpectation[z[3.5] ^ 4 + 11z[3.5] + 7, z𝒫]Options (1)
Assumptions (1)
Specify assumptions for a transformation parameter:
𝒫 = TransformedProcess[b[t] ^ k, bWienerProcess[], t, Assumptions -> Mod[k, 2] == 0];Mean for the slice distribution:
Mean[𝒫[t]]Compare with the mean for general values of the parameter:
𝒫1 = TransformedProcess[b[t] ^ k, bWienerProcess[], t];Mean[𝒫1[t]]Applications (14)
Periodic Signal Corrupted with Noise (1)
Stochastic Exponential Function (1)
Define the stochastic exponential function:
𝒫 = TransformedProcess[E^b[t] - (t/2), bWienerProcess[], t];data = RandomFunction[𝒫, {0, 10, 0.01}, 2];ListLinePlot[data, PlotRange -> All]{Mean[𝒫[t]], Variance[𝒫[t]]}The corresponding differential equation is u[t]u[t]b[t]:
𝒫2 = ItoProcess[ⅆu[t] == u[t]ⅆb[t], u[t], {u, 1}, t, bWienerProcess[]];data = RandomFunction[𝒫2, {0, 10, 0.01}, 2];ListLinePlot[data, PlotRange -> All]{Mean[𝒫2[t]], Variance[𝒫2[t]]}Bessel Process (3)
Define a one-dimensional Bessel process:
Bessel1 = TransformedProcess[Abs[x[t]], xWienerProcess[], t];data = RandomFunction[Bessel1, {0, 10, 0.01}, 3];ListLinePlot[data, PlotRange -> All]The mean and variance functions:
{Mean[Bessel1[t]], Variance[Bessel1[t]]}CorrelationFunction[Bessel1, 1, 2]CDF[Bessel1[t], x]Compute the probability of an event:
Probability[x[t] > 3, xBessel1]Define a two-dimensional Bessel process:
Bessel2 = TransformedProcess[Sqrt[x[t]^2 + y[t]^2], {xWienerProcess[], yWienerProcess[]}, t];data = RandomFunction[Bessel2, {0, 10, 0.01}, 3];ListLinePlot[data, PlotRange -> All]{Mean[Bessel2[t]], Variance[Bessel2[t]]}Define a squared Bessel process in 2D:
𝒫 = TransformedProcess[x[t] ^ 2 + y[t] ^ 2, {xWienerProcess[], yWienerProcess[]}, t];data = RandomFunction[𝒫, {0, 10, 0.01}, 3];ListLinePlot[data, PlotRange -> All]{Mean[𝒫[t]], Variance[𝒫[t]]}Brownian Bridge (1)
Define a Brownian bridge process:
𝒫 = TransformedProcess[b[t] - t b[1], bWienerProcess[], t];data = RandomFunction[𝒫, {0, 1, 0.05}, 3];ListLinePlot[data]Mean[𝒫[t]]Compare the variance with that of BrownianBridgeProcess:
Variance[𝒫[t]]Refine[% == Variance[BrownianBridgeProcess[][t]], 0 < t < 1]Moving Average Process (1)
Define a moving average process:
𝒫 = TransformedProcess[x[t] + 3 x[t - 1] + 5x[t - 2], xWhiteNoiseProcess[], t];data = RandomFunction[𝒫, {3, 100}, 3];ListLinePlot[data, PlotRange -> All]Mean, variance, and kurtosis for the process:
{Mean[𝒫[t]], Variance[𝒫[t]], Kurtosis[𝒫[t]]}Compare with the property values for the corresponding MAProcess:
𝒫1 = MAProcess[{3, 5}, 1];{Mean[𝒫1[t]], Variance[𝒫1[t]], Kurtosis[𝒫1[t]]}Telegraph Process (1)
Define the telegraph process in terms of PoissonProcess:
𝒯 = TransformedProcess[(-1)^n[t], nPoissonProcess[1.2], t];data = RandomFunction[𝒯, {0, 20, 0.1}];ListLinePlot[data]Probability density function for a time slice of the process:
PDF[𝒯[t], x]Compare with the PDF for TelegraphProcess:
PDF[TelegraphProcess[1.2][t], x]Gaussian Processes (1)
Linear transformations of Gaussian processes are Gaussian:
𝒫1 = WienerProcess[μ, σ];
𝒫2 = TransformedProcess[a x[t] + b, x𝒫1, t, Assumptions -> a∈Reals];Verify that single slices of both processes are Gaussian:
𝒩 = NormalDistribution[t μ, Sqrt[t]σ];PDF[𝒫1[t], x] == PDF[𝒩, x]PDF[𝒫2[t], x] == PDF[TransformedDistribution[a y + b, y𝒩], x]//Simplify[#, a > 0 && b∈Reals && σ > 0]&TemporalData (1)
Square of a TemporalData object:
td = RandomFunction[ARProcess[2, {.3, -.5}, .1], {1, 100}, 1000]𝒫 = TransformedProcess[x[t] ^ 2, xtd, t];data = RandomFunction[𝒫, {1, 100}];ListStepPlot[data]Mean and variance for a time slice of the process:
{Mean[𝒫[80]], Variance[𝒫[80]]}Compare with the values obtained from simulation:
data = RandomFunction[𝒫, {1, 100}, 100];{Mean[data[80]], Variance[data[80]]}Insurance Process (1)
Simulate the surplus process for insurance, given that the insurer's initial surplus is 70 and the total annual premium is 61.2, if the number of claims follows a Poisson process with mean 60 and the losses are distributed exponentially with mean 1:
u = 70;c = 61.2;λ = 60;m = 1;InsuranceProcess = TransformedProcess[u + c t - S[t], SCompoundPoissonProcess[λ, ExponentialDistribution[1 / m]], t];ListLinePlot[RandomFunction[InsuranceProcess, {0, 100, 0.3}, 15]]Delayed Process (1)
delay = 1;
proc = WienerProcess[];
tp = TransformedProcess[x[t - delay], xproc, t];Simulate the original and delayed processes:
{min, max, step} = {0, 3, .1};
SeedRandom[3];original = RandomFunction[proc, {min, max, step}];
SeedRandom[3];delayed = RandomFunction[tp, {delay + min, delay + max, step}];ListLinePlot[{original, delayed}, PlotLegends -> {"original", "delayed"}]Standardized Process (1)
Merton's Jump-Diffusion Model (1)
Define Merton's jump-diffusion model for option pricing:
Merton𝒫 = TransformedProcess[(v - (σ^2/2)) t + σ w[t] + j[t], {wWienerProcess[r, σ], jCompoundPoissonProcess[λ, NormalDistribution[μ, δ]]}, t];data = RandomFunction[Merton𝒫 /. {v -> 1.2, σ -> 0.7, λ -> 1.3, μ -> 0.92, δ -> 0.425, r -> 1}, {0, 3, 0.02}];ListPlot[data]Slice properties for the process:
{Mean[Merton𝒫[t]], Variance[Merton𝒫[t]]}Properties & Relations (2)
SliceDistribution relates TransformedProcess to TransformedDistribution:
𝒟1 = TransformedProcess[3b[t] + 5, bPoissonProcess[2], t][s];
𝒟2 = TransformedDistribution[3b + 5, bPoissonProcess[2][s]];The resulting distributions are equal:
CDF[𝒟1, x] == CDF[𝒟2, x]//FullSimplifyTransformed Wiener processes are related to ItoProcess:
𝒫1 = TransformedProcess[b[t] ^ 2, bWienerProcess[], t];
𝒫2 = ItoProcess[{0, 1, b[t] ^ 2}, b, t];Mean, variance, etc. functions agree:
{Mean[𝒫1[t]] == Mean[𝒫2[t]], Variance[𝒫1[t]] == Variance[𝒫2[t]]}Refine[CovarianceFunction[𝒫1, t, s] == CovarianceFunction[𝒫2, t, s], t < s]Neat Examples (2)
Generate Brownian motion on the unit circle:
𝒫 = TransformedProcess[E ^ (I b[t]), bWienerProcess[], t];data = First@RandomFunction[𝒫, {0, 8Pi, 0.1}]["ValueList"];ListPlot[{Re[data], Im[data]}, AspectRatio -> Automatic]A family of transformed Wiener processes:
ℬ = WienerProcess[];
𝒫1 = TransformedProcess[0.1 x[t] + t, xℬ, t];
𝒫2 = TransformedProcess[x[t] + 0.1t, xℬ, t];
𝒫3 = TransformedProcess[x[t] ^ 2 - t, xℬ, t];
𝒫4 = TransformedProcess[E ^ (x[t] - t / 2), xℬ, t];
𝒫5 = TransformedProcess[x[t] - t x[1], xℬ, t];data = RandomFunction[#, {0, 1, 0.01}]& /@ {ℬ, 𝒫1, 𝒫2, 𝒫3, 𝒫4, 𝒫5};Table[ListLinePlot[data[[i]], PlotLabel -> StringJoin["𝒫", ToString[i]]], {i, 6}]Related Guides
History
Text
Wolfram Research (2014), TransformedProcess, Wolfram Language function, https://reference.wolfram.com/language/ref/TransformedProcess.html.
CMS
Wolfram Language. 2014. "TransformedProcess." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/TransformedProcess.html.
APA
Wolfram Language. (2014). TransformedProcess. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/TransformedProcess.html
BibTeX
@misc{reference.wolfram_2026_transformedprocess, author="Wolfram Research", title="{TransformedProcess}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/TransformedProcess.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_transformedprocess, organization={Wolfram Research}, title={TransformedProcess}, year={2014}, url={https://reference.wolfram.com/language/ref/TransformedProcess.html}, note=[Accessed: 12-June-2026]}