The IRT Procedure

Example 66.2 Multidimensional Exploratory and Confirmatory IRT Models

(View the complete code for this example.)

This example illustrates how to use the IRT procedure to fit multidimensional exploratory and confirmatory IRT models. The data set that is introduced in Example 66.1 is also used here. Two more items, item9 and item10, are added to the data set. These two items are designed to measure subjects’ satisfaction with their friendships and their family life, respectively.

data IrtMulti;
   input item1-item10 @@;
   datalines;
1 0 0 0 1 1 2 1 2 1 1 1 1 1 1 3 3 3 3 3 0 1 0 0 1 1 1 1 1 1 1 0 0 1 0
1 2 3 2 2 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 1 3 3 1 2 0 0 0 0 0 1 1 3 3 2
0 0 1 0 0 1 2 2 3 2 0 1 0 0 1 1 1 2 2 2 0 0 0 0 0 2 2 3 3 2 0 1 0 1 0
2 3 3 3 3 0 0 1 0 1 1 2 3 2 3 1 1 1 1 1 2 2 3 2 2 0 0 0 0 1 1 2 2 3 1
1 0 1 1 1 2 3 3 2 3 0 1 0 0 1 1 2 3 3 3 1 0 1 1 1 2 3 3 3 3 0 1 0 1 1
3 2 3 3 2 1 1 1 0 0 1 3 3 2 1 1 1 0 0 1 2 3 3 3 3 0 1 1 1 1 1 2 1 2 3
1 0 0 1 1 3 1 1 1 1 1 0 0 0 1 1 1 3 3 1 0 0 0 0 1 1 3 3 3 3 0 0 0 0 0
1 1 1 3 2 1 0 0 0 0 1 3 3 3 3 1 1 0 1 1 3 1 1 3 3 1 0 1 1 1 1 3 1 1 1

   ... more lines ...   

3 3 1 3 2 0 0 0 1 0 1 3 2 2 1 0 0 0 0 1 1 2 2 2 3 1 0 1 0 1 2 2 3 2 1
1 0 0 1 1 1 2 2 3 1 0 1 0 1 0 1 3 1 1 1 0 1 1 0 1 3 3 3 3 2 1 0 1 0 0
1 2 1 1 1 1 0 1 1 0 1 3 3 1 3 1 1 0 1 0 2 2 2 2 3 1 1 0 1 1 3 2 3 2 2
0 0 0 1 0 2 2 3 1 2 0 0 0 1 0 2 3 3 3 2 0 1 0 0 1 2 2 1 2 1
;

Now, suppose that previous research results suggest that two latent factors underlie these 10 items. However, knowledge about the factor structure is very limited. The first step you can take is to fit an exploratory IRT model by using two factors. This can be accomplished easily by submitting the following statements:

ods graphics on;
proc irt data=IrtMulti nfactor=2 plots=scree;
   var item1-item10;
run;

The first table that you want to check is the "Eigenvalue" table, shown in Output 66.2.1. There are only two eigenvalues greater than 1 in this example. This result, to some extent, suggests that two factors might be enough in this example. Output 66.2.2 include the scree and variance explained plots.

Output 66.2.1: Eigenvalues of the Polychoric Correlation matrix

The IRT Procedure

Eigenvalues of the Polychoric Correlation Matrix
 EigenvalueDifferenceProportionCumulative
13.657504312.478831170.36580.3658
21.178673140.237381370.11790.4836
30.941291770.046723990.09410.5777
40.894567780.075083080.08950.6672
50.819484710.147743200.08190.7492
60.671741510.120812030.06720.8163
70.550929480.016983000.05510.8714
80.533946480.086472300.05340.9248
90.447474180.143087530.04470.9696
100.30438664 0.03041.0000


Output 66.2.2: Scree and Variance Explained Plots

 Scree and Variance Explained Plots


If the optimization algorithm converges successfully, the original and rotated slope matrices are produced. The default rotation method is varimax. You can use the ROTATE= option in the PROC IRT statement to specify a different rotation method.

Output 66.2.3: Slope Matrix

Rotated Slope Matrix
 _Factor1_Factor2
item11.873280.63493
item21.719330.56361
item31.296000.54150
item40.748830.36353
item50.410130.63816
item60.440240.39946
item70.686561.18510
item80.740201.97272
item90.401981.26214
item100.400471.26491


This example uses the default varimax rotation. Output 66.2.3 shows the rotated slope matrices. The rotated slope matrix is displayed in the standard matrix format. From the rotated slope matrix, you can see that the first factor is mainly reflected by item1 to item4 and item6, and the second factor is mainly reflected by the rest of the items. The exploratory results suggest a hypothesis about the factor structure of the items. In practice, you might want to confirm this structure by a confirmatory analysis of the new data. However, for illustration purposes, the same data set is used here to demonstrate the confirmatory model fitting by using the following statements:

proc irt data=IrtMulti;
   var item1-item4 item6 item5 item7-item10;
   factor  Factor1->item1-item4 item6,
           Factor2->item5 item7-item10;
run;

Output 66.2.5 and Output 66.2.4 show the model fit statistics for the confirmatory model and the exploratory model, respectively. Output 66.2.6 shows the slope matrix from this confirmatory analysis. Because the number of response patterns in the data set, 500, is much lower than the total number of possible response patterns, , you cannot use Pearson’s chi-square or the likelihood ratio statistic to test the overall fit of the confirmatory model.

If you have two nested models, you can still use the likelihood ratio statistic to test the difference between these two models. For illustration purposes, assume that the exploratory model and the confirmatory model are two independent models. Because the confirmatory model is nested within the exploratory model, you can use the likelihood ratio test to compare the two models. The likelihood ratio test statistic is 132.4. The degree of freedom is 9. The corresponding p-value is 0, which suggests that the difference between these two models is significant. There are many options that you can use to improve the model fit. For this example, you can try to free some of the fixed slope parameters or free the covariance between the factors.

Output 66.2.4: Model Fit Statistics for Exploratory Model

The IRT Procedure

Model Fit Statistics
Log Likelihood-3921.316112
AIC (Smaller is Better)7910.6322244
BIC (Smaller is Better)8053.9288997
LR Chi-Square1898.3368937
LR Chi-Square DF7741


Output 66.2.5: Model Fit Statistics for Confirmatory Model

The IRT Procedure

Model Fit Statistics
Log Likelihood-4126.854963
AIC (Smaller is Better)8303.709927
BIC (Smaller is Better)8409.0751295
LR Chi-Square2309.4145963
LR Chi-Square DF7750


Output 66.2.6: Slope Matrix

Slope Matrix Estimate/StdErr/p-value
 Factor1Factor2
item1
2.03252
0.40958
<.00001
0.00000
 
 
item2
1.77531
0.32638
<.00001
0.00000
 
 
item3
1.35921
0.22797
<.00001
0.00000
 
 
item4
0.80419
0.15626
<.00001
0.00000
 
 
item6
0.55163
0.12128
<.00001
0.00000
 
 
item5
0.00000
 
 
0.73736
0.13901
<.00001
item7
0.00000
 
 
1.33310
0.17340
<.00001
item8
0.00000
 
 
2.14117
0.31840
<.00001
item9
0.00000
 
 
1.29816
0.16674
<.00001
item10
0.00000
 
 
1.30773
0.17013
<.00001