# NonlinearModelFit

NonlinearModelFit[{{x1,y1},{x2,y2},},form,{β1,},x]

constructs a nonlinear model with formula form that fits the yi for each xi using the free parameters βi.

NonlinearModelFit[data,form,params,{x1,}]

constructs a nonlinear model where form depends on the variables xk.

NonlinearModelFit[data,{form,cons},params,{x1,}]

constructs a nonlinear model subject to the parameter constraints cons.

# Details and Options

• NonlinearModelFit attempts to model the input data using a general mathematical formula with free parameters.
• NonlinearModelFit produces a nonlinear model of the form under the assumption that the original are independent normally distributed with mean and common standard deviation.
• NonlinearModelFit returns a symbolic 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 NonlinearModelFit at a particular point x1, can be found from model[x1,].
• The best-fit function from NonlinearModelFit[data,form,pars,vars] is the same as the result from FindFit[data,form,pars,vars].
• NonlinearModelFit[data,form,{{β1,val1},},vars] starts the search for a fit with {β1->val1,}.
• Possible forms of data are:
•  {y1,y2,…} equivalent to the form {{1,y1},{2,y2},…} {{x11,x12,…,y1},…} a list of independent values xij and the responses yi {{x11,x12,…}y1,…} a list of rules between input values and responses {{x11,x12,…},…}{y1,y2,…} a rule between a list of input values and responses {{x11,…,y1,…},…}n fit the nth column of a matrix
• With multivariate data such as , the number of coordinates xi1, xi2, should equal the number of variables xi.
• ##### Options
• NonlinearModelFit takes the following options:
•  AccuracyGoal Automatic the number of digits of accuracy sought ConfidenceLevel 95/100 confidence level for parameters and predictions EvaluationMonitor None expression to evaluate whenever form is evaluated Gradient Automatic the list of gradient components for form MaxIterations Automatic maximum number of iterations to use Method Automatic method to use PrecisionGoal Automatic the precision sought StepMonitor None the expression to evaluate whenever a step is taken VarianceEstimatorFunction Automatic function for estimating the error variance Weights Automatic weights for data elements WorkingPrecision Automatic the precision used in internal computations
• With , probability-p confidence intervals are computed for parameter and prediction intervals.
• With the setting , the weights will be set to 1 if the responses are exact values. If the responses are all of the form Around[yi,σi], the weights will be set to .
• With the setting Weights->{w1,w2,}, the error variance for yi is assumed to be . By default, unit weights are used.
• With the setting , the common variance is estimated by f[res,w], where res={y1-,y2-,} is the list of residuals and w is the list of weights.
• Using and Weights->{1/Δy12,1/Δy22,}, Δyi is treated as the known uncertainty of measurement yi, and parameter standard errors are effectively computed only from the weights.
• Possible settings for Method include:
•  "ConjugateGradient" nonlinear conjugate gradient "Gradient" gradient descent "LevenbergMarquardt" Gauss–Newton method for least squares "Newton" Newton method "QuasiNewton" quasi-Newton BFGS "InteriorPoint" interior point method "NMinimize" use NMinimize for optimization Automatic automatic default method
• Additional method suboptions can be given in the form Method->{,opts}.
• The Method option can take any local optimization method as specified in the tutorial Unconstrained Optimization: Methods for Local Minimization. »
• Any global optimization method can be specified as a submethod to the "NMinimize" method. They can be found in the Numerical Algorithms for Constrained Global Optimization tutorial. »
• ##### Properties
• 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:
•  "BestFit" fitted function "BestFitParameters" parameter estimates "Data" the input data or design matrix and response vector "Function" best-fit pure function "Response" response values in the input data
• Types of residuals include:
•  "FitResiduals" difference between actual and predicted responses "StandardizedResiduals" fit residuals divided by the standard error for each residual "StudentizedResiduals" fit residuals divided by single deletion error estimates
• Properties related to the sum of squared errors include:
•  "ANOVATable" analysis of variance table "ANOVATableDegreesOfFreedom" degrees of freedom from the ANOVA table "ANOVATableEntries" unformatted array of values from the table "ANOVATableMeanSquares" mean square errors from the table "ANOVATableSumsOfSquares" sums of squares from the table "EstimatedVariance" estimate of the error variance
• Properties and diagnostics for parameter estimates include:
•  "CorrelationMatrix" asymptotic parameter correlation matrix "CovarianceMatrix" asymptotic parameter covariance matrix "ParameterBias" estimated bias in the parameter estimates "ParameterConfidenceIntervals" parameter confidence intervals "ParameterConfidenceIntervalTable" table of confidence interval information for the fitted parameters "ParameterConfidenceIntervalTableEntries" unformatted array of values from the table "ParameterConfidenceRegion" ellipsoidal parameter confidence region "ParameterErrors" standard errors for parameter estimates "ParameterPValues" ‐values for parameter ‐statistics "ParameterTable" table of fitted parameter information "ParameterTableEntries" unformatted array of values from the table "ParameterTStatistics" -statistics for parameter estimates
• Properties for curvature diagnostics include:
•  "CurvatureConfidenceRegion" confidence region for curvature diagnostics "FitCurvatureTable" table of curvature diagnostics "FitCurvatureTableEntries" unformatted array of values from the table "MaxIntrinsicCurvature" measure of maximum intrinsic curvature "MaxParameterEffectsCurvature" measure of maximum parameter effects curvature
• Properties related to influence measures include:
•  "HatDiagonal" diagonal elements of the hat matrix "SingleDeletionVariances" list of variance estimates with the data point omitted
• Properties of predicted values include:
•  "MeanPredictionBands" confidence bands for mean predictions "MeanPredictionConfidenceIntervals" confidence intervals for the mean predictions "MeanPredictionConfidenceIntervalTable" table of confidence intervals for the mean predictions "MeanPredictionConfidenceIntervalTableEntries" unformatted array of values from the table "MeanPredictionErrors" standard errors for mean predictions "PredictedResponse" fitted values for the data "SinglePredictionBands" confidence bands based on single observations "SinglePredictionConfidenceIntervals" confidence intervals for the predicted response of single observations "SinglePredictionConfidenceIntervalTable" table of confidence intervals for the predicted response of single observations "SinglePredictionConfidenceIntervalTableEntries" unformatted array of values from the table "SinglePredictionErrors" standard errors for the predicted response of single observations
• Properties that measure goodness of fit include:
•  "AdjustedRSquared" adjusted for the number of model parameters "AIC" Akaike Information Criterion "AICc" finite sample corrected AIC "BIC" Bayesian Information Criterion "RSquared" coefficient of determination

