EQUALITY | EQCON equality-constraint <, equality-constraint …>;
where a equality-constraint 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 supported 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. These equality constraints apply to the same type of parameters among variables specified in the variable-list.
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 fit 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. Because equality constraints specified in the EQUALITY statement apply to parameters among variables rather than within variables, parameters within each variable are different. For example, if each of these variables has five categories, there would be five set of constraints for the slope parameter and for each of the four intercept 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;
If the set of parameters of the same type in the equality-constraint contains fixed-value parameters that have the same value, all the parameters in this set are fixed to the same value. If these fixed-value parameters have different values, PROC IRT returns an error message and stops. If the set of parameters contains model-restricted parameters that are specified in the FACTOR statement, these model-restricted parameters are ignored and the equality constraint applies to all the other parameters in the set.
In the following example, the FACTOR statement specifies a simple structure model that has two factors, where x1 to x5 load on the first factor f, x6 to x10 load on the second factor g, and the slope parameter of x6 on factor g is fixed to 1.
proc irt;
factor f->x1-x5, g->x6-x10=1;
equality x1-x10;
run;
The EQUALITY statement constrains all the parameters among x1 to x10 to be the same. Because the loading parameters of x1 to x5 on factor g and the loading parameters of x6 to x10 on factor f are model-restricted parameters, they are excluded from the constraints that are specified in the EQUALITY statement. Three sets of constrained parameters are specified in this example:
The intercept parameters of x1 to x10 are the same.
The slope (loading) parameters of x1 to x5 on factor f are the same.
The slope (loading) parameters of x6 to x10 on factor g are the same. Because the slope parameter of x6 on factor g is fixed to 1, this set of parameters (that is, the slopes that are related to factor g) are all fixed to 1.
There are various ways to specify the target set of variables that are subject to the equality constraints. You can specify the variables directly, or you can specify one of the following keywords for 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 fit 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 intercept 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 fit 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 intercept 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 intercept 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 fit by the three-parameter model) within groups 1 and 3, respectively. The guessing parameters for these variables are not constrained across groups.