IRT for Binary Data
The IRT() function estimates item parameters using
logistic models. It supports 2PL, 3PL, and 4PL models via the
model option.
result.IRT <- IRT(J15S500, model = 3)
result.IRT
#> Item Parameters
#> slope location lowerAsym PSD(slope) PSD(location) PSD(lowerAsym)
#> Item01 0.818 -0.834 0.2804 0.182 0.628 0.1702
#> Item02 0.860 -1.119 0.1852 0.157 0.471 0.1488
#> Item03 0.657 -0.699 0.3048 0.162 0.798 0.1728
#> Item04 1.550 -0.949 0.1442 0.227 0.216 0.1044
#> Item05 0.721 -1.558 0.2584 0.148 0.700 0.1860
#> Item06 1.022 -1.876 0.1827 0.171 0.423 0.1577
#> Item07 1.255 -0.656 0.1792 0.214 0.289 0.1165
#> Item08 0.748 -0.155 0.1308 0.148 0.394 0.1077
#> Item09 1.178 2.287 0.2930 0.493 0.423 0.0440
#> Item10 0.546 -0.505 0.2221 0.131 0.779 0.1562
#> Item11 1.477 1.089 0.0628 0.264 0.120 0.0320
#> Item12 1.480 1.085 0.0462 0.245 0.115 0.0276
#> Item13 0.898 -0.502 0.0960 0.142 0.272 0.0858
#> Item14 1.418 -0.787 0.2261 0.248 0.291 0.1252
#> Item15 0.908 -0.812 0.1531 0.159 0.383 0.1254
#>
#> Item Fit Indices
#> model_log_like bench_log_like null_log_like model_Chi_sq null_Chi_sq
#> Item01 -262.979 -240.190 -283.343 45.579 86.307
#> Item02 -253.406 -235.436 -278.949 35.938 87.025
#> Item03 -280.642 -260.906 -293.598 39.471 65.383
#> Item04 -204.877 -192.072 -265.962 25.611 147.780
#> Item05 -232.138 -206.537 -247.403 51.201 81.732
#> Item06 -173.672 -153.940 -198.817 39.464 89.755
#> Item07 -250.908 -228.379 -298.345 45.058 139.933
#> Item08 -314.782 -293.225 -338.789 43.113 91.127
#> Item09 -321.919 -300.492 -327.842 42.852 54.700
#> Item10 -309.319 -288.198 -319.850 42.241 63.303
#> Item11 -248.385 -224.085 -299.265 48.600 150.360
#> Item12 -238.856 -214.797 -293.598 48.119 157.603
#> Item13 -293.478 -262.031 -328.396 62.895 132.730
#> Item14 -223.471 -204.953 -273.212 37.036 136.519
#> Item15 -271.905 -254.764 -302.847 34.282 96.166
#> model_df null_df NFI RFI IFI TLI CFI RMSEA AIC CAIC
#> Item01 11 13 0.472 0.376 0.541 0.443 0.528 0.079 23.579 -33.781
#> Item02 11 13 0.587 0.512 0.672 0.602 0.663 0.067 13.938 -43.422
#> Item03 11 13 0.396 0.287 0.476 0.358 0.456 0.072 17.471 -39.890
#> Item04 11 13 0.827 0.795 0.893 0.872 0.892 0.052 3.611 -53.750
#> Item05 11 13 0.374 0.260 0.432 0.309 0.415 0.086 29.201 -28.159
#> Item06 11 13 0.560 0.480 0.639 0.562 0.629 0.072 17.464 -39.897
#> Item07 11 13 0.678 0.619 0.736 0.683 0.732 0.079 23.058 -34.303
#> Item08 11 13 0.527 0.441 0.599 0.514 0.589 0.076 21.113 -36.248
#> Item09 11 13 0.217 0.074 0.271 0.097 0.236 0.076 20.852 -36.508
#> Item10 11 13 0.333 0.211 0.403 0.266 0.379 0.075 20.241 -37.119
#> Item11 11 13 0.677 0.618 0.730 0.676 0.726 0.083 26.600 -30.761
#> Item12 11 13 0.695 0.639 0.747 0.697 0.743 0.082 26.119 -31.241
#> Item13 11 13 0.526 0.440 0.574 0.488 0.567 0.097 40.895 -16.466
#> Item14 11 13 0.729 0.679 0.793 0.751 0.789 0.069 15.036 -42.324
#> Item15 11 13 0.644 0.579 0.727 0.669 0.720 0.065 12.282 -45.079
#> BIC
#> Item01 -22.781
#> Item02 -32.422
#> Item03 -28.890
#> Item04 -42.750
#> Item05 -17.159
#> Item06 -28.897
#> Item07 -23.303
#> Item08 -25.248
#> Item09 -25.508
#> Item10 -26.119
#> Item11 -19.761
#> Item12 -20.241
#> Item13 -5.466
#> Item14 -31.324
#> Item15 -34.079
#>
#> Model Fit Indices
#> value
#> model_log_like -3880.735
#> bench_log_like -3560.005
#> null_log_like -4350.217
#> model_Chi_sq 641.461
#> null_Chi_sq 1580.424
#> model_df 165.000
#> null_df 195.000
#> NFI 0.594
#> RFI 0.520
#> IFI 0.663
#> TLI 0.594
#> CFI 0.656
#> RMSEA 0.076
#> AIC 311.461
#> CAIC -548.950
#> BIC -383.950The estimated ability parameters for each examinee are included in the returned object:
head(result.IRT$ability)
#> ID EAP PSD
#> Student001 Student001 -0.75534105 0.5806086
#> Student002 Student002 -0.17403350 0.5472973
#> Student003 Student003 0.01379172 0.5529872
#> Student004 Student004 0.57628083 0.5748167
#> Student005 Student005 -0.97438596 0.5915842
#> Student006 Student006 0.85229553 0.5819544Plot Types
IRT provides several plot types:
- IRF: Item Response Function (Item Characteristic Curves)
- IIC: Item Information Curves
- TRF: Test Response Function
- TIC: Test Information Curve
Items can be specified using the items argument. The
layout is controlled by nr (rows) and nc
(columns).
plot(result.IRT, type = "IRF", items = 1:6, nc = 2, nr = 3)
plot(result.IRT, type = "IRF", overlay = TRUE)
plot(result.IRT, type = "IIC", items = 1:6, nc = 2, nr = 3)
plot(result.IRT, type = "TRF")
plot(result.IRT, type = "TIC")
GRM: Graded Response Model
The Graded Response Model (Samejima, 1969) extends IRT to polytomous
response data. It can be applied using the GRM()
function.
result.GRM <- GRM(J5S1000)
result.GRM
#> Item Parameter
#> Slope Threshold1 Threshold2 Threshold3
#> V1 0.928 -1.662 0.0551 1.65
#> V2 1.234 -0.984 1.1297 NA
#> V3 0.917 -1.747 -0.0826 1.39
#> V4 1.479 -0.971 0.8901 NA
#> V5 0.947 -1.449 0.0302 1.62
#>
#> Item Fit Indices
#> model_log_like bench_log_like null_log_like model_Chi_sq null_Chi_sq model_df
#> 1 -1205.374 -1086.461 -1363.667 237.827 554.411 41
#> 2 -815.895 -840.063 -1048.636 -48.336 417.145 27
#> 3 -1216.143 -1096.756 -1373.799 238.773 554.085 41
#> 4 -747.724 -819.597 -1062.099 -143.747 485.003 27
#> 5 -1211.561 -1096.132 -1377.883 230.856 563.502 41
#> null_df NFI RFI IFI TLI CFI RMSEA AIC CAIC BIC
#> 1 42 0.571 0.561 0.617 0.607 0.616 0.069 155.827 -86.391 -45.391
#> 2 28 1.000 1.000 1.000 1.000 1.000 0.000 -102.336 -261.846 -234.846
#> 3 42 0.569 0.559 0.615 0.604 0.614 0.069 156.773 -85.445 -44.445
#> 4 28 1.000 1.000 1.000 1.000 1.000 0.000 -197.747 -357.257 -330.257
#> 5 42 0.590 0.580 0.637 0.627 0.636 0.068 148.856 -93.362 -52.362
#>
#> Model Fit Indices
#> value
#> model_log_like -5196.696
#> bench_log_like -4939.010
#> null_log_like -6226.083
#> model_Chi_sq 515.372
#> null_Chi_sq 2574.146
#> model_df 177.000
#> null_df 182.000
#> NFI 0.800
#> RFI 0.794
#> IFI 0.859
#> TLI 0.855
#> CFI 0.859
#> RMSEA 0.044
#> AIC 161.372
#> CAIC -884.301
#> BIC -707.301GRM supports similar plot types as IRT:
plot(result.GRM, type = "IRF", nc = 2)
plot(result.GRM, type = "IIF", nc = 2)


plot(result.GRM, type = "TIF")