# Examples

open allclose all

## Basic Examples(1)

Fit a nonlinear model to some data:

Obtain the functional form:

Evaluate the model at a point:

Visualize the fitted function with the data:

Extract and plot the residuals:

## Scope(15)

### Data(7)

Fit a model of one variable, assuming increasing integer-independent values:

Fit a model of more than one variable:

Fit a list of rules:

Fit a rule of input values and responses:

Specify a column as the response:

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

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

Obtain a list of available properties for a nonlinear model:

### Properties(8)

#### Data & Fitted Functions(1)

Fit a nonlinear model:

Extract the original data:

Obtain and plot the best fit:

Obtain the fitted function as a pure function:

#### Residuals(1)

Examine residuals for a fit:

Visualize the raw residuals:

Visualize scaled residuals in stem plots:

Plot the absolute differences between the standardized and Studentized residuals:

#### Sums of Squares(1)

Fit a nonlinear model to some data:

Extract the estimated error variance:

Obtain the analysis of variance table:

Get the sums of squares column from the table:

Extract the numeric entries from the table:

Use Grid to add formatting:

#### Parameter Estimation Diagnostics(1)

Obtain a formatted table of parameter information:

Extract the column of -statistic values:

Get the unformatted array of values from the table:

Add formatting using Grid:

Add formatting via TableForm:

#### Curvature Diagnostics(1)

