({{, (RefLink[NonlinearModelFit, paclet:ref/NonlinearModelFit])[{(Subscript[y, 1]),(Subscript[y, 2]),…},form,{(Subscript[β, 1]),…},x] 
constructs a nonlinear model with structure form that fits the (Subscript[y, i]) for successive x values 1, 2, … using the parameters (Subscript[β, 1]), ….}, {, (RefLink[NonlinearModelFit, paclet:ref/NonlinearModelFit])[{{(Subscript[x, 11]),(Subscript[x, 12]),…,(Subscript[y, 1])},{(Subscript[x, 21]),(Subscript[x, 22]),…,(Subscript[y, 2])},…},form,{(Subscript[β, 1]),…},{(Subscript[x, 1]),…}]
constructs a nonlinear model where form depends on the variables (Subscript[x, k]). }, {, (RefLink[NonlinearModelFit, paclet:ref/NonlinearModelFit])[data,{form,cons},{(Subscript[β, 1]),…},{(Subscript[x, 1]),…}]
constructs a nonlinear model subject to the parameter constraints cons.}})

OpenersNotesSection(Spacer1)Details and Options

(RefLink[NonlinearModelFit, paclet:ref/NonlinearModelFit]) returns a symbolic (RefLink[FittedModel, paclet:ref/FittedModel]) object to represent the nonlinear model it constructs. The properties and diagnostics of the model can be obtained from model["property"].

The value of the best-fit function from (RefLink[NonlinearModelFit, paclet:ref/NonlinearModelFit]) at a particular point (Subscript[x, 1]), … can be found from model[(Subscript[x, 1]),…].

The best-fit function from (RefLink[NonlinearModelFit, paclet:ref/NonlinearModelFit])[data,form,pars,vars] is the same as the result from (RefLink[FindFit, paclet:ref/FindFit])[data,form,pars,vars].

(RefLink[NonlinearModelFit, paclet:ref/NonlinearModelFit])[data,form,{{(Subscript[par, 1]),(Subscript[p, 1])},…},vars] starts the search for a fit with {(Subscript[par, 1])->(Subscript[p, 1]),…}.

With data in the form {{(Subscript[x, 11]),(Subscript[x, 12]),…,(Subscript[y, 1])},{(Subscript[x, 21]),(Subscript[x, 22]),…,(Subscript[y, 2])},…}, the number of coordinates (Subscript[x, i1]), (Subscript[x, i2]), … should equal the number of variables (Subscript[x, i]).

Data in the form {(Subscript[y, 1]),(Subscript[y, 2]),…} is equivalent to data in the form {{1,(Subscript[y, 1])},{2,(Subscript[y, 2])},…}.

(RefLink[NonlinearModelFit, paclet:ref/NonlinearModelFit]) produces a nonlinear model of the form (OverHat[y])=f [(Subscript[x, 1]),…,(Subscript[β, 1]),…] under the assumption that the original (Subscript[y, i]) are independent normally distributed with mean (Subscript[(OverHat[y]), i]) and common standard deviation.

(RefLink[NonlinearModelFit, paclet:ref/NonlinearModelFit]) takes the following options:

With (RefLink[ConfidenceLevel, paclet:ref/ConfidenceLevel])->p, probability-p confidence intervals are computed for parameter and prediction intervals.

With the setting (RefLink[Weights, paclet:ref/Weights])->{(Subscript[w, 1]),(Subscript[w, 2]),…}, the error variance for (Subscript[y, i]) is assumed to be (σ^2)/(Subscript[w, i]). By default, unit weights are used.

With the setting (RefLink[VarianceEstimatorFunction, paclet:ref/VarianceEstimatorFunction])->f, the common variance is estimated by f[res,w], where res={(Subscript[y, 1])-(Subscript[(OverHat[y]), 1]),(Subscript[y, 2])-(Subscript[(OverHat[y]), 2]),…} is the list of residuals and w is the list of weights.

Using (RefLink[VarianceEstimatorFunction, paclet:ref/VarianceEstimatorFunction])->(1&) and (RefLink[Weights, paclet:ref/Weights])->{1/((Subscript[Δy, 1])^2),1/((Subscript[Δy, 2])^2),…}, (Subscript[Δy, i]) is treated as the known uncertainty of measurement (Subscript[y, i]), and parameter standard errors are effectively computed only from the weights.

