## Nonlinear least squares

The Mathematica add-on package Statistics'NonlinearFit contains several nonlinear least squares functions which use the Levenberg-Marquardt method as the default option. One of these functions, NonlinearRegress, is illustrated next.

 << load in the add-on package for Statistics~NonlinearFit performing nonlinear least-squares estimation NonlinearRegressf Fits a linear model to data data, {1, x}, {x}]

Performing nonlinear least-squares regression analysis.

Performing nonlinear least-squares regression analysis.

Q: How do we use nonlinear regression analysis to fit the Michaelis-Menten function onto enzyme kinetic data?

A: We illustrate the method by using the kinetic data from the previous example; it is labelled dataEnzNoisy.

<< Statistics"NonlinearFit"; Clear[Subscript]

Next, use the NonlinearRegress function as follows. results = NonlinearRegress[dataEnzNoisy,

{BestFitParameters ^ {Vmax ^ 9.66041, Km ^ 2.7907}, ParameterCITable ^

Estimate Asymptotic SE

Vmax 9.66041 0.274669

Km 2.7907 0.168322

EstimatedVariance^ 0.00829601, ANOVATable

Model Error

Uncorrected Total Corrected Total

SumOfSq

217.467

0.0663681

217.533

21.9156

MeanSq

108.733

0.00829601,

AsymptoticCorrelationMatrix ^

0.97612

0.97612 1.

FitCurvatureTable ^

Max Intrinsic

Max Parameter-Effects

95. % Confidence Region

Curvature 0.0235299= 0.106493 = 0.473568

The meaning of the various elements of this Mathematica output are found in the Help Browser and in standard statistical textbooks, so we will not discuss them in detail here. However, it is worth noting that the key numbers are the parameter estimates and the "Asymptotic SE" values; these are the standard errors of the parameter estimates which provide a quantitative idea of their reliability.

The synthetic data and the estimated Michaelis-Menten equation can be plotted together, as follows:

graph1 = ListPlot[dataEnzNoisy,

PlotStyle -> {PointSize[0.02]}, DisplayFunction^Identity];

/. {BestFitParameters /. results}, r vm graph2 = Plot I —

{a, 0, 10} , DisplayFunction ^ Identity] ; Show[{graphl, graph2}, DisplayFunction^ \$DisplayFunction, AxesLabel -> { " Time (h) ", "v0 " }] ;

Figure 6.2. Nonlinear regression of the Michaelis-Menten expression onto enzyme kinetic data using the Mathematics function NonlinearRegress. The ordinate is v0 and the abscissa [S]0.