The RESTRICT statement is used to impose linear and nonlinear restrictions on the parameter estimates.
RESTRICT statements refer to the parameters estimated by the associated FIT statement (that is, to either the preceding FIT statement or, in the absence of a preceding FIT statement, to the following FIT statement). You can specify any number of RESTRICT statements.
Each restriction is written as an optional name, followed by an expression, followed by an equality operator (=) or an inequality operator (<, >, <=, >=), followed by a second expression:
< "name" > expression operator expression
The optional "name" is a string used to identify the restriction in the printed output and in the OUTEST= data set. The operator can be =, <, >, <= , or >=. The operator and second expression are optional.
Restriction expressions can be composed of parameter names, arithmetic operators, functions, and constants. Comparison operators (such as = or <) and logical operators (such as &) cannot be used in RESTRICT statement expressions. Parameters named in restriction expressions must be among the parameters estimated by the associated FIT statement. Expressions can refer to variables defined in the program.
The restriction expressions can be linear or nonlinear functions of the parameters.
The following is an example of the use of the RESTRICT statement:
proc model data=one; endogenous y1 y2; exogenous x1 x2; parms a b c; restrict b*(b+c) <= a; eq.one = -y1/c + a/x2 + b * x1**2 + c * x2**2; eq.two = -y2 * y1 + b * x2**2 - c/(2 * x1); fit one two / fiml; run;