Fit a nonlinear model to some data:

Obtain a table of curvature measures for the fitted model:

Extract the list of numeric values from the table:

Extract the max parameter effects curvature value:

#### Influence Measures(1)

Fit some data containing extreme values to a nonlinear model:

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

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

#### Prediction Values(1)

Fit a nonlinear model:

Plot the predicted values against the observed values:

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

Get the single-prediction intervals from the table:

Extract 99% mean prediction bands:

#### Goodness-of-Fit Measures(1)

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

## Generalizations & Extensions(2)

Fit data to a model defined by a numerical operation:

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

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

Integrate symbolically and numerically:

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

## Options(8)

### ConfidenceLevel(1)

The default gives 95% confidence intervals:

Use 99% intervals instead:

Set the level to 90% within FittedModel:

### Method(3)

Use the default method for minimizing the least-squares objective function:

Use Newton's method for optimization:

Configure the step control method for Newton's algorithm:

Use the interior point method with constraints:

Perform a more exhaustive search with the global optimization methods from NMinimize:

Use the submethod "RandomSearch":

Specify the number of initial search points for the "RandomSearch" algorithm:

### VarianceEstimatorFunction(1)

Use the default unbiased estimate of error variance:

Assume a known error variance:

Estimate the variance by the mean squared error:

### Weights(2)

Fit a model using equal weights:

Give explicit weights for the data points:

Use Around values to give different weights to data points:

### WorkingPrecision(1)

Use WorkingPrecision to get higher precision in parameter estimates:

Obtain the fitted function:

Reduce the precision in property computations after the fitting:

## Applications(1)

Simulate some data:

Fit a nonlinear model to the data:

Obtain and visualize 90% confidence bands for the fit:

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

Visualize the confidence bands for the various levels:

## Properties & Relations(5)

NonlinearModelFit fits linear and nonlinear models assuming normally distributed errors:

LinearModelFit fits linear models assuming normally distributed errors:

FindFit and NonlinearModelFit fit equivalent models:

NonlinearModelFit allows for extraction of additional information about the fitting:

NonlinearModelFit assumes normally distributed responses:

LogitModelFit assumes binomially distributed responses:

The fits are not identical:

The same is true for ProbitModelFit:

NonlinearModelFit will use the time stamps of a TimeSeries as variables:

Rescale the time stamps and fit again:

Find fit for the values:

NonlinearModelFit acts pathwise on a multipath TemporalData:

## Possible Issues(3)

Distributional assumptions are based upon an unconstrained model:

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

The coefficient of determination in NonlinearModelFit is calculated with uncorrected data:

The coefficient of determination:

Direct calculation using residuals and data:

Sometimes is defined using centralized data:

Fit data that spans over multiple orders of magnitude:

An exponential fit might appear correct at first glance:

But shows significant deviations on a log scale:

This can be addressed by using weights inversely proportional to the variance:

Wolfram Research (2008), NonlinearModelFit, Wolfram Language function, https://reference.wolfram.com/language/ref/NonlinearModelFit.html.

#### Text

Wolfram Research (2008), NonlinearModelFit, Wolfram Language function, https://reference.wolfram.com/language/ref/NonlinearModelFit.html.

#### CMS

Wolfram Language. 2008. "NonlinearModelFit." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/NonlinearModelFit.html.

#### APA

Wolfram Language. (2008). NonlinearModelFit. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/NonlinearModelFit.html

#### BibTeX

@misc{reference.wolfram_2024_nonlinearmodelfit, author="Wolfram Research", title="{NonlinearModelFit}", year="2008", howpublished="\url{https://reference.wolfram.com/language/ref/NonlinearModelFit.html}", note=[Accessed: 20-June-2024 ]}

#### BibLaTeX

@online{reference.wolfram_2024_nonlinearmodelfit, organization={Wolfram Research}, title={NonlinearModelFit}, year={2008}, url={https://reference.wolfram.com/language/ref/NonlinearModelFit.html}, note=[Accessed: 20-June-2024 ]}