Possible settings for (RefLink[Method, paclet:ref/Method]) include "ConjugateGradient", "Gradient", "LevenbergMarquardt", "Newton", "NMinimize", and "QuasiNewton", with the default being (RefLink[Automatic, paclet:ref/Automatic]).

For constrained models, properties based on approximate normality assumptions may not be valid. When such values are computed, the values are generated along with a warning message.

Properties related to data and the fitted function using model["property"] include:

Types of residuals include:

Properties related to the sum of squared errors include:

Properties and diagnostics for parameter estimates include:

Properties for curvature diagnostics include:

Properties related to influence measures include:

Properties of predicted values include:

Properties that measure goodness of fit include:

OpenersPrimaryExamplesSection(Spacer1)Examples  (26)

OpenersExampleSection0(Spacer1)Basic Examples  (1)

Fit a nonlinear model to some data:

data={{0,1},{1,0},{3,2},{5,4}, {6,4},{7,5}};

nlm=NonlinearModelFit[data,Log[a +b x^2],{a,b},x]

Obtain the functional form:

Normal[nlm]

Evaluate the model at a point:

nlm[2.3]

Visualize the fitted function with the data:

Show[ListPlot[data],Plot[nlm[x],{x,0,7}],Frame->True]

Extract and plot the residuals:

nlm["FitResiduals"]

ListPlot[%,Filling->Axis]

OpenersExampleSection1(Spacer1)Scope  (11)

Fit a model of more than one variable:

data=Flatten[Table[{x,y,Exp[.3x-.7y]+RandomReal[{-1,1}]},{x,5},{y,5}],1];

NonlinearModelFit[data,Exp[a x+b y],{a,b},{x,y}]

Normal[%]

Give starting values when parameters are far from the default value 1:

data={{25.,0.001},{25.5,0.002},{26.,0.011},{26.5,0.045},{27.,0.112},{27.5,0.215},{28.,0.259},{28.5,0.206},{29.,0.112},{29.5,0.044},{30.,0.011}};

nlm=NonlinearModelFit[data,a  Exp[-(x-b)^2],{{a,.5},{b,25}},x]

Plot[nlm[x],{x,25,30},Epilog:>Point[data],PlotStyle->{Orange,Thick}]

With the default starting values, the model is effectively 0:

nlmd=NonlinearModelFit[data,a  Exp[-(x-b)^2],{a,b},x]

Plot[Chop[nlmd[x]],{x,25,30},Epilog:>Point[data],PlotStyle->{Orange,Thick}]

Obtain a list of available properties for a nonlinear model:

nlm=NonlinearModelFit[Range[10],Exp[a x],a,x]

nlm["Properties"]

OpenersExampleSubsection0(Spacer1)Properties  (8)

OpenersExampleSubsubsection0(Spacer1)Data & Fitted Functions  (1)

Fit a nonlinear model:

data={{0.1,0.9,0.2},{0,0.3,0.5},{0.7,0.6,3.},{0.4,0.3,3.5},{0.5,0.8,0.6},{0.8,0.6,2.7},{0.1,0.1,1.3},{0.2,0.8,0.7},{0.6,0.6,2.2},{0.7,0.8,1.8}};

nlm=NonlinearModelFit[data,Exp[a x-b y],{a,b},{x,y}]

Extract the original data:

nlm["Data"]

Obtain and plot the best fit:

{fit = nlm["BestFit"],Show[Plot3D[fit,{x,0,1},{y,0,1},PlotRange->All], Graphics3D[{PointSize[0.025],Point[data]}]]}

Obtain the fitted function as a pure function:

nlm["Function"]

OpenersExampleSubsubsection1(Spacer1)Residuals  (1)

Examine residuals for a fit:

data=Table[{x,Log[2 +3 x^2]+RandomReal[{0,0.5}]},{x,RandomReal[{-10,10},100]}];

nlm=NonlinearModelFit[data,Log[a+b x^2],{a,b},x]

{fr,sr1,sr2}=nlm[{"FitResiduals","StandardizedResiduals","StudentizedResiduals"}];

Visualize the raw residuals:

ListPlot[fr]

Visualize scaled residuals in stem plots:

