`EQUALITY | EQCON`

equality-constraints <, equality-constraints …> ;

where equality-constraints is defined as variable-list < / constraint-options > The EQUALITY statement provides a versatile way to specify various types of equality constraints on the parameters in the model. You can specify within-group or between-group equality constraints on specific sets of parameters for particular sets of variables or factors. In the variable-list, you specify the set of variables that are subject to the equality constraints on their respective parameters. You can either specify the names of the variables or use one of the support keywords (see list later in this section) for variable-list. In the constraint-options, you specify the types of parameters, the specific groups (in multiple-group analysis), and the specific factors (in multidimensional models) on which the equality constraints are imposed.

For example, the following statements specify that all related parameters of `x1`

through `x5`

are constrained to be equal:

proc irt; model x1-x10/resfunc=graded; equality x1-x5; run;

Because all items are fitted by the graded response model, all slopes for variables `x1`

–`x5`

are constrained to be the same and the intercepts for variables `x1`

–`x5`

are also constrained to be the same if `x1`

–`x5`

are binary variables. If `x1`

–`x5`

are ordinal variables that have more than two categories, all the threshold parameters are constrained across these five
variables. For example, if each of these variables has five categories, there would be four set of constraints, respectively,
for each of the four threshold parameters over the five variables.

You can limit the set of parameters for the equality constraints by specifying the PARM= option (one of the constraint-options). For example, the following statements constrain only the slope parameters of `x1`

–`x5`

, instead of all related parameters in the graded response model:

proc irt; model x1-x10/resfunc=graded; equality x1-x5/parm=[slopes]; run;

There are various ways to specify the target set of variables that are subject to the equality constraints. You can specify variables directly, or you can specify the following variable-list:

You can also specify the following keywords, with a list of excluded-variables for variable-list:

For example, if you have mixed model types for the item responses, the equality constraints might be set on a particular set
of response variables. The following example shows that the equality constraints are applied to those variables that are fitted
by the three-parameter model (that is, `x7`

–`x10`

):

proc irt; model x1-x6/resfunc=graded, x7-x10/resfunc=threep; equality _allthreep_; run;

Suppose that the preceding model does not fit well and you want to consider a less restricted model in which the equality
constraints are imposed on all variables except `x10`

in the three-parameter model. The following statements achieve this purpose:

proc irt; model x1-x6/resfunc=graded, x7-x10/resfunc=threep; equality _allthreep_but_(x10); run;

In the constraint-options, you can specify options for parameter types (PARM= option), the set of groups (BETWEEN_GP= and WITHIN_GP= options), and the set of factors. If you do not use these options, all related parameter types, all groups, and all factors are subject to the constraints for the specified set of variables. You can specify the following constraint-options:

You can combine the constraint-options to set various types of constraints for your model. You can also specify more than one constraint in an EQUALITY statement. You can even use multiple EQUALITY statements for better organization of the constraints.

For example, suppose that a single-group analysis is conducted using three different types of models (two-parameter, graded responses, and three-parameter model) for the response variables. Consider the following statements:

proc irt; model x1-x10/resfunc=twop, x11-x20/resfunc=graded, x21-x30/resfunc=threep; equality _alltwop_but_(x9-x10), x11-x25 / parm=[slope], _allthreep_ / parm=[guess]; run;

The first set of equality constraints applies to the threshold and slope parameters of `x1`

–`x8`

, leaving the parameters of `x9`

and `x10`

freely estimated. The second set of equality constraints applies to the slope parameters of variables `x11`

–`x25`

, even though `x21`

–`x25`

have a different model type than `x11`

–`x20`

. The third set of equality constraints applies to the guessing parameters of all variables that are fitted by the three-parameter
model (that is, `x21`

–`x30`

).

In multiple-group analysis, constraints are set across groups by default. But within-group constraints can also be set by
using the WITHIN_GP option. Suppose there are three groups in the analysis and the grouping variable `GP`

has three distinct values, 1, 2, and 3. Consider the following example:

proc irt; group GP; model x1-x10/resfunc=twop, x11-x20/resfunc=graded, x21-x30/resfunc=threep; equality _alltwop_but_(x9-x10), x11-x25 / parm=[slope] between_gp=[1 2], _allthreep_ / parm=[guess] within_gp=[1 3]; run;

This example is quite similar to the preceding example, but with some modifications from using the BETWEEN_GP and WITHIN_GP options.

The first set of equality constraints is specified exactly the same way as in the preceding example. However, the effect is
much different. In the current multiple-group example, the specification constrains the parameters across groups by default.
This means that the threshold and slope parameters of `x1`

–`x8`

are constrained over the three groups. So there would be 16 sets of equality constraints, respectively, for the 16 parameters
in variables over the three groups. However, if you use the WITHIN_GP option, the parameters for `x1`

–`x8`

are the same within each group. This results in three separate sets of equality constraints on 16 threshold parameters, respectively,
for the three groups. Moreover, if you use the WITHIN_GP and BETWEEN_GP options together, all 48 parameters in the groups
are constrained to be the same.

The second set of equality constraints applies to the slope or discrimination parameters of variables `x11`

–`x25`

across groups 1 and 2 only, but not all groups. This means that there are 15 equality constraints, respectively, for the
15 slope or discrimination parameters in variables across groups 1 and 2. The discrimination parameters for these variables
are not constrained within groups.

The third set of equality constraints applies to the guessing parameters of variables `x21`

–`x30`

(that is, all the variables that are fitted by the three-parameter model) within groups 1 and 3, respectively. The guessing
parameters for these variables are not constrained across groups.