### EQUALITY Statement

`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;
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;
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:

_ALL_
_ALLITEM_

specifies all variables in the analysis.

_ALLONEP_
_ALLONEPITEM_

specifies all variables that are fitted by the one-parameter model in the analysis.

_ALLTWOP_
_ALLTWOPITEM_

specifies all variables that are fitted by the two-parameter model in the analysis.

_ALLTHREEP_
_ALLTHREEPITEM_

specifies all variables that are fitted by the three-parameter model in the analysis.

_ALLFOURP_
_ALLFOURPITEM_

specifies all variables that are fitted by the four-parameter model in the analysis.

_ALLGR_
_ALLGRITEM_

specifies all variables that are fitted by the graded response model in the analysis.

_ALLRASCH_
_ALLRASCHITEM_

specifies all variables that are fitted by the Rasch model in the analysis.

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

_ALL_BUT_ [excluded-variables]
_ALLITEM_BUT_ [excluded-variables]

specifies all variables except the excluded-variables in the analysis.

_ALLONEP_BUT_ [ excluded-variables ]
_ALLONEPITEM_BUT_ [ excluded-variables ]

specifies all variables except the excluded-variables that are fitted by the one-parameter model in the analysis.

_ALLTWOP_BUT_ [ excluded-variables ]
_ALLTWOPITEM_BUT_[ excluded-variables ]

specifies all variables except the excluded-variables that are fitted by the two-parameter model in the analysis.

_ALLTHREEP_BUT_ [ excluded-variables ]
_ALLTHREEPITEM_BUT_ [ excluded-variables ]

specifies all variables except the excluded-variables that are fitted by the three-parameter model in the analysis.

_ALLFOURP_BUT_ [ excluded-variables ]
_ALLFOURPITEM_BUT_ [ excluded-variables ]

specifies all variables except the excluded-variables that are fitted by the four-parameter model in the analysis.

_ALLGR_BUT_ [ excluded-variables ]
_ALLGRITEM_BUT_ [ excluded-variables ]

specifies all variables except the excluded-variables that are fitted by the graded response model in the analysis.

_ALLRASCH_BUT_ [ excluded-variables ]
_ALLRASCHITEM_BUT_ [ excluded-variables ]

specifies all variables except the excluded-variables that are fitted by the Rasch model in the analysis.

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;
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;
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:

BET < = [ group-list ] >
BETWEEN < = [ group-list ] >
BETWEEN_GP < = [ group-list ] >

specifies that the equality constraints be applied across or between groups in the multiple-group analysis. Setting between-group constraints is the default when you fit multiple-group models. Hence, it is not necessary to use this option when you want to set equality constraints between all groups. When only a subset of groups is subject to the intended constraints, you can specify the groups in the group-list. This option has no effect if you have only one group in the analysis.

PARM < = [parameter-types] >

specifies the particular types of parameters that are subject to equality constraints. By default, all related parameters are subject to the constraints. You can specify the following parameter-types:

CEIL
CEILING

indicates that the ceiling parameters are constrained.

GUESS
GUESSING

indicates that the guessing parameters are constrained.

INTERCEPT
THRESHOLD

indicates that the intercept or threshold parameters are constrained.

SLOPE<[ factor-list ]>
DISCRIMINATION <[ factor-list ]>

indicates that the slope or discrimination parameters are constrained. The optional factor-list indicates the set of factors to which the constrained slope parameters pertain. The use of factor-list is relevant only when you conduct a confirmatory analysis by specifying the factor pattern in the FACTOR statement.

WIT < = [ group-list ]>
WITHIN < = [ group-list ]>
WITHIN_GP< = [ group-list ]>

specifies that the equality constraints be applied within groups in multiple-group analyses. Setting within-group constraints is the default when you fit a single-group model. Hence, this option is not necessary when you have only one group in the analysis. In multiple-group analyses, between-group constraints are set by default. When you specify this option, within-group constraints are set instead of between-group constraints. You can also specify the specific groups in the group-list that are subject to the within-group constraints. The default is to apply the equality constraints to all groups.

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;
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,
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.