Map[ListPlot[#,Filling->0]&,{sr1,sr2}]

Plot the absolute differences between the standardized and Studentized residuals:

ListPlot[sr1-sr2]

OpenersExampleSubsubsection2(Spacer1)Sums of Squares  (1)

Fit a nonlinear model to some data:

data=Flatten[Table[{x,y,.2Log[5x+.1y]+RandomReal[.1]},{x,RandomReal[5,10]},{y,RandomReal[5,10]}],1];nlm=NonlinearModelFit[data,a Log[b x+c y],{a,b,c},{x,y}]

Extract the estimated error variance:

nlm["EstimatedVariance"]

Obtain the analysis of variance table:

nlm["ANOVATable"]

Get the sums of squares column from the table:

nlm["ANOVATableSumsOfSquares"]

Extract the numeric entries from the table:

vals=nlm["ANOVATableEntries"]

Use (RefLink[Grid, paclet:ref/Grid]) to add formatting:

Grid[Join[{{"","d.f.","s.o.s.","m.s."}},Join[{{"function"},{"error"},{"sum"},{"corrected sum"}},vals,2]],Alignment->Right]

OpenersExampleSubsubsection3(Spacer1)Parameter Estimation Diagnostics  (1)

Obtain a formatted table of parameter information:

data=Table[{x,Exp[2x +Sqrt[ x]]+RandomReal[{0,0.5}]},{x,RandomReal[100,100]}];

nlm=NonlinearModelFit[data,Exp[a x+Sqrt[b x]],{a,b},x]

nlm["ParameterTable"]

Extract the column of t-statistic values:

nlm["ParameterTStatistics"]

Get the unformatted array of values from the table:

vals=nlm["ParameterTableEntries"]

Add formatting using (RefLink[Grid, paclet:ref/Grid]):

Grid[Join[{{"",(OverHat[β]),(OverHat[σ]),t,P[Abs[T]>Abs[t]]}},Join[{{a},{b}},vals,2]],Dividers->{GrayLevel[.5],GrayLevel[.5]}]//TraditionalForm

Add formatting via (RefLink[TableForm, paclet:ref/TableForm]):

TableForm[vals,TableHeadings->{{a,b},{(OverHat[β]),(OverHat[σ]),t,P[Abs[T]>Abs[t]]}}]//TraditionalForm

OpenersExampleSubsubsection4(Spacer1)Curvature Diagnostics  (1)

Fit a nonlinear model to some data:

data={{8.76,7.73,0.17},{5.34,3.05,1.16},{7.65,1.98,0.95},{1.21,6.7,0.42},{2.04,1.12,0.42},{3.13,3.78,0.71},{2.93,0.21,0.9},{6.05,2.71,1.14},{7.67,3.88,0.61},{7.26,9.11,0.72},{0.88,3.84,0.61},{5.32,4.53,0.69},{6.46,0.79,0.83},{4.5,0.44,0.46},{1.1,9.64,0.2}};
nlm=NonlinearModelFit[data,a x/(b y+c x^2),{a,b,c},{x,y}]

Obtain a table of curvature measures for the fitted model:

nlm["FitCurvatureTable"]

Extract the list of numeric values from the table:

nlm["FitCurvatureTableEntries"]

Extract the max parameter effects curvature value:

nlm["MaxParameterEffectsCurvature"]

OpenersExampleSubsubsection5(Spacer1)Influence Measures  (1)

Fit some data containing extreme values to a nonlinear model:

data={{2.,2.33},{3.,1.02},{4.,2.42},{5.,1.25},{6.,3.36},{7.,1.04},{8.,2.},{9.,1.39},{10.,1.73},{11.,2.34},{12.,1.37},{13.,2.45},{14.,1.8},{15.,1.45},{16.,5.82},{17.,2.61},{18.,2.81},{19.,2.12},{20.,1.55}};
nlm=NonlinearModelFit[data,Exp[-a x/(b x^3-c x)],{a,b,c},x]

Use single deletion variances to check the impact on the error variance of removing each point:

ListPlot[nlm["SingleDeletionVariances"],PlotRange->{0,All},Filling->0]

Check the diagonal elements of the hat matrix to assess influence of points on the fitting:

ListPlot[nlm["HatDiagonal"],PlotRange->{0,All},Filling->0]

OpenersExampleSubsubsection6(Spacer1)Prediction Values  (1)

Fit a nonlinear model:

data={{2.8,9.1},{3.5,14.8},{4.4,24.1},{3.9,19.},{2.7,7.9},{2.9,10.6},{0.6,1.3},{0.7,1.6},{0.2,3.2},{3.9,18.3}};
nlm=NonlinearModelFit[data,a Exp[-b x^2/(c+x)],{a,b,c},x]

Plot the predicted values against the observed values:

ListPlot[Transpose[nlm[{"Response","PredictedResponse"}]],FrameLabel->{"observed","predicted"},Frame->True,Axes->False]

Obtain tabular results for mean- and single-prediction confidence intervals:

nlm[{"MeanPredictionConfidenceIntervalTable","SinglePredictionConfidenceIntervalTable"}]

Get the single-prediction intervals from the table:

nlm["SinglePredictionConfidenceIntervals"]

Extract 99% mean prediction bands:

nlm["MeanPredictionBands",ConfidenceLevel->.99]

OpenersExampleSubsubsection7(Spacer1)Goodness-of-Fit Measures  (1)

Obtain a table of goodness-of-fit measures for a nonlinear model:

data={{6.6,9.4,14.4},{0.1,5.6,11.1},{0.1,3.1,6.5},{9.5,4.7,11.1},{6.6,2.,6.8},{7.,6.2,11.1},{7.,6.9,12.4},{7.,1.5,8.9},{6.6,0.2,8.6},{6.6,2.1,11.4},{6.6,9.3,11.8},{9.5,2.5,10.9}};

nlm=NonlinearModelFit[data,Exp[a x +b y],{a,b},{x,y}]

Grid[Transpose[{#,nlm[#]}&[{"AdjustedRSquared","AIC","BIC","RSquared"}]],Alignment->Left]

OpenersExampleSection2(Spacer1)Generalizations & Extensions  (2)

Fit data to a model defined by a numerical operation:

data = {{6.47,3.65},{7.43,3.45},{3.9,-2.94},{4.8,-1.29},{2.48,-0.35},{6.32,3.16},{2.59,-1.19},{9.13,-2.},{3.81,-3.04},{3.33,-2.68}};

model[a_?NumberQ, b_?NumberQ, c_?NumberQ] :=  Module[{y,x},First[y /.NDSolve[{y''[x] +a y[x]==0,y[0]==b, y'[0]==c},y,{x,0,10}]]]

nlm=NonlinearModelFit[data,model[a,b,c][x],{a,b,c},x,Method->"Gradient"]

Show[ListPlot[data],Plot[nlm[x],{x,0,10},PlotStyle->Orange]]

Make the computation much faster by caching solutions of the differential equation:

Clear[model];
model[a_?NumberQ, b_?NumberQ, c_?NumberQ] :=  (model[a,b,c] = Module[{y,x},First[y /.NDSolve[{y''[x] +a y[x]==0,y[0]==b, y'[0]==c},y,{x,0,10}]]])

nlm=NonlinearModelFit[data,model[a,b,c][x],{a,b,c},x,Method->"Gradient"]

Perform other mathematical operations on the functional form of the model:

nlm=NonlinearModelFit[Exp[Range[10]]+RandomReal[1,10],Exp[a+b x],{a,b},x]

Integrate symbolically and numerically:

Integrate[nlm[x],x]

NIntegrate[nlm[x],{x,1,5}]

Find a predictor value that gives a particular value for the model:

FindRoot[nlm[x]==10,{x,1}]

OpenersExampleSection3(Spacer1)Options  (4)

OpenersExampleSubsection1(Spacer1)ConfidenceLevel  (1)

The default gives 95% confidence intervals:

data={{0,1},{1,0},{3,2},{5,4}};

nlm=NonlinearModelFit[data,Log[a +b x^2],{a,b},x]

nlm["ParameterConfidenceIntervals"]

Use 99% intervals instead:

nlm=NonlinearModelFit[data,Log[a +b x^2],{a,b},x,ConfidenceLevel->.99]

nlm["ParameterConfidenceIntervals"]

Set the level to 90% within (RefLink[FittedModel, paclet:ref/FittedModel]):

nlm["ParameterConfidenceIntervals",ConfidenceLevel->.9]

OpenersExampleSubsection2(Spacer1)VarianceEstimatorFunction  (1)

Use the default unbiased estimate of error variance:

data={{0,1},{1,0},{3,2},{5,4}};

nlm=NonlinearModelFit[data,Log[a +b x^2],{a,b},x]

nlm["EstimatedVariance"]

Assume a known error variance:

nlm["EstimatedVariance",VarianceEstimatorFunction->(1&)]

Estimate the variance by the mean squared error:

nlm["EstimatedVariance",VarianceEstimatorFunction->(Mean[#^2]&)]

OpenersExampleSubsection3(Spacer1)Weights  (1)

Fit a model using equal weights:

data={{0,1},{1,0},{3,2},{5,4}};

NonlinearModelFit[data,Log[a +b x^2],{a,b},x]//Normal

Give explicit weights for the data points:

NonlinearModelFit[data,Log[a +b x^2],{a,b},x,Weights->{1,1/2,1/3,1/4}]//Normal

OpenersExampleSubsection4(Spacer1)WorkingPrecision  (1)

Use (RefLink[WorkingPrecision, paclet:ref/WorkingPrecision]) to get higher precision in parameter estimates:

data=Table[{x,x^2},{x,10}]

nlm=NonlinearModelFit[data,Exp[a x],a,x,WorkingPrecision->50]

Obtain the fitted function:

nlm["BestFit"]

Reduce the precision in property computations after the fitting:

nlm["BestFit",WorkingPrecision->20]

OpenersExampleSection4(Spacer1)Applications  (1)

Simulate some data:

data=BlockRandom[SeedRandom[12345];Table[{x,Exp[-2.3 x/(11 +.4 x+x^2)]+RandomReal[{-.5,.5}]},{x,RandomReal[{1,15},20]}]];

Fit a nonlinear model to the data:

nlm=NonlinearModelFit[data,Exp[a x/(b+c x)],{a,b,c},x]

Obtain and visualize 90% confidence bands for the fit:

bands90[x_]=nlm["MeanPredictionBands",ConfidenceLevel->.9];
Show[ListPlot[data],Plot[{nlm[x],bands90[x]},{x,1,15},Filling->{2->{1}}]]

Obtain 95%, 99%, and 99.9% confidence bands:

{bands95[x_],bands99[x_],bands999[x_]}=Table[nlm["MeanPredictionBands",ConfidenceLevel->cl],{cl,{.95,.99,.999}}];

Visualize the confidence bands for the various levels:

Show[ListPlot[data],Plot[{nlm[x],bands90[x],bands95[x],bands99[x],bands999[x]},{x,1,15},Filling->{2->{1},3->{2},4->{3},5->{4}},PlotLegends->{"model", "90% confidence bands","95% confidence bands","99% confidence bands","99.9% confidence bands"}]]

OpenersExampleSection5(Spacer1)Properties & Relations  (5)

(RefLink[NonlinearModelFit, paclet:ref/NonlinearModelFit]) fits linear and nonlinear models assuming normally distributed errors:

data=Table[{i,i},{i,10}];

NonlinearModelFit[data,a+b x^2,{a,b},x]//Normal

NonlinearModelFit[data,Exp[Sqrt[a x^b]],{a,b},x]//Normal

(RefLink[LinearModelFit, paclet:ref/LinearModelFit]) fits linear models assuming normally distributed errors:

LinearModelFit[Range[10],x^2,x]//Normal

(RefLink[FindFit, paclet:ref/FindFit]) and (RefLink[NonlinearModelFit, paclet:ref/NonlinearModelFit]) fit equivalent models:

data=Table[{i,Exp[RandomReal[{i-1,i}]]},{i,10}];

FindFit[data,Exp[a x],a,x]

nlm=NonlinearModelFit[data,Exp[a x],a,x]

nlm["BestFitParameters"]

(RefLink[NonlinearModelFit, paclet:ref/NonlinearModelFit]) allows for extraction of additional information about the fitting:

nlm["FitResiduals"]

(RefLink[NonlinearModelFit, paclet:ref/NonlinearModelFit]) assumes normally distributed responses:

data=Table[{i,RandomReal[{i-1,i}]/10},{i,10}];

nm=NonlinearModelFit[data,1/(1+Exp[a+b x]),{a,b},x]

(RefLink[LogitModelFit, paclet:ref/LogitModelFit]) assumes binomially distributed responses:

lm=LogitModelFit[data,x,x]

The fits are not identical:

{Normal[lm],Normal[nm]}

Plot[{lm[x],nm[x]},{x,1,5}]

The same is true for (RefLink[ProbitModelFit, paclet:ref/ProbitModelFit]):

pm=ProbitModelFit[data,x,x]

nm2=NonlinearModelFit[data,1/2(1+Erf[(a+b x)/Sqrt[2]]),Transpose[{{a,b},pm["BestFitParameters"]}],x]

{Normal[pm],Normal[nm2]}

(RefLink[NonlinearModelFit, paclet:ref/NonlinearModelFit]) will use the time stamps of a (RefLink[TimeSeries, paclet:ref/TimeSeries]) as variables:

ts1=TimeSeries[];

ts1["Times"]

NonlinearModelFit[ts1,Exp[a +b x],{a,b},x]

Rescale the time stamps and fit again:

ts2=TimeSeriesRescale[ts1,{.1,2}]

ts2["Times"]

NonlinearModelFit[ts2,Exp[a +b x],{a,b},x]

Find fit for the values:

NonlinearModelFit[ts1["Values"],Exp[a +b x],{a,b},x]

(RefLink[NonlinearModelFit, paclet:ref/NonlinearModelFit]) acts pathwise on a multipath (RefLink[TemporalData, paclet:ref/TemporalData]):

NonlinearModelFit[TemporalData[],Exp[a +b x],{a,b},x]

OpenersExampleSection6(Spacer1)Possible Issues  (2)

Distributional assumptions are based upon an unconstrained model:

data={{1.,0.75},{2.,0.89},{3.,0.42},{4.,0.99},{5.,0.84},{6.,0.34},{7.,0.83},{8.,0.93},{9.,0.76},{10.,0.11}};
nlm=NonlinearModelFit[data,{Exp[a+b x^2],b<-1/2},{{a,0},{b,-1}},x]

Here the confidence interval for b contains points that violate the constraint:

nlm["ParameterConfidenceIntervalTable"]

The coefficient of determination (R^2) in (RefLink[NonlinearModelFit, paclet:ref/NonlinearModelFit]) is calculated with uncorrected data:

data={{6.6,9.4,14.4},{0.1,5.6,11.1},{0.1,3.1,6.5},{9.5,4.7,11.1},{6.6,2.,6.8},{7.,6.2,11.1},{7.,6.9,12.4},{7.,1.5,8.9},{6.6,0.2,8.6},{6.6,2.1,11.4},{6.6,9.3,11.8},{9.5,2.5,10.9}};

nlm=NonlinearModelFit[data,Exp[a x +b y],{a,b},{x,y}]

The coefficient of determination:

nlm["RSquared"]

Direct calculation using residuals and data:

1-(nlm["FitResiduals"].nlm["FitResiduals"])/(data[[All,3]].data[[All,3]])

Sometimes (R^2) is defined using centralized data:

centralized=data[[All,3]]-Mean[data[[All,3]]];
1-(nlm["FitResiduals"].nlm["FitResiduals"])/(centralized.centralized)

({{DocumentationFooterIconsRelatedFunction.png, ({{See Also}, {(RefLink[LinearModelFit, paclet:ref/LinearModelFit])  ▪  (RefLink[GeneralizedLinearModelFit, paclet:ref/GeneralizedLinearModelFit])  ▪  (RefLink[FittedModel, paclet:ref/FittedModel])  ▪  (RefLink[FindFit, paclet:ref/FindFit])  ▪  (RefLink[Fit, paclet:ref/Fit])  ▪  (RefLink[TimeSeriesModelFit, paclet:ref/TimeSeriesModelFit])  ▪  (RefLink[FindFormula, paclet:ref/FindFormula])  ▪  (RefLink[FindMinimum, paclet:ref/FindMinimum])  ▪  (RefLink[NMinimize, paclet:ref/NMinimize])}})}})

({{DocumentationFooterIconsRelatedTutorial.png, ({{Tutorials}, {▪(RefLinkPlain[Statistical Model Analysis, paclet:tutorial/StatisticalModelAnalysis])}})}})

({{DocumentationFooterIconsRelatedGuide.png, ({{Related Guides}, {▪(RefLinkPlain[Statistical Model Analysis, paclet:guide/StatisticalModelAnalysis])}, {▪(RefLinkPlain[Statistical Data Analysis, paclet:guide/Statistics])}, {▪(RefLinkPlain[Machine Learning, paclet:guide/MachineLearning])}, {▪(RefLinkPlain[Numerical Data, paclet:guide/NumericalData])}, {▪(RefLinkPlain[Scientific Models, paclet:guide/ScientificModels])}, {▪(RefLinkPlain[Scientific Data Analysis, paclet:guide/ScientificDataAnalysis])}, {▪(RefLinkPlain[Time Series Processing, paclet:guide/TimeSeries])}, {▪(RefLinkPlain[Image Computation for Microscopy, paclet:guide/ImageComputationForMicroscopy])}})}})