The NLMOD Procedure
RESTRICT Statement
RESTRICT restriction1 <, restriction2 …>;
The RESTRICT statement imposes linear restrictions on the model’s parameters estimates. You can specify any number of RESTRICT statements.
Each restriction is written as an expression, optionally followed by an equality operator (=) or an inequality operator (<, >, <=, >=), followed by a second expression:
expression <operator expression>
The operator can be =, <, >, <= , or >=. The operator and second expression are optional. When they are omitted, the operator defaults to = and the second expression defaults to the value 0.
Restriction expressions can be composed of parameter names, arithmetic operators, functions, and constants. You cannot use comparison operators (such as = or <) or logical operators (such as &) in RESTRICT statement expressions. Parameters that are named in restriction expressions must be among the parameters that are estimated by the model. Restriction expressions cannot refer to other variables that are defined in the program or in the DATA= data table. The restriction expressions must be linear functions of the parameters.
The following example illustrates how to use the RESTRICT statement to impose a linear constraint on parameters:
proc nlmod;
parms alpha beta;
f = (x/alpha + beta)**2
model y ~ residual(f);
restrict beta < 2*(alpha + constant('pi'));
run;
The preceding RESTRICT statement represents the following model constraint: