Published on :
Statistical CREATION_INTERNE

PROC NLIN Example: Parameter Estimation for a Nonlinear Model

This code is also available in: Deutsch Español Français
Awaiting validation
The script begins by creating a dataset named 'Enzyme' containing concentration and velocity data. Then, it executes PROC NLIN twice. The first execution uses the Marquardt method to estimate the parameters of a Michaelis-Menten model. The second execution of PROC NLIN uses the Newton method to estimate the parameters of a different exponential model.
Data Analysis

Type : CREATION_INTERNE


The 'Enzyme' data is created directly in the script via a DATA STEP instruction and DATALINES, simulating concentration and velocity observations for an enzymatic reaction.

1 Code Block
DATA STEP Data
Explanation :
This DATA STEP block creates a dataset named 'Enzyme'. It defines two variables, 'Concentration' and 'Velocity', and initializes them with values provided directly in the script via the DATALINES statement. This dataset will be used as input for the NLIN procedures.
Copied!
1DATA Enzyme;
2 INPUT Concentration Velocity;
3 DATALINES;
40.26 124.7 0.30 126.9
50.48 135.9 0.50 137.6
60.54 139.6 0.68 141.1
70.82 142.8 1.14 147.6
81.28 149.8 1.38 149.4
91.80 153.9 2.30 152.5
102.44 154.5 2.48 154.7
11;
2 Code Block
PROC NLIN
Explanation :
This NLIN procedure fits a nonlinear model to the 'Enzyme' data using the Marquardt optimization method. It estimates the parameters 'theta1' and 'theta2' for the Michaelis-Menten model: `Velocity = theta1*Concentration / (theta2 + Concentration)`. The `hougaard` option is used to calculate Hougaard's skewness measures.
Copied!
1PROC NLIN DATA=Enzyme method=marquardt hougaard;
2 parms theta1=155
3 theta2=0 to 0.07 BY 0.01;
4 model Velocity = theta1*Concentration / (theta2 + Concentration);
5RUN;
3 Code Block
PROC NLIN
Explanation :
This second NLIN procedure fits a different nonlinear model to the same 'Enzyme' data, this time using the Newton optimization method. It estimates the parameters 'x1' and 'x2' for the exponential model: `Velocity = x1 * exp (x2 * Concentration)`. The `listcode` option displays the SAS source code for the model and its derivatives.
Copied!
1PROC NLIN DATA=Enzyme method=newton listcode;
2 parms x1=4 x2=2;
3 model Velocity = x1 * exp (x2 * Concentration);
4RUN;
This material is provided "as is" by We Are Cas. There are no warranties, expressed or implied, as to merchantability or fitness for a particular purpose regarding the materials or code contained herein. We Are Cas is not responsible for errors in this material as it now exists or will exist, nor does We Are Cas provide technical support for it.
Copyright Info : S A S S A M P L E L I B R A R Y