Chapter Contents Previous Next
 The CALIS Procedure

## 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.

 Chapter Contents Previous Next Top