The IRT Procedure

Example 65.2 Multidimensional Exploratory and Confirmatory IRT Models

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 65.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 65.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 65.2.2 include the scree and variance explained plots.

Output 65.2.1: Eigenvalues of the Polychoric Correlation matrix

The IRT Procedure

Eigenvalues of the Polychoric Correlation Matrix
  Eigenvalue Difference Proportion Cumulative
1 3.65750431 2.47883117 0.3658 0.3658
2 1.17867314 0.23738137 0.1179 0.4836
3 0.94129177 0.04672399 0.0941 0.5777
4 0.89456778 0.07508308 0.0895 0.6672
5 0.81948471 0.14774320 0.0819 0.7492
6 0.67174151 0.12081203 0.0672 0.8163
7 0.55092948 0.01698300 0.0551 0.8714
8 0.53394648 0.08647230 0.0534 0.9248
9 0.44747418 0.14308753 0.0447 0.9696
10 0.30438664   0.0304 1.0000



Output 65.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 65.2.3: Slope Matrix

Rotated Slope Matrix
  _Factor1 _Factor2
item1 1.87508 0.63440
item2 1.71856 0.56393
item3 1.29605 0.54177
item4 0.74922 0.36337
item5 0.41024 0.63822
item6 0.44033 0.39976
item7 0.68677 1.18570
item8 0.74078 1.97550
item9 0.40199 1.26327
item10 0.40072 1.26552



This example uses the default varimax rotation. Output 65.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 65.2.5 and Output 65.2.4 show the model fit statistics for the confirmatory model and the exploratory model, respectively. Output 65.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, $2^5 \times 3^5=7,776$, 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 65.2.4: Model Fit Statistics for Exploratory Model

The IRT Procedure

Model Fit Statistics
Log Likelihood -3921.126181
AIC (Smaller is Better) 7910.2523628
BIC (Smaller is Better) 8053.5490382
LR Chi-Square 1897.9570322
LR Chi-Square DF 7741



Output 65.2.5: Model Fit Statistics for Confirmatory Model

The IRT Procedure

Model Fit Statistics
Log Likelihood -4126.853269
AIC (Smaller is Better) 8303.7065383
BIC (Smaller is Better) 8409.0717408
LR Chi-Square 2309.4112078
LR Chi-Square DF 7750



Output 65.2.6: Slope Matrix

Slope Matrix Estimate/StdErr/p-value
  Factor1 Factor2
item1
2.03378
0.41059
<.00001
0.00000
 
 
item2
1.77557
0.32656
<.00001
0.00000
 
 
item3
1.35910
0.22796
<.00001
0.00000
 
 
item4
0.80427
0.15627
<.00001
0.00000
 
 
item6
0.55166
0.12128
<.00001
0.00000
 
 
item5
0.00000
 
 
0.73738
0.13901
<.00001
item7
0.00000
 
 
1.33303
0.17339
<.00001
item8
0.00000
 
 
2.14135
0.31847
<.00001
item9
0.00000
 
 
1.29833
0.16676
<.00001
item10
0.00000
 
 
1.30784
0.17014
<.00001