RESTRICT restriction1 <, restriction2 …>;
The RESTRICT statement imposes linear restrictions on the parameter estimates. You can specify any number of RESTRICT statements.
Each restriction is written either as a single linear equation or as a comma-separated list of two or more linear equations. A restriction equation consists of an expression, followed by an equality operator (=) or an inequality operator (<, >, <=, >=), followed by a second expression:
expression operator expression
The operator can be =, <, >, <=, or >=.
A restriction expression is composed of parameter names, constants, and the operators times (), plus (
), and minus (
). Each restriction expression must be a linear function of the parameters in the model. In addition, no grouping symbols (such as parentheses) are allowed and the constant factor in any product can only appear on the left-hand side of the times (
) operator.
In the following example, we assume that we have a data set in which y is the count variable and x1-x3 are continuous variables. The PROC COUNTREG program below uses a RESTRICT statement to impose a restriction on the estimate for the parameter associated with the variable x2. Thus, in any solution found by the optimizer, the solution must satisfy the condition that the parameter associated with the variable x2 is equal to 1.5:
proc countreg data=mycas.exrestrict;
model y = x1-x3;
restrict x2=l.5;
run;
It is important to keep in mind that the parameters associated with the variables are restricted, not the variables themselves. Thus, in the RESTRICT statement above, we use the variable name "x2" to refer to the parameter associated with the variable x2, and not the variable itself.
Parameter names are shown in the Parameter column of the "Parameter Estimates" table. If a parameter name contains a blank or some other special character (such as ’*’, ’-’,’(’, or ’)’), then you must use the internal name of the parameter in order to refer to that parameter in the RESTRICT statement. For more information about how parameters are named in the RESTRICT statement, see the section Parameter Naming Conventions for the RESTRICT, TEST, BOUNDS, and INIT Statements.
Restrictions should be consistent and not redundant. All restriction equations in all RESTRICT statements are applied jointly.
Examples of valid RESTRICT statements include the following:
restrict x1=0.1;
restrict a+b=l;
restrict a-b=0, b+c=1.5;
restrict 2*f=g+h, intercept+f=0;
Examples of invalid RESTRICT statements include the following:
restrict x1^2=4;
restrict x1*x3=4;
restrict x1/x3=2;
restrict sin(a)=0;
restrict a*0.5=l;
restrict 2*(f+h)=1;
In the first four examples, the equation is non-linear. The fifth example is invalid because the constant factor (0.5) cannot appear on the right-hand side of the times () operator. The last example is invalid because grouping symbols are not allowed.
The set of restrictions must be consistent. For example, you cannot specify
restrict f-g=0,
f-intercept=0,
g-intercept=1;
because the three restrictions are not consistent.
Lagrange multipliers are reported in the "Parameter Estimates" table for all the active linear constraints. They are identified by the names Restrict1, Restrict2, and so on. Nonactive (nonbinding) restrictions have no effect on the estimation results and are not noted in the output.
The following RESTRICT statement constrains the negative binomial dispersion parameter to 1, which restricts the conditional variance to be
:
restrict _Alpha = 1;
The RESTRICT statement is not supported if you also specify a BAYES statement. In Bayesian analysis, the restrictions on parameters are usually introduced through the prior distribution.