The IRT Procedure

FIXVALUE Statement

  • FIXVALUE  fixed-value-constraint <, fixed-value-constraint …>;

where a fixed-value-constraint is defined as variable-list < / constraint-options > The FIXVALUE statement provides a versatile way to specify fixed value constraints on the parameters in the model. You can specify fixed value constraints on specific sets of parameters for particular sets of variables or factors within a set of groups. In the variable-list, you specify the set of variables that are subject to the fixed value 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), the specific factors (in multidimensional models), and the specific intercepts on which the fixed value constraints are imposed.

For example, the following statements specify that all the slope parameters of x1 through x5 are fixed to 1:

proc irt;
   model x1-x10/resfunc=graded;
   fixvalue x1-x5/parm=[slope] value=[1];
run;

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

_ALL_

specifies all items and factors in the analysis.

_ALLFACTOR_

specifies all latent factors in the analysis.

_ALLFOURP_
_ALLFOURPITEM_

specifies all items that are fit by the four-parameter model in the analysis.

_ALLGPC_
_ALLGPCITEM_

specifies all items that are fit by the generalized partial credit model in the analysis.

_ALLGR_
_ALLGRITEM_

specifies all items that are fit by the graded response model in the analysis.

_ALLITEM_

specifies all items in the analysis.

_ALLNR_
_ALLNRITEM_

specifies all items that are fit by the nominal response model in the analysis.

_ALLONEP_
_ALLONEPITEM_

specifies all items that are fit by the one-parameter model in the analysis.

_ALLRASCH_
_ALLRASCHITEM_

specifies all items that are fit by the Rasch model in the analysis.

_ALLTHREEP_
_ALLTHREEPITEM_

specifies all items that are fit by the three-parameter model in the analysis.

_ALLTWOP_
_ALLTWOPITEM_

specifies all items that are fit by the two-parameter model in the analysis.

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

_ALL_BUT_ [ excluded-variables ]

specifies all items and factors except the excluded-variables in the analysis.

_ALLFACTOR_BUT_ [ excluded-factors ]

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

_ALLFOURP_BUT_ [ excluded-items ]
_ALLFOURPITEM_BUT_ [ excluded-items ]

specifies all items (except the excluded-items) that are fit by the four-parameter model in the analysis.

_ALLGPC_BUT_ [ excluded-items ]
_ALLGPCITEM_BUT_ [ excluded-items ]

specifies all items (except the excluded-items) that are fit by the generalized partial credit model in the analysis.

_ALLGR_BUT_ [ excluded-items ]
_ALLGRITEM_BUT_ [ excluded-items ]

specifies all items (except the excluded-items) that are fit by the graded response model in the analysis.

_ALLITEM_BUT_ [ excluded-items ]

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

_ALLNR_BUT_ [ excluded-items ]
_ALLNRITEM_BUT_ [ excluded-items ]

specifies all items (except the excluded-items) that are fit by the nominal response model in the analysis.

_ALLONEP_BUT_ [ excluded-items ]
_ALLONEPITEM_BUT_ [ excluded-items ]

specifies all items (except the excluded-items) that are fit by the one-parameter model in the analysis.

_ALLRASCH_BUT_ [ excluded-items ]
_ALLRASCHITEM_BUT_ [ excluded-items ]

specifies all items (except the excluded-items) that are fit by the Rasch model in the analysis.

_ALLTHREEP_BUT_ [ excluded-items ]
_ALLTHREEPITEM_BUT_ [ excluded-items ]

specifies all items (except the excluded-items) that are fit by the three-parameter model in the analysis.

_ALLTWOP_BUT_ [ excluded-items ]
_ALLTWOPITEM_BUT_ [ excluded-items ]

specifies all items (except the excluded-items) that are fit by the two-parameter model in the analysis.

For example, if you have mixed model types for the item responses, the fixed value constraints might be set on a particular set of response variables. The following example shows that a fixed value of 1 is applied to the slopes of the variables that are fit by the three-parameter model (that is, x7x10):

proc irt;
   model x1-x6/resfunc=graded,
         x7-x10/resfunc=threep;
   fixvalue _allthreep_/parm=[slope] value=[1];
run;

