FindProcessParameters[data,proc]
finds the parameter estimates for the process proc from data.
FindProcessParameters[data,proc,{{p,p0},{q,q0},…}]
finds the parameters p, q, … with starting values p0, q0, … .
FindProcessParameters
FindProcessParameters[data,proc]
finds the parameter estimates for the process proc from data.
FindProcessParameters[data,proc,{{p,p0},{q,q0},…}]
finds the parameters p, q, … with starting values p0, q0, … .
Details and Options
- FindProcessParameters returns a list of replacement rules for the parameters in proc.
- The data can be given in the following forms:
-
{s0,…} a path with state si at time i {{t0,s0},…} a path with state si at time ti TemporalData[…] one or several paths - The times ti and states si must belong to the time and state domain of the process proc.
- The process proc can be any parametric scalar- or vector-valued process.
- The following options can be given:
-
AccuracyGoal Automatic the accuracy sought ProcessEstimator Automatic what process parameter estimator to use PrecisionGoal Automatic the precision sought WorkingPrecision Automatic the precision used in internal computations - The following basic settings can be used for ProcessEstimator:
-
Automatic automatically choose the parameter estimator "MaximumLikelihood" maximize the log likelihood directly "MethodOfMoments" match covariance - Special settings for ProcessEstimator are documented under the individual random process reference pages.
- Additional settings for time series processes include "MaximumConditionalLikelihood" and "SpectralEstimator".
- Additional settings for HiddenMarkovProcess include "BaumWelch" and "ViterbiTraining".
Examples
open all close allBasic Examples (2)
Estimate the parameter of a PoissonProcess:
data = RandomFunction[PoissonProcess[.4], {0, 10 ^ 2}];procparam = FindProcessParameters[data, PoissonProcess[λ]]eproc = PoissonProcess[λ] /. procparamCompare simulations of the estimated process to the original data:
sims = RandomFunction[eproc, {0, 10 ^ 2}, 3];ListLinePlot[Join[data["Paths"], sims["Paths"]], PlotStyle -> {Thick, Dashed, Dashed, Dashed}, PlotLegends -> {"data", "simulations"}]Find the parameters for an ARProcess:
data = RandomFunction[ARProcess[{.2, .1, -.3}, .1], {1, 100}];procparams = FindProcessParameters[data, ARProcess[{a, b, c}, v]]eproc = ARProcess[{a, b, c}, v] /. procparamsCompare correlation functions for data and the estimated process:
ρdata = CorrelationFunction[data, {25}];ρproc = CorrelationFunction[eproc, {25}];ListLinePlot[{ρdata, ρproc}, DataRange -> {0, 25}, PlotLegends -> {"data", "process"}]Scope (9)
Parametric Processes (3)
Estimate the parameter for a RandomWalkProcess:
SeedRandom[1234];data = RandomFunction[RandomWalkProcess[0.3], {0, 400}];ListLinePlot[data]FindProcessParameters[data, RandomWalkProcess[p]]Use starting value for the parameter:
FindProcessParameters[data, RandomWalkProcess[p], {{p, .5}}]Estimate the parameters for a RenewalProcess:
data = RandomFunction[RenewalProcess[GammaDistribution[2, 1]], {0, 10 ^ 3}];ListLinePlot[data]FindProcessParameters[data, RenewalProcess[GammaDistribution[a, b]]]Estimate the parameters for a Wiener process:
data = RandomFunction[WienerProcess[.4, .7], {0, 100, 0.01}];FindProcessParameters[data, WienerProcess[μ, σ]]Time Series Processes (3)
Estimate the parameters for an ARProcess:
proc = ARProcess[{-.2, .3, -.3}, .1];data = RandomFunction[proc, {0, 10 ^ 3}];params = FindProcessParameters[data, ARProcess[{a, b, c}, v]]eproc = ARProcess[{a, b, c}, v] /. paramsDiscretePlot[Evaluate@(CovarianceFunction[#, h]& /@ {proc, eproc}), {h, 0, 10}, ExtentSize -> 1 / 2]Estimate an ARMAProcess:
proc = ARMAProcess[{.2, .3}, {0.26}, .1];data = RandomFunction[proc, {0, 1000}];params = FindProcessParameters[data, ARMAProcess[{a, b}, {c}, v]]eproc = ARMAProcess[{a, b}, {c}, v] /. paramsDiscretePlot[Evaluate@(CorrelationFunction[#, h]& /@ {proc, eproc}), {h, 0, 4}, ExtentSize -> 1 / 2]Provide initial values for the estimation of an ARProcess:
data = RandomFunction[ARProcess[{-.2, .3, -.3}, .1], {0, 10 ^ 3}];FindProcessParameters[data, ARProcess[{a, b, c}, v], {{a, .1}, {b, .15}, {c, -.2}, {v, .2}}]Solve for repeated parameters:
data = RandomFunction[ARProcess[{-.2, .3, -.3}, .1], {0, 10 ^ 3}];FindProcessParameters[data, ARProcess[{a, b, a}, v]]Queueing Processes (2)
Estimate the arrival and service rates for an M/M/1 queue:
data = RandomFunction[QueueingProcess[4, 7], {0, 100}];ListLinePlot[data]FindProcessParameters[data, QueueingProcess[λ, μ]]Use the corresponding random path for the data:
FindProcessParameters[data["Path"], QueueingProcess[λ, μ]]Estimate the arrival rate for an M/M/1 queue:
data = RandomFunction[QueueingProcess[6, 13], {0, 500}];FindProcessParameters[data, QueueingProcess[λ, 13]]data = RandomFunction[QueueingProcess[12, 15], {0, 500}];FindProcessParameters[data, QueueingProcess[12, μ]]Finite Markov Processes (1)
Estimate the parameters for a discrete Markov process:
𝒫 = DiscreteMarkovProcess[3, {{1 / 2, 1 / 2, 0, 0}, {1 / 2, 1 / 2, 0, 0}, {1 / 4, 1 / 4, 1 / 4, 1 / 4}, {0, 0, 0, 1}}];data = RandomFunction[𝒫, {0, 10 ^ 4}, 3];FindProcessParameters[data, DiscreteMarkovProcess[s, Array[p, {4, 4}]], WorkingPrecision -> MachinePrecision]Options (5)
WorkingPrecision (1)
Estimate process parameters using default machine precision:
data = RandomFunction[QueueingProcess[5, 11], {0, 150}];FindProcessParameters[data, QueueingProcess[λ, μ]]data = RandomFunction[QueueingProcess[5, 11], {0, 150}, WorkingPrecision -> 20];FindProcessParameters[data, QueueingProcess[λ, μ], WorkingPrecision -> 20]ProcessEstimator (4)
Maximum likelihood for a parametric process:
data = RandomFunction[WienerProcess[0, 1], {0, 100, .1}];FindProcessParameters[data, WienerProcess[a, b], ProcessEstimator -> "MaximumLikelihood"]data = RandomFunction[ARProcess[{.3, .2}, 1], {10 ^ 3}];FindProcessParameters[data, ARProcess[{a, b}, v], ProcessEstimator -> "MaximumLikelihood"]Method of moments for a parametric process:
data = RandomFunction[PoissonProcess[3], {0, 10 ^ 4}];FindProcessParameters[data, PoissonProcess[m], ProcessEstimator -> "MethodOfMoments"]data = RandomFunction[ARMAProcess[{.3, .2}, {.5}, 1], {10 ^ 4}];FindProcessParameters[data, ARMAProcess[c, {a1, a2}, {b1}, v], ProcessEstimator -> "MethodOfMoments"]Maximize conditional likelihood for a time series process:
data = RandomFunction[ARMAProcess[{.3, .2}, {.5}, 1], {10 ^ 4}];FindProcessParameters[data, ARMAProcess[c, {a1, a2}, {b1}, v], ProcessEstimator -> "MaximumConditionalLikelihood"]Spectral estimator for a time series process:
data = RandomFunction[ARProcess[{.3, .2, 0, 0, 0, .4}, 1], {10 ^ 3}];FindProcessParameters[data, ARProcess[c, Array[a, 6], v], ProcessEstimator -> "SpectralEstimator"]Applications (2)
Model the mean daily temperature for Champaign in August 2012:
temp = TemporalData[TimeSeries, {{{20.5, 20.89, 22.5, 27.44, 26.5, 20.33, 18.83, 23.06, 20.83, 19.72,
14.89, 15.28, 18.11, 18.72, 17.5, 20.83, 17.94, 13.56, 16.44, 14.33, 14.72, 15.83, 17.28,
19.89, 20.44, 21.39, 24.89, 22.78, 22.83, 20.22, 24.4 ... te", 1}, 1,
{ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1}, ValueDimensions -> 1,
MetaInformation -> {"Source" -> HoldForm[WeatherData["Champaign", "MeanTemperature",
{{2012, 8}, {2012, 8}, "Day"}]]}}}, True, 10.1];temp["Source"]DateListPlot[temp, Joined -> True, Filling -> Axis]params = FindProcessParameters[temp, ARProcess[c, Array[a, 20], v]]eproc = ARProcess[c, Array[a, 20], v] /. paramsCompare CorrelationFunction of the model and the data:
ListPlot[TemporalData[CorrelationFunction[#, {30}]& /@ {eproc, temp}], Filling -> {1 -> {2}}, PlotStyle -> PointSize[Medium], PlotLegends -> {"Model", "Data"}]The daily exchange rates of the euro to the dollar from May 2012 through September 2012:
data = TemporalData[TimeSeries, {{{1.31, 1.31, 1.31, 1.3, 1.3, 1.3, 1.29, 1.29, 1.29, 1.27, 1.28, 1.28,
1.27, 1.26, 1.26, 1.26, 1.25, 1.24, 1.24, 1.23, 1.24, 1.24, 1.25, 1.26, 1.25, 1.26, 1.25, 1.25,
1.26, 1.26, 1.26, 1.26, 1.27, 1.27, 1.25, 1.2 ... yRange"]}, 1,
{"Discrete", 1}, {"Discrete", 1}, 1,
{ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1},
MetaInformation -> {"Source" -> HoldForm[FinancialData]["EUR/USD",
{{2012, 5, 1}, {2012, 9, 30}}]}}}, True, 10.1];data["Source"]DateListPlot[data, Joined -> True, Filling -> Bottom]Fit an AR process to the exchange rates:
params = FindProcessParameters[data, ARProcess[c, {a1, a2, a3}, v]]eproc = ARProcess[c, {a1, a2, a3}, v] /. paramsForecast for 20 business days ahead:
forecast = TimeSeriesForecast[eproc, data, {20}]Plot the forecast with original data:
DateListPlot[{data, forecast}, Joined -> True, Filling -> Bottom]Properties & Relations (2)
FindProcessParameters returns a list of parameter estimates for a process:
data = RandomFunction[PoissonProcess[3], {0, 10 ^ 4}];FindProcessParameters[data, PoissonProcess[m]]EstimatedProcess estimates the parametric process:
EstimatedProcess[data, PoissonProcess[m]]FindProcessParameters returns a list of parameter estimates for a process:
data = RandomFunction[BernoulliProcess[0.4], {0, 10 ^ 5}];FindProcessParameters[data, BernoulliProcess[p]]FindDistributionParameters returns a list of parameter estimates for a distribution:
data = RandomVariate[BernoulliDistribution[0.4], 10 ^ 5];FindDistributionParameters[data, BernoulliDistribution[p]]Related Guides
History
Text
Wolfram Research (2012), FindProcessParameters, Wolfram Language function, https://reference.wolfram.com/language/ref/FindProcessParameters.html.
CMS
Wolfram Language. 2012. "FindProcessParameters." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/FindProcessParameters.html.
APA
Wolfram Language. (2012). FindProcessParameters. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FindProcessParameters.html
BibTeX
@misc{reference.wolfram_2026_findprocessparameters, author="Wolfram Research", title="{FindProcessParameters}", year="2012", howpublished="\url{https://reference.wolfram.com/language/ref/FindProcessParameters.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_findprocessparameters, organization={Wolfram Research}, title={FindProcessParameters}, year={2012}, url={https://reference.wolfram.com/language/ref/FindProcessParameters.html}, note=[Accessed: 13-June-2026]}