Constrained Estimation Using Program Code
The CALIS procedure offers a very flexible way to constrain parameter
estimates. You can use your own programming statements to express
special properties of the parameter estimates. This tool is also present
in McDonald's COSAN
implementation but is considerably easier to use in the CALIS procedure.
PROC CALIS is able to compute analytic first- and second-order
derivatives that you would have to specify using the COSAN program.
There are also three PROC CALIS statements you can use:
- the BOUNDS statement, to specify simple bounds on
the parameters used in the optimization process
- the LINCON statement, to specify general linear equality
and inequality constraints on the parameters used in the
optimization process
- the NLINCON statement, to specify general nonlinear equality
and inequality constraints on the parameters used in the
optimization process. The variables listed in the NLINCON
statement must be specified in the program code.
There are some traditional ways to enforce parameter
constraints by using parameter transformations
(McDonald 1980).
- One-sided boundary constraints:
For example, the parameter qk should be at least
as large (or at most as small) as a given constant
value a (or b),

This inequality constraint can be expressed as an
equality constraint
-
qk = a + x2j or qk = b - x2j
in which the fundamental parameter xj is unconstrained.
- Two-sided boundary constraints:
For example, the parameter qk should be located
between two given constant values a and b, a < b,

This inequality constraint can be expressed as an
equality constraint

in which the fundamental parameter xj is unconstrained.
- One-sided order constraints:
For example, the parameters q1 , ... , qk should be
ordered in the form

These inequality constraints can be expressed as a set of
equality constraints
-
q1 = x1 , q2 = x1 + x22 , ... , qk = x1 + x2k
in which the fundamental parameters x1 , ... , xk are
unconstrained.
- Two-sided order constraints:
For example, the parameters q1 , ... , qk should be
ordered in the form

These inequality constraints can be expressed as a set of
equality constraints
-
q1 = x1 , q2 = q1 + x22 , ... , qk = qk-1 + x2k
in which the fundamental parameters x1 , ... , xk are
unconstrained.
- Linear equation constraints:
For example, the parameters q1, q2, q3 should
be linearly constrained in the form
-
q1 + q2 + q3 = a
which can be expressed in the form of three explicit equations
in which the fundamental parameters x1 and x2 are unconstrained:
-
q1 = x1 , q2 = x2 , q3 = a - x1 - x2
Refer to McDonald (1980) and Browne (1982)
for further notes on reparameterizing techniques. If the optimization
problem is not too large to apply the Levenberg-Marquardt or Newton-Raphson
algorithm, boundary constraints should be requested by the BOUNDS
statement rather than by reparameterizing code.
If the problem is so large that you must use a quasi-Newton
or conjugate gradient algorithm, reparameterizing techniques
may be more efficient than the BOUNDS statement.
Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.