Suppose that the preceding model does not fit well and you want to consider a less restricted model in which the fixed slope 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;
   fixvalue _allthreep_but_(x10)/parm=[slope] value=[1];
run;

In the constraint-options, you can specify options for parameter types (in the PARM= option), the set of groups (in the GROUP= option), and the set of fixed values (in the VALUE= option). If you do not use these options, all related parameter types, groups, factors, and intercepts are subject to the same fixed-value constraints for the specified set of variables. You can specify the following constraint-options:

GROUP= [ group-list ]
GP= [ group-list ]

specifies the groups to which the fixed-value constraints apply, where group-list is a list of integers or character strings for the group identification. Applying fixed-value constraints to all groups is the default when you fit multiple-group models. When only a subset of groups is subject to the intended constraints, you can specify the groups in the group-list.

PARM= [parameter-types]

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

CEIL
CEILING

constrains the ceiling parameters.

COVARIANCE
COV

constrains the covariance parameters. This option applies only to latent factors; it sets fixed-value constraints for all the covariance parameters among the set of factors that are specified in the variable-list.

GUESS
GUESSING

constrains the guessing parameters.

INTERCEPT < [ integer-list ]>

constrains the intercept parameters. The optional integer-list specifies the set of intercepts to which the fixed-value constraints apply. Suppose there are five items in the model and each has five categories, which means that there are four intercept parameters for each item. In the following example, the first set of constraints in the FIXVALUE statement sets the first intercept parameter to 0 for all the items. The second set of constraints fixes the second and third intercept parameters of item x1 to be –1 and –2.

proc irt;
   var x1-x5;
   fixvalue _allitem_ / parm=[intercept[1]],
            x1 / parm=[intercept[2 3]] value=[-1 -2];
run;

PROC IRT does not support constraints on the difficulty or threshold parameter directly. The intercept parameter is equal to the difficulty or threshold parameter times the negative slope parameter.

MEAN

constrains the mean parameters. This option applies only to latent factors.

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

constrains the slope or discrimination parameters. The optional factor-list or integer-list indicates the set of factors to which the constrained slope parameters apply. factor-list specifies the names of the related factors for the constraint. The use of factor-list is relevant only when you conduct a confirmatory analysis by specifying the factor pattern in the FACTOR statement. The use of integer-list is relevant only with nominal response model.

VARIANCE
VAR

constrains the variance parameters. This option applies only to latent factors.

VALUE= [value-list]

specifies a list of values in the value-list for the fixed-value constraints. By default, the value-list contains a single 0. If only one value is specified in value-list, this value applies to all the parameters in the constraint. If more values are specified in value-list than the number of parameters, extra values are ignored. If you specify more than one value in the value-list but there are fewer values in the list than the number of parameters, the extra parameters are fixed to 0.

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 FIXVALUE statement. You can even use multiple FIXVALUE 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;
   fixvalue _alltwop_but_(x9-x10)/parm=[intercept],
            x11-x25 / parm=[slope] value=[1],
            _allthreep_ / parm=[guess] value=[0.1];
run;

In the FIXVALUE statement, the first set of constraints fixes the intercept parameters of x1x8 to 0, leaving the parameters of x9 and x10 to be freely estimated. The second set of constraints fixes the slope parameters of variables x11x25 to 1, even though x21x25 have a different model type than x11x20 have. The third set of constraints fixes the guessing parameters to 0.1 for all variables that are fit by the three-parameter model (that is, x21x30).

In multiple-group analysis, constraints are applied to all groups by default. 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;
   fixvalue _alltwop_but_(x9-x10)/parm=[intercept],
         x11-x25 / parm=[slope] value=[1] group=[1 2],
         _allthreep_ / parm=[guess] value=[0.1] group=[1 3];
run;

This example is similar to the preceding example, but with some modifications from using the GROUP= options.

The first set of fixed-value constraints is specified exactly the same way as in the preceding example. In the current multiple-group example, the fixed value 0 applies to the intercept parameters of x1–x8 in all three groups.

The second set of constraints fixes the slope or discrimination parameters of variables x11x25 to 1 for groups 1 and 2 only (not all groups).

The third set of constraints fixes the guessing parameters of variables x21x30 (that is, all the variables that are fit by the three-parameter model) to 0.1 for groups 1 and 3.

Last updated: December 09, 2022