InhomogeneousPoissonProcess[λ[t],t]
represents an inhomogeneous Poisson process with intensity λ[t] given as a function of t.
InhomogeneousPoissonProcess
InhomogeneousPoissonProcess[λ[t],t]
represents an inhomogeneous Poisson process with intensity λ[t] given as a function of t.
Details
- InhomogeneousPoissonProcess is a continuous-time and discrete-state process.
- InhomogeneousPoissonProcess at time t is the number of events in the interval 0 to t.
- The number of events in the interval 0 to t follows PoissonDistribution with mean
. - The intensity function λ[t] in the definition of InhomogeneousPoissonProcess is assumed to be valid. In particular, it is assumed that it is a continuous, positive-valued function of t.
- InhomogeneousPoissonProcess can be used with such functions as Mean, PDF, Probability, and RandomFunction.
Examples
open all close allBasic Examples (3)
Simulate an inhomogeneous Poisson process:
data = RandomFunction[InhomogeneousPoissonProcess[2 + 1 / (1 + t ^ 2), t], {0, 20}];ListStepPlot[data, Filling -> Axis]Mean[InhomogeneousPoissonProcess[2 + 1 / (1 + t ^ 2), t][t]]Variance[InhomogeneousPoissonProcess[2 + 1 / (1 + t ^ 2), t][t]]CovarianceFunction[InhomogeneousPoissonProcess[2 + t ^ 2, t], s, w]Plot3D[Evaluate@CovarianceFunction[InhomogeneousPoissonProcess[2 + t ^ 2, t], s, w], {s, 1, 10}, {w, 1, 10}, ColorFunction -> "Rainbow", PlotRange -> All, AxesLabel -> Automatic]Scope (10)
Basic Uses (5)
Simulate an ensemble of paths:
data = RandomFunction[InhomogeneousPoissonProcess[(2 + Sin[t]) / 4, t], {0, 35}, 4]ListStepPlot[data, Filling -> Axis]Simulate with arbitrary precision:
RandomFunction[InhomogeneousPoissonProcess[2 + 1 / (1 + t ^ 2), t], {4}, WorkingPrecision -> 20]["Path"]Compare paths for different intensity functions:
f1[t_] = t;
f2[t_] = 2 + 1 / (1 + t ^ 2);
f3[t_] = (3 + Cos[t]) / 7;sample := (SeedRandom[3];RandomFunction[InhomogeneousPoissonProcess[#[t], t], {10}]&);ListStepPlot[sample[#], Filling -> Axis, PlotLabel -> #]& /@ {f1, f2, f3}CorrelationFunction[InhomogeneousPoissonProcess[2 + t, t], s1, s2]Simplify[%, s1 < s2]Absolute correlation function:
AbsoluteCorrelationFunction[InhomogeneousPoissonProcess[Cos[t] + 2, t], s1, s2]Simplify[%, s1 < s2]Process Slice Properties (5)
Univariate SliceDistribution:
DiscretePlot[Evaluate@Table[PDF[InhomogeneousPoissonProcess[2 + 1 / (1 + τ ^ 2), τ][t], x], {t, times = {1, 4, 8}}], {x, 0, 30}, PlotLegends -> ("t = " ~~ ToString[#]& /@ times)]InhomogeneousPoissonProcess[2 + 1 / (1 + t ^ 2), t][t]Univariate probability density:
PDF[InhomogeneousPoissonProcess[2 + 1 / (1 + t ^ 2), t][t], x]Multi-time slice distribution:
SliceDistribution[InhomogeneousPoissonProcess[2 + 1 / (1 + t ^ 2), t], {1, 3, 7}]//MeanHigher-order PDF:
PDF[InhomogeneousPoissonProcess[2 + 1 / (1 + t ^ 2), t][{1, 3, 7}], {x, y, z}]Compute the expectation of an expression:
Expectation[x + E ^ (-x), xInhomogeneousPoissonProcess[2 + t, t][t]]Calculate the probability of an event:
Probability[x[t] ^ 2 < t - 1, xInhomogeneousPoissonProcess[2 + t, t]]𝒫 = InhomogeneousPoissonProcess[2 + 1 / (1 + t ^ 2), t];Moment[𝒫[t], r]CharacteristicFunction[𝒫[t], w]MomentGeneratingFunction[𝒫[t], w]CentralMoment has no closed form for symbolic order:
CentralMoment[𝒫[t], r]CentralMoment[𝒫[t], 4]CentralMomentGeneratingFunction[𝒫[t], w]FactorialMoment and its generating function:
FactorialMoment[𝒫[t], r]FactorialMomentGeneratingFunction[𝒫[t], w]Cumulant and its generating function:
Cumulant[𝒫[t], r]CumulantGeneratingFunction[𝒫[t], w]Covariance for a multi-time slice distribution:
Covariance[InhomogeneousPoissonProcess[2 + t, t][{1, 2, 3}]]N[%]//MatrixFormCompare with the result from simulation:
Covariance[RandomVariate[InhomogeneousPoissonProcess[2 + t, t][{1, 2, 3}], 10 ^ 4]]//N//MatrixFormApplications (3)
Simulate the arrival process at a small fast-food restaurant if the hourly arrival rates of customers are given by:
arrivalrates = {{0, 8}, {1, 9}, {2, 7}, {4, 6}, {5, 12}, {6, 14}, {7, 11}, {8, 6}, {9, 4}, {10, 3}, {11, 8}, {12, 15}, {13, 12}, {14, 10}, {15, 8}, {16, 6}, {17, 12}, {18, 17}, {19, 15}, {20, 12}, {21, 6}, {22, 5}, {23, 7}};Use linear interpolation to obtain the intensity function for the arrival process:
λ[t_] = Interpolation[arrivalrates, InterpolationOrder -> 1][t];Plot[λ[t], {t, 0, 23}, Exclusions -> None, Filling -> Axis]Define an inhomogeneous Poisson process for the arrivals:
𝒫 = InhomogeneousPoissonProcess[λ[t], t];Probability that more than 200 customers visit the restaurant during the day:
NProbability[x > 200, x𝒫[23]]Simulate the arrival process for a day:
data = RandomFunction[𝒫, {0, 23, 1}, 4];ListStepPlot[data]Use simulation to find the effective hourly mean arrival rate:
sim = RandomFunction[𝒫, {0., 23, 1}, 10 ^ 3];
slopes = Map[# / 23.&, sim["LastValues"]];
Mean[slopes]Define the square of an inhomogeneous Poisson process:
𝒫 = TransformedProcess[p[t] ^ 2, pInhomogeneousPoissonProcess[2 + 1 / (1 + t ^ 2), t], t];data = RandomFunction[𝒫, {0, 30, 1}, 3]ListStepPlot[data]Mean and variance for the process slices:
Mean[𝒫[t]]Variance[𝒫[t]]An inhomogeneous Poisson process with Weibull failure rate intensity is known as Weibull Poisson process:
λ[α_, β_, t_] = Refine[HazardFunction[WeibullDistribution[α, β], t], t > 0]WeibullPoissonProcess = InhomogeneousPoissonProcess[λ[2 / 3, 1 / 2, t], t]paths = RandomFunction[WeibullPoissonProcess, {0, 30}, 6, Method -> "Direct"]ListStepPlot[paths]Use simulation to find the effective mean intensity rate for a day:
sim = RandomFunction[WeibullPoissonProcess, {0, 30}, 10 ^ 3, Method -> "Direct"];
slopes = Map[# / 30.&, sim["LastValues"]];
Mean[slopes]Compare to the mean intensity rate given by the integral of the rate function:
NIntegrate[λ[2 / 3, 1 / 2, t], {t, 0, 30}] / 30Properties & Relations (3)
InhomogeneousPoissonProcess is a jump process:
path = RandomFunction[InhomogeneousPoissonProcess[2 + 1 / (1 + t ^ 2), t], {0, 10}];
f = path["PathFunction"];
jumps = path["Times"];Plot[f[t], {t, 0, 10}, Exclusions -> jumps, ExclusionsStyle -> Red]An inhomogeneous Poisson process is not weakly stationary:
WeakStationarity[InhomogeneousPoissonProcess[2 + 1 / (1 + t ^ 2), t]]The mean function is not constant:
Mean[InhomogeneousPoissonProcess[2 + 1 / (1 + t ^ 2), t][t]]An inhomogeneous Poisson process with constant intensity is a PoissonProcess:
ipp = InhomogeneousPoissonProcess[λ, t];pp = PoissonProcess[λ];Compare univariate slice distributions:
Mean /@ {ipp[t], pp[t]}Variance /@ {ipp[t], pp[t]}PDF[#, x]& /@ {ipp[t], pp[t]}CovarianceFunction[#, s, t]& /@ {ipp, pp}PDF[#, {x, y}]& /@ {ipp[{s, t}], pp[{s, t}]}Possible Issues (1)
Some of the simulation methods require a bounded intensity function:
λ[t_] = Abs[Tan[t]] + 1;
Plot[λ[t], {t, 0, 3}, PlotRange -> All]𝒫 = InhomogeneousPoissonProcess[λ[t], t];The default "Thinning" method fails:
TimeConstrained[RandomFunction[𝒫, {0, 3}], 1]TimeConstrained[RandomFunction[𝒫, {0, 3}, Method -> "Thinning"], 1]The inversion method also fails for this intensity function:
RandomFunction[𝒫, {0, 3}, Method -> "Inversion"]The direct method is suitable for an unbounded intensity function, although it may be slow:
RandomFunction[𝒫, {0, 3}, Method -> "Direct"]ListLinePlot[%, PlotRange -> All]Neat Examples (1)
Simulate paths from an inhomogeneous Poisson process:
SeedRandom[34];𝒫 = InhomogeneousPoissonProcess[1.1 + Sin[t] / (1 + t ^ 2), t];
data = RandomFunction[𝒫, {0, 50}, 300];Take a slice at 50 and visualize its distribution:
sd = data["SliceData", 50];cf = ColorData["Rainbow"];
sliced = BarChart[Last[#], Axes -> False, BarOrigin -> Left, AspectRatio -> 4, ChartStyle -> (cf /@ Rescale[MovingAverage[First[#], 2], {Min[sd], Max[sd]}, {0, 1}]), ImageSize -> 43]&[HistogramList[sd, {Range[Min[sd], Max[sd], (Max[sd] - Min[sd]) / 20]}]];Plot paths and histogram distribution of the slice distribution at 50:
ListLinePlot[data, ImageSize -> 400, PlotRange -> All,
AspectRatio -> 3 / 4, Epilog -> Inset[sliced, {50.5, 57}, {0, 10.5}], PlotStyle -> (cf /@ Rescale[sd]), BaseStyle -> Thin, PlotRangePadding -> {{0, 20}, {.5, 7}}]Related Guides
History
Text
Wolfram Research (2015), InhomogeneousPoissonProcess, Wolfram Language function, https://reference.wolfram.com/language/ref/InhomogeneousPoissonProcess.html.
CMS
Wolfram Language. 2015. "InhomogeneousPoissonProcess." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/InhomogeneousPoissonProcess.html.
APA
Wolfram Language. (2015). InhomogeneousPoissonProcess. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/InhomogeneousPoissonProcess.html
BibTeX
@misc{reference.wolfram_2026_inhomogeneouspoissonprocess, author="Wolfram Research", title="{InhomogeneousPoissonProcess}", year="2015", howpublished="\url{https://reference.wolfram.com/language/ref/InhomogeneousPoissonProcess.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_inhomogeneouspoissonprocess, organization={Wolfram Research}, title={InhomogeneousPoissonProcess}, year={2015}, url={https://reference.wolfram.com/language/ref/InhomogeneousPoissonProcess.html}, note=[Accessed: 12-June-2026]}