ltm models with mirt

ltm models with mirt

ltm is an IRT package which predates the release of mirt by several years, and is capable of performing IRT analyses primarily for unidimensional models. This vignette demonstrates how equivalent analyses in ltm can be run performed in mirt.

Dichotomous data

library(ltm)
## Loading required package: MASS
## Loading required package: msm
## Loading required package: polycor
## 
## Attaching package: 'ltm'
## The following object is masked from 'package:mirt':
## 
##     Science
library(mirt)
dat <- key2binary(SAT12,
    key = c(1,4,5,2,3,1,2,1,3,1,2,4,2,1,5,3,4,4,1,4,3,3,4,1,3,5,1,3,1,5,4,5))
head(dat)
##      Item.1 Item.2 Item.3 Item.4 Item.5 Item.6 Item.7 Item.8 Item.9 Item.10
## [1,]      1      1      1      1      1      1      1      1      1       1
## [2,]      0      1      0      0      1      0      1      0      1       1
## [3,]      1      1      1      0      1      0      1      0      1       0
## [4,]      0      1      0      1      1      0      1      0      1       0
## [5,]      0      1      1      1      1      0      1      1      0       0
## [6,]      1      1      0      0      1      0      1      0      1       1
##      Item.11 Item.12 Item.13 Item.14 Item.15 Item.16 Item.17 Item.18 Item.19
## [1,]       1       1       1       1       1       1       1       1       1
## [2,]       1       0       1       1       1       0       1       0       1
## [3,]       1       0       0       1       1       0       1       0       0
## [4,]       1       1       1       1       1       0       1       0       0
## [5,]       1       1       1       1       1       0       1       0       1
## [6,]       1       0       1       1       1       0       1       1       1
##      Item.20 Item.21 Item.22 Item.23 Item.24 Item.25 Item.26 Item.27 Item.28
## [1,]       1       1       1       1       1       1       1       1       1
## [2,]       1       1       1       0       1       0       0       1       0
## [3,]       1       1       1       0       1       1       0       1       1
## [4,]       1       1       0       0       0       0       0       1       1
## [5,]       1       1       1       0       1       0       1       1       1
## [6,]       1       1       1       1       1       0       0       1       0
##      Item.29 Item.30 Item.31 Item.32
## [1,]       1       1       1       1
## [2,]       0       0       1       0
## [3,]       0       0       1       0
## [4,]       0       0       1       0
## [5,]       1       0       1       0
## [6,]       0       0       1       0

1PL, 2PL, and 3PL model

1PL model

#ltm
(lmod1 <- ltm::rasch(dat, IRT.param = FALSE))
## 
## Call:
## ltm::rasch(data = dat, IRT.param = FALSE)
## 
## Coefficients:
##  Item.1   Item.2   Item.3   Item.4   Item.5   Item.6   Item.7   Item.8  
##  -1.077    0.332   -1.096   -0.573    0.582   -1.912    1.342   -1.592  
##  Item.9  Item.10  Item.11  Item.12  Item.13  Item.14  Item.15  Item.16  
##   2.324   -0.361    4.448   -0.394    0.791    1.125    1.725   -0.401  
## Item.17  Item.18  Item.19  Item.20  Item.21  Item.22  Item.23  Item.24  
##   3.620   -0.708    0.237    2.205    2.685    2.992   -0.910    1.153  
## Item.25  Item.26  Item.27  Item.28  Item.29  Item.30  Item.31  Item.32  
##  -0.590   -0.178    2.094    0.150   -0.768   -0.273    1.853   -1.898  
##       z  
##   0.906  
## 
## Log.Lik: -9643.437
summary(lmod1)
## 
## Call:
## ltm::rasch(data = dat, IRT.param = FALSE)
## 
## Model Summary:
##    log.Lik      AIC      BIC
##  -9643.437 19352.87 19497.97
## 
## Coefficients:
##         value std.err   z.vals
## Itm.1 -1.0767  0.1046 -10.2984
## Itm.2  0.3322  0.0965   3.4426
## Itm.3 -1.0958  0.1049 -10.4502
## Itm.4 -0.5732  0.0984  -5.8237
## Itm.5  0.5818  0.0980   5.9375
## Itm.6 -1.9120  0.1243 -15.3823
## Itm.7  1.3421  0.1085  12.3741
## Itm.8 -1.5921  0.1151 -13.8262
## Itm.9  2.3242  0.1388  16.7482
## It.10 -0.3612  0.0969  -3.7255
## It.11  4.4481  0.3241  13.7243
## It.12 -0.3936  0.0971  -4.0518
## It.13  0.7914  0.0999   7.9184
## It.14  1.1247  0.1045  10.7642
## It.15  1.7245  0.1177  14.6570
## It.16 -0.4014  0.0972  -4.1305
## It.17  3.6199  0.2246  16.1166
## It.18 -0.7081  0.0997  -7.1034
## It.19  0.2370  0.0962   2.4639
## It.20  2.2051  0.1338  16.4753
## It.21  2.6847  0.1563  17.1777
## It.22  2.9919  0.1747  17.1263
## It.23 -0.9100  0.1021  -8.9133
## It.24  1.1533  0.1050  10.9881
## It.25 -0.5899  0.0986  -5.9851
## It.26 -0.1782  0.0962  -1.8523
## It.27  2.0942  0.1296  16.1594
## It.28  0.1505  0.0960   1.5676
## It.29 -0.7685  0.1003  -7.6586
## It.30 -0.2733  0.0965  -2.8313
## It.31  1.8527  0.1214  15.2569
## It.32 -1.8981  0.1239 -15.3249
## z      0.9059  0.0351  25.8081
## 
## Integration:
## method: Gauss-Hermite
## quadrature points: 21 
## 
## Optimization:
## Convergence: 0 
## max(|grad|): 0.15 
## quasi-Newton: BFGS
#mirt
model <- mirt.model('Theta = 1-32
              CONSTRAIN = (1-32, a1)')
(mmod1 <- mirt::mirt(dat, model, SE=TRUE, verbose=FALSE))
## 
## Call:
## mirt::mirt(data = dat, model = model, SE = TRUE, verbose = FALSE)
## 
## Full-information item factor analysis with 1 factor(s).
## Converged within 1e-04 tolerance after 12 EM iterations.
## mirt version: 1.39.4 
## M-step optimizer: BFGS 
## EM acceleration: Ramsay 
## Number of rectangular quadrature: 61
## Latent density type: Gaussian 
## 
## Information matrix estimated with method: Oakes
## Second-order test: model is a possible local maximum
## Condition number of information matrix =  92.51659
## 
## Log-likelihood = -9643.47
## Estimated parameters: 64 
## AIC = 19352.94
## BIC = 19498.04; SABIC = 19393.27
## G2 (4294967262) = 11617.22, p = 1
## RMSEA = 0, CFI = NaN, TLI = NaN
coef(mmod1, simplify=TRUE)
## $items
##            a1      d g u
## Item.1  0.905 -1.078 0 1
## Item.2  0.905  0.331 0 1
## Item.3  0.905 -1.097 0 1
## Item.4  0.905 -0.574 0 1
## Item.5  0.905  0.581 0 1
## Item.6  0.905 -1.913 0 1
## Item.7  0.905  1.341 0 1
## Item.8  0.905 -1.593 0 1
## Item.9  0.905  2.323 0 1
## Item.10 0.905 -0.362 0 1
## Item.11 0.905  4.447 0 1
## Item.12 0.905 -0.394 0 1
## Item.13 0.905  0.790 0 1
## Item.14 0.905  1.124 0 1
## Item.15 0.905  1.723 0 1
## Item.16 0.905 -0.402 0 1
## Item.17 0.905  3.618 0 1
## Item.18 0.905 -0.709 0 1
## Item.19 0.905  0.236 0 1
## Item.20 0.905  2.204 0 1
## Item.21 0.905  2.683 0 1
## Item.22 0.905  2.990 0 1
## Item.23 0.905 -0.911 0 1
## Item.24 0.905  1.152 0 1
## Item.25 0.905 -0.591 0 1
## Item.26 0.905 -0.179 0 1
## Item.27 0.905  2.093 0 1
## Item.28 0.905  0.150 0 1
## Item.29 0.905 -0.769 0 1
## Item.30 0.905 -0.274 0 1
## Item.31 0.905  1.851 0 1
## Item.32 0.905 -1.899 0 1
## 
## $means
## Theta 
##     0 
## 
## $cov
##       Theta
## Theta     1
coef(mmod1, printSE=TRUE)
## $Item.1
##        a1      d logit(g) logit(u)
## par 0.905 -1.078     -999      999
## SE  0.035  0.105       NA       NA
## 
## $Item.2
##        a1     d logit(g) logit(u)
## par 0.905 0.331     -999      999
## SE  0.035 0.097       NA       NA
## 
## $Item.3
##        a1      d logit(g) logit(u)
## par 0.905 -1.097     -999      999
## SE  0.035  0.105       NA       NA
## 
## $Item.4
##        a1      d logit(g) logit(u)
## par 0.905 -0.574     -999      999
## SE  0.035  0.098       NA       NA
## 
## $Item.5
##        a1     d logit(g) logit(u)
## par 0.905 0.581     -999      999
## SE  0.035 0.098       NA       NA
## 
## $Item.6
##        a1      d logit(g) logit(u)
## par 0.905 -1.913     -999      999
## SE  0.035  0.124       NA       NA
## 
## $Item.7
##        a1     d logit(g) logit(u)
## par 0.905 1.341     -999      999
## SE  0.035 0.108       NA       NA
## 
## $Item.8
##        a1      d logit(g) logit(u)
## par 0.905 -1.593     -999      999
## SE  0.035  0.115       NA       NA
## 
## $Item.9
##        a1     d logit(g) logit(u)
## par 0.905 2.323     -999      999
## SE  0.035 0.139       NA       NA
## 
## $Item.10
##        a1      d logit(g) logit(u)
## par 0.905 -0.362     -999      999
## SE  0.035  0.097       NA       NA
## 
## $Item.11
##        a1     d logit(g) logit(u)
## par 0.905 4.447     -999      999
## SE  0.035 0.324       NA       NA
## 
## $Item.12
##        a1      d logit(g) logit(u)
## par 0.905 -0.394     -999      999
## SE  0.035  0.097       NA       NA
## 
## $Item.13
##        a1    d logit(g) logit(u)
## par 0.905 0.79     -999      999
## SE  0.035 0.10       NA       NA
## 
## $Item.14
##        a1     d logit(g) logit(u)
## par 0.905 1.124     -999      999
## SE  0.035 0.104       NA       NA
## 
## $Item.15
##        a1     d logit(g) logit(u)
## par 0.905 1.723     -999      999
## SE  0.035 0.118       NA       NA
## 
## $Item.16
##        a1      d logit(g) logit(u)
## par 0.905 -0.402     -999      999
## SE  0.035  0.097       NA       NA
## 
## $Item.17
##        a1     d logit(g) logit(u)
## par 0.905 3.618     -999      999
## SE  0.035 0.225       NA       NA
## 
## $Item.18
##        a1      d logit(g) logit(u)
## par 0.905 -0.709     -999      999
## SE  0.035  0.100       NA       NA
## 
## $Item.19
##        a1     d logit(g) logit(u)
## par 0.905 0.236     -999      999
## SE  0.035 0.096       NA       NA
## 
## $Item.20
##        a1     d logit(g) logit(u)
## par 0.905 2.204     -999      999
## SE  0.035 0.134       NA       NA
## 
## $Item.21
##        a1     d logit(g) logit(u)
## par 0.905 2.683     -999      999
## SE  0.035 0.156       NA       NA
## 
## $Item.22
##        a1     d logit(g) logit(u)
## par 0.905 2.990     -999      999
## SE  0.035 0.175       NA       NA
## 
## $Item.23
##        a1      d logit(g) logit(u)
## par 0.905 -0.911     -999      999
## SE  0.035  0.102       NA       NA
## 
## $Item.24
##        a1     d logit(g) logit(u)
## par 0.905 1.152     -999      999
## SE  0.035 0.105       NA       NA
## 
## $Item.25
##        a1      d logit(g) logit(u)
## par 0.905 -0.591     -999      999
## SE  0.035  0.099       NA       NA
## 
## $Item.26
##        a1      d logit(g) logit(u)
## par 0.905 -0.179     -999      999
## SE  0.035  0.096       NA       NA
## 
## $Item.27
##        a1     d logit(g) logit(u)
## par 0.905 2.093     -999      999
## SE  0.035 0.130       NA       NA
## 
## $Item.28
##        a1     d logit(g) logit(u)
## par 0.905 0.150     -999      999
## SE  0.035 0.096       NA       NA
## 
## $Item.29
##        a1      d logit(g) logit(u)
## par 0.905 -0.769     -999      999
## SE  0.035  0.100       NA       NA
## 
## $Item.30
##        a1      d logit(g) logit(u)
## par 0.905 -0.274     -999      999
## SE  0.035  0.097       NA       NA
## 
## $Item.31
##        a1     d logit(g) logit(u)
## par 0.905 1.851     -999      999
## SE  0.035 0.121       NA       NA
## 
## $Item.32
##        a1      d logit(g) logit(u)
## par 0.905 -1.899     -999      999
## SE  0.035  0.124       NA       NA
## 
## $GroupPars
##     MEAN_1 COV_11
## par      0      1
## SE      NA     NA
# an equivalent parameterization, constraining the slopes to be 1 and freeing the latent variance
(mmod1b <- mirt::mirt(dat, 1, itemtype = 'Rasch', verbose=FALSE))
## 
## Call:
## mirt::mirt(data = dat, model = 1, itemtype = "Rasch", verbose = FALSE)
## 
## Full-information item factor analysis with 1 factor(s).
## Converged within 1e-04 tolerance after 12 EM iterations.
## mirt version: 1.39.4 
## M-step optimizer: nlminb 
## EM acceleration: Ramsay 
## Number of rectangular quadrature: 61
## Latent density type: Gaussian 
## 
## Log-likelihood = -9643.469
## Estimated parameters: 33 
## AIC = 19352.94
## BIC = 19498.04; SABIC = 19393.27
## G2 (4294967262) = 11617.22, p = 1
## RMSEA = 0, CFI = NaN, TLI = NaN
coef(mmod1b, simplify=TRUE)
## $items
##         a1      d g u
## Item.1   1 -1.077 0 1
## Item.2   1  0.332 0 1
## Item.3   1 -1.096 0 1
## Item.4   1 -0.574 0 1
## Item.5   1  0.581 0 1
## Item.6   1 -1.912 0 1
## Item.7   1  1.342 0 1
## Item.8   1 -1.593 0 1
## Item.9   1  2.324 0 1
## Item.10  1 -0.362 0 1
## Item.11  1  4.449 0 1
## Item.12  1 -0.394 0 1
## Item.13  1  0.791 0 1
## Item.14  1  1.124 0 1
## Item.15  1  1.724 0 1
## Item.16  1 -0.402 0 1
## Item.17  1  3.620 0 1
## Item.18  1 -0.708 0 1
## Item.19  1  0.237 0 1
## Item.20  1  2.205 0 1
## Item.21  1  2.684 0 1
## Item.22  1  2.991 0 1
## Item.23  1 -0.910 0 1
## Item.24  1  1.153 0 1
## Item.25  1 -0.590 0 1
## Item.26  1 -0.179 0 1
## Item.27  1  2.094 0 1
## Item.28  1  0.150 0 1
## Item.29  1 -0.769 0 1
## Item.30  1 -0.274 0 1
## Item.31  1  1.852 0 1
## Item.32  1 -1.898 0 1
## 
## $means
## F1 
##  0 
## 
## $cov
##      F1
## F1 0.82
sqrt(coef(mmod1b)[[33]][2]) #SD of latent variable equivalent to constrained slopes
## [1] 0.9055254

2PL model

#ltm
(lmod2 <- ltm::ltm(dat ~ z1, IRT.param = FALSE))
## 
## Call:
## ltm::ltm(formula = dat ~ z1, IRT.param = FALSE)
## 
## Coefficients:
##          (Intercept)     z1
## Item.1        -1.046  0.802
## Item.2         0.436  1.504
## Item.3        -1.143  1.075
## Item.4        -0.531  0.585
## Item.5         0.604  0.990
## Item.6        -2.051  1.149
## Item.7         1.382  1.004
## Item.8        -1.509  0.693
## Item.9         2.143  0.533
## Item.10       -0.362  1.009
## Item.11        5.244  1.730
## Item.12       -0.346  0.161
## Item.13        0.851  1.107
## Item.14        1.173  1.037
## Item.15        1.922  1.293
## Item.16       -0.383  0.726
## Item.17        4.160  1.548
## Item.18       -0.853  1.701
## Item.19        0.236  0.840
## Item.20        2.603  1.531
## Item.21        2.517  0.606
## Item.22        3.474  1.537
## Item.23       -0.851  0.638
## Item.24        1.267  1.205
## Item.25       -0.567  0.771
## Item.26       -0.173  1.535
## Item.27        2.758  1.905
## Item.28        0.172  1.071
## Item.29       -0.751  0.835
## Item.30       -0.248  0.386
## Item.31        2.774  2.329
## Item.32       -1.652  0.129
## 
## Log.Lik: -9489.026
summary(lmod2)
## 
## Call:
## ltm::ltm(formula = dat ~ z1, IRT.param = FALSE)
## 
## Model Summary:
##    log.Lik      AIC      BIC
##  -9489.026 19106.05 19387.45
## 
## Coefficients:
##                       value std.err   z.vals
## (Intercept).Item.1  -1.0458  0.1062  -9.8506
## (Intercept).Item.2   0.4362  0.1195   3.6508
## (Intercept).Item.3  -1.1425  0.1170  -9.7612
## (Intercept).Item.4  -0.5309  0.0912  -5.8198
## (Intercept).Item.5   0.6045  0.1040   5.8139
## (Intercept).Item.6  -2.0510  0.1596 -12.8514
## (Intercept).Item.7   1.3819  0.1258  10.9883
## (Intercept).Item.8  -1.5090  0.1177 -12.8233
## (Intercept).Item.9   2.1427  0.1439  14.8865
## (Intercept).Item.10 -0.3615  0.1004  -3.6011
## (Intercept).Item.11  5.2442  0.6790   7.7234
## (Intercept).Item.12 -0.3456  0.0834  -4.1429
## (Intercept).Item.13  0.8508  0.1130   7.5296
## (Intercept).Item.14  1.1728  0.1196   9.8020
## (Intercept).Item.15  1.9225  0.1645  11.6900
## (Intercept).Item.16 -0.3825  0.0929  -4.1164
## (Intercept).Item.17  4.1603  0.4240   9.8121
## (Intercept).Item.18 -0.8531  0.1320  -6.4631
## (Intercept).Item.19  0.2363  0.0952   2.4833
## (Intercept).Item.20  2.6035  0.2260  11.5196
## (Intercept).Item.21  2.5167  0.1712  14.6993
## (Intercept).Item.22  3.4737  0.3190  10.8897
## (Intercept).Item.23 -0.8505  0.0975  -8.7238
## (Intercept).Item.24  1.2674  0.1294   9.7957
## (Intercept).Item.25 -0.5675  0.0961  -5.9072
## (Intercept).Item.26 -0.1728  0.1167  -1.4808
## (Intercept).Item.27  2.7576  0.2615  10.5461
## (Intercept).Item.28  0.1722  0.1016   1.6953
## (Intercept).Item.29 -0.7509  0.1006  -7.4627
## (Intercept).Item.30 -0.2485  0.0852  -2.9150
## (Intercept).Item.31  2.7739  0.2928   9.4743
## (Intercept).Item.32 -1.6517  0.1117 -14.7922
## z1.Item.1            0.8018  0.1181   6.7872
## z1.Item.2            1.5041  0.1729   8.6968
## z1.Item.3            1.0746  0.1345   7.9924
## z1.Item.4            0.5845  0.1037   5.6384
## z1.Item.5            0.9900  0.1330   7.4430
## z1.Item.6            1.1495  0.1550   7.4185
## z1.Item.7            1.0043  0.1509   6.6565
## z1.Item.8            0.6927  0.1208   5.7361
## z1.Item.9            0.5328  0.1601   3.3271
## z1.Item.10           1.0086  0.1273   7.9217
## z1.Item.11           1.7296  0.4972   3.4785
## z1.Item.12           0.1611  0.0913   1.7642
## z1.Item.13           1.1075  0.1461   7.5808
## z1.Item.14           1.0370  0.1479   7.0129
## z1.Item.15           1.2931  0.1887   6.8528
## z1.Item.16           0.7263  0.1100   6.6016
## z1.Item.17           1.5480  0.3539   4.3745
## z1.Item.18           1.7009  0.1864   9.1237
## z1.Item.19           0.8403  0.1190   7.0588
## z1.Item.20           1.5311  0.2367   6.4677
## z1.Item.21           0.6058  0.1859   3.2582
## z1.Item.22           1.5369  0.2917   5.2692
## z1.Item.23           0.6379  0.1086   5.8740
## z1.Item.24           1.2052  0.1622   7.4311
## z1.Item.25           0.7713  0.1129   6.8347
## z1.Item.26           1.5352  0.1705   9.0022
## z1.Item.27           1.9045  0.2761   6.8980
## z1.Item.28           1.0711  0.1338   8.0067
## z1.Item.29           0.8350  0.1170   7.1361
## z1.Item.30           0.3855  0.0958   4.0259
## z1.Item.31           2.3285  0.3317   7.0192
## z1.Item.32           0.1291  0.1200   1.0760
## 
## Integration:
## method: Gauss-Hermite
## quadrature points: 21 
## 
## Optimization:
## Convergence: 0 
## max(|grad|): 0.00092 
## quasi-Newton: BFGS
#mirt
(mmod2 <- mirt::mirt(dat, 1, SE=TRUE, verbose=FALSE))
## 
## Call:
## mirt::mirt(data = dat, model = 1, SE = TRUE, verbose = FALSE)
## 
## Full-information item factor analysis with 1 factor(s).
## Converged within 1e-04 tolerance after 23 EM iterations.
## mirt version: 1.39.4 
## M-step optimizer: BFGS 
## EM acceleration: Ramsay 
## Number of rectangular quadrature: 61
## Latent density type: Gaussian 
## 
## Information matrix estimated with method: Oakes
## Second-order test: model is a possible local maximum
## Condition number of information matrix =  96.1569
## 
## Log-likelihood = -9488.955
## Estimated parameters: 64 
## AIC = 19105.91
## BIC = 19387.31; SABIC = 19184.13
## G2 (4294967231) = 11308.19, p = 1
## RMSEA = 0, CFI = NaN, TLI = NaN
coef(mmod2, simplify=TRUE)
## $items
##            a1      d g u
## Item.1  0.801 -1.045 0 1
## Item.2  1.502  0.438 0 1
## Item.3  1.074 -1.141 0 1
## Item.4  0.584 -0.530 0 1
## Item.5  0.989  0.606 0 1
## Item.6  1.148 -2.049 0 1
## Item.7  1.004  1.383 0 1
## Item.8  0.692 -1.508 0 1
## Item.9  0.530  2.142 0 1
## Item.10 1.007 -0.360 0 1
## Item.11 1.732  5.249 0 1
## Item.12 0.162 -0.345 0 1
## Item.13 1.103  0.851 0 1
## Item.14 1.036  1.174 0 1
## Item.15 1.293  1.925 0 1
## Item.16 0.726 -0.382 0 1
## Item.17 1.550  4.164 0 1
## Item.18 1.700 -0.851 0 1
## Item.19 0.839  0.237 0 1
## Item.20 1.537  2.610 0 1
## Item.21 0.606  2.518 0 1
## Item.22 1.540  3.479 0 1
## Item.23 0.637 -0.850 0 1
## Item.24 1.205  1.269 0 1
## Item.25 0.771 -0.567 0 1
## Item.26 1.534 -0.171 0 1
## Item.27 1.916  2.770 0 1
## Item.28 1.069  0.173 0 1
## Item.29 0.835 -0.750 0 1
## Item.30 0.386 -0.248 0 1
## Item.31 2.336  2.784 0 1
## Item.32 0.130 -1.652 0 1
## 
## $means
## F1 
##  0 
## 
## $cov
##    F1
## F1  1
coef(mmod2, printSE=TRUE)
## $Item.1
##        a1      d logit(g) logit(u)
## par 0.801 -1.045     -999      999
## SE  0.118  0.106       NA       NA
## 
## $Item.2
##        a1     d logit(g) logit(u)
## par 1.502 0.438     -999      999
## SE  0.172 0.119       NA       NA
## 
## $Item.3
##        a1      d logit(g) logit(u)
## par 1.074 -1.141     -999      999
## SE  0.134  0.117       NA       NA
## 
## $Item.4
##        a1      d logit(g) logit(u)
## par 0.584 -0.530     -999      999
## SE  0.104  0.091       NA       NA
## 
## $Item.5
##        a1     d logit(g) logit(u)
## par 0.989 0.606     -999      999
## SE  0.133 0.104       NA       NA
## 
## $Item.6
##        a1      d logit(g) logit(u)
## par 1.148 -2.049     -999      999
## SE  0.155  0.159       NA       NA
## 
## $Item.7
##        a1     d logit(g) logit(u)
## par 1.004 1.383     -999      999
## SE  0.151 0.126       NA       NA
## 
## $Item.8
##        a1      d logit(g) logit(u)
## par 0.692 -1.508     -999      999
## SE  0.121  0.118       NA       NA
## 
## $Item.9
##       a1     d logit(g) logit(u)
## par 0.53 2.142     -999      999
## SE  0.16 0.144       NA       NA
## 
## $Item.10
##        a1     d logit(g) logit(u)
## par 1.007 -0.36     -999      999
## SE  0.127  0.10       NA       NA
## 
## $Item.11
##        a1     d logit(g) logit(u)
## par 1.732 5.249     -999      999
## SE  0.496 0.677       NA       NA
## 
## $Item.12
##        a1      d logit(g) logit(u)
## par 0.162 -0.345     -999      999
## SE  0.091  0.083       NA       NA
## 
## $Item.13
##        a1     d logit(g) logit(u)
## par 1.103 0.851     -999      999
## SE  0.145 0.113       NA       NA
## 
## $Item.14
##        a1     d logit(g) logit(u)
## par 1.036 1.174     -999      999
## SE  0.147 0.120       NA       NA
## 
## $Item.15
##        a1     d logit(g) logit(u)
## par 1.293 1.925     -999      999
## SE  0.188 0.165       NA       NA
## 
## $Item.16
##        a1      d logit(g) logit(u)
## par 0.726 -0.382     -999      999
## SE  0.110  0.093       NA       NA
## 
## $Item.17
##        a1     d logit(g) logit(u)
## par 1.550 4.164     -999      999
## SE  0.355 0.425       NA       NA
## 
## $Item.18
##        a1      d logit(g) logit(u)
## par 1.700 -0.851     -999      999
## SE  0.186  0.132       NA       NA
## 
## $Item.19
##        a1     d logit(g) logit(u)
## par 0.839 0.237     -999      999
## SE  0.119 0.095       NA       NA
## 
## $Item.20
##        a1     d logit(g) logit(u)
## par 1.537 2.610     -999      999
## SE  0.238 0.227       NA       NA
## 
## $Item.21
##        a1     d logit(g) logit(u)
## par 0.606 2.518     -999      999
## SE  0.186 0.171       NA       NA
## 
## $Item.22
##        a1     d logit(g) logit(u)
## par 1.540 3.479     -999      999
## SE  0.292 0.320       NA       NA
## 
## $Item.23
##        a1      d logit(g) logit(u)
## par 0.637 -0.850     -999      999
## SE  0.108  0.097       NA       NA
## 
## $Item.24
##        a1     d logit(g) logit(u)
## par 1.205 1.269     -999      999
## SE  0.162 0.130       NA       NA
## 
## $Item.25
##        a1      d logit(g) logit(u)
## par 0.771 -0.567     -999      999
## SE  0.113  0.096       NA       NA
## 
## $Item.26
##        a1      d logit(g) logit(u)
## par 1.534 -0.171     -999      999
## SE  0.170  0.117       NA       NA
## 
## $Item.27
##        a1     d logit(g) logit(u)
## par 1.916 2.770     -999      999
## SE  0.279 0.264       NA       NA
## 
## $Item.28
##        a1     d logit(g) logit(u)
## par 1.069 0.173     -999      999
## SE  0.133 0.101       NA       NA
## 
## $Item.29
##        a1      d logit(g) logit(u)
## par 0.835 -0.750     -999      999
## SE  0.117  0.101       NA       NA
## 
## $Item.30
##        a1      d logit(g) logit(u)
## par 0.386 -0.248     -999      999
## SE  0.096  0.085       NA       NA
## 
## $Item.31
##        a1     d logit(g) logit(u)
## par 2.336 2.784     -999      999
## SE  0.334 0.298       NA       NA
## 
## $Item.32
##       a1      d logit(g) logit(u)
## par 0.13 -1.652     -999      999
## SE  0.12  0.112       NA       NA
## 
## $GroupPars
##     MEAN_1 COV_11
## par      0      1
## SE      NA     NA

(Exploratory) Multidimensional 2PL model

#ltm 
lmod3 <- ltm::ltm(dat ~ z1 + z2, IRT.param = FALSE)
lmod3
## 
## Call:
## ltm::ltm(formula = dat ~ z1 + z2, IRT.param = FALSE)
## 
## Coefficients:
##          (Intercept)     z1      z2
## Item.1        -1.060  0.797  -0.325
## Item.2         0.442  1.521  -0.157
## Item.3        -1.145  1.084   0.015
## Item.4        -0.553  0.594  -0.471
## Item.5         0.607  0.994  -0.143
## Item.6        -2.066  1.135  -0.323
## Item.7         1.591  1.153   0.920
## Item.8        -1.508  0.679  -0.138
## Item.9         2.259  0.545   0.558
## Item.10       -0.374  1.056   0.275
## Item.11        5.307  1.655   0.551
## Item.12       -0.355  0.153  -0.338
## Item.13        0.870  1.145   0.366
## Item.14        1.251  1.129  -0.527
## Item.15        2.087  1.379   0.732
## Item.16       -0.388  0.731  -0.352
## Item.17        4.196  1.526   0.360
## Item.18       -0.860  1.718   0.060
## Item.19        0.236  0.843  -0.078
## Item.20        2.622  1.563  -0.112
## Item.21        2.655  0.617   0.587
## Item.22        3.472  1.499   0.294
## Item.23       -0.911  0.658  -0.626
## Item.24        1.304  1.245   0.398
## Item.25       -0.603  0.798  -0.622
## Item.26       -0.169  1.582  -0.455
## Item.27        2.817  1.917   0.457
## Item.28        0.174  1.078  -0.087
## Item.29       -0.768  0.839  -0.402
## Item.30       -0.251  0.401   0.130
## Item.31        2.866  2.457  -0.190
## Item.32       -1.654  0.144   0.066
## 
## Log.Lik: -9441.303
summary(lmod3)
## 
## Call:
## ltm::ltm(formula = dat ~ z1 + z2, IRT.param = FALSE)
## 
## Model Summary:
##    log.Lik      AIC      BIC
##  -9441.303 19074.61 19496.71
## 
## Coefficients:
##                       value std.err   z.vals
## (Intercept).Item.1  -1.0604  0.1088  -9.7426
## (Intercept).Item.2   0.4417  0.1198   3.6855
## (Intercept).Item.3  -1.1447  0.1170  -9.7859
## (Intercept).Item.4  -0.5530  0.0963  -5.7451
## (Intercept).Item.5   0.6074  0.1041   5.8349
## (Intercept).Item.6  -2.0664  0.1630 -12.6734
## (Intercept).Item.7   1.5911  0.1806   8.8108
## (Intercept).Item.8  -1.5079  0.1175 -12.8313
## (Intercept).Item.9   2.2587  0.1771  12.7530
## (Intercept).Item.10 -0.3739  0.1028  -3.6391
## (Intercept).Item.11  5.3073  0.7067   7.5098
## (Intercept).Item.12 -0.3545  0.0859  -4.1261
## (Intercept).Item.13  0.8704  0.1174   7.4128
## (Intercept).Item.14  1.2509  0.1371   9.1245
## (Intercept).Item.15  2.0867  0.2061  10.1264
## (Intercept).Item.16 -0.3884  0.0950  -4.0894
## (Intercept).Item.17  4.1961  0.4342   9.6635
## (Intercept).Item.18 -0.8598  0.1321  -6.5099
## (Intercept).Item.19  0.2365  0.0949   2.4906
## (Intercept).Item.20  2.6224  0.2305  11.3749
## (Intercept).Item.21  2.6551  0.2127  12.4843
## (Intercept).Item.22  3.4724  0.3176  10.9328
## (Intercept).Item.23 -0.9115  0.1103  -8.2671
## (Intercept).Item.24  1.3038  0.1358   9.6037
## (Intercept).Item.25 -0.6032  0.1048  -5.7564
## (Intercept).Item.26 -0.1687  0.1196  -1.4109
## (Intercept).Item.27  2.8167  0.2737  10.2901
## (Intercept).Item.28  0.1737  0.1013   1.7142
## (Intercept).Item.29 -0.7677  0.1044  -7.3553
## (Intercept).Item.30 -0.2510  0.0857  -2.9279
## (Intercept).Item.31  2.8657  0.3308   8.6621
## (Intercept).Item.32 -1.6542  0.1123 -14.7369
## z1.Item.1            0.7973  0.1276   6.2488
## z1.Item.2            1.5214  0.1761   8.6375
## z1.Item.3            1.0843  0.1364   7.9517
## z1.Item.4            0.5940  0.1250   4.7512
## z1.Item.5            0.9941  0.1347   7.3785
## z1.Item.6            1.1351  0.1612   7.0394
## z1.Item.7            1.1533  0.2266   5.0896
## z1.Item.8            0.6793  0.1233   5.5107
## z1.Item.9            0.5449  0.1832   2.9736
## z1.Item.10           1.0557  0.1398   7.5543
## z1.Item.11           1.6552  0.4994   3.3146
## z1.Item.12           0.1528  0.1061   1.4405
## z1.Item.13           1.1448  0.1618   7.0762
## z1.Item.14           1.1293  0.1814   6.2258
## z1.Item.15           1.3785  0.2340   5.8923
## z1.Item.16           0.7314  0.1233   5.9327
## z1.Item.17           1.5260  0.3619   4.2170
## z1.Item.18           1.7175  0.1915   8.9684
## z1.Item.19           0.8430  0.1202   7.0113
## z1.Item.20           1.5629  0.2455   6.3652
## z1.Item.21           0.6168  0.2041   3.0217
## z1.Item.22           1.4993  0.2923   5.1293
## z1.Item.23           0.6578  0.1436   4.5804
## z1.Item.24           1.2452  0.1794   6.9395
## z1.Item.25           0.7980  0.1509   5.2889
## z1.Item.26           1.5819  0.1936   8.1694
## z1.Item.27           1.9173  0.2862   6.6985
## z1.Item.28           1.0785  0.1342   8.0368
## z1.Item.29           0.8388  0.1324   6.3373
## z1.Item.30           0.4007  0.0999   4.0104
## z1.Item.31           2.4569  0.3913   6.2786
## z1.Item.32           0.1436  0.1219   1.1778
## z2.Item.1           -0.3254  0.2025  -1.6066
## z2.Item.2           -0.1574  0.2679  -0.5877
## z2.Item.3            0.0151  0.2281   0.0662
## z2.Item.4           -0.4709  0.1916  -2.4574
## z2.Item.5           -0.1426  0.2141  -0.6660
## z2.Item.6           -0.3230  0.2758  -1.1710
## z2.Item.7            0.9197  0.3149   2.9204
## z2.Item.8           -0.1376  0.2076  -0.6626
## z2.Item.9            0.5580  0.2568   2.1732
## z2.Item.10           0.2752  0.2269   1.2127
## z2.Item.11           0.5508  0.5937   0.9277
## z2.Item.12          -0.3384  0.1482  -2.2826
## z2.Item.13           0.3663  0.2364   1.5493
## z2.Item.14          -0.5265  0.2548  -2.0666
## z2.Item.15           0.7316  0.3098   2.3616
## z2.Item.16          -0.3523  0.1912  -1.8424
## z2.Item.17           0.3604  0.4345   0.8295
## z2.Item.18           0.0598  0.3003   0.1992
## z2.Item.19          -0.0777  0.1906  -0.4075
## z2.Item.20          -0.1123  0.3214  -0.3493
## z2.Item.21           0.5868  0.2760   2.1257
## z2.Item.22           0.2941  0.3718   0.7912
## z2.Item.23          -0.6256  0.2127  -2.9419
## z2.Item.24           0.3981  0.2427   1.6407
## z2.Item.25          -0.6223  0.2173  -2.8638
## z2.Item.26          -0.4550  0.2803  -1.6229
## z2.Item.27           0.4574  0.3601   1.2703
## z2.Item.28          -0.0874  0.2109  -0.4147
## z2.Item.29          -0.4015  0.2174  -1.8467
## z2.Item.30           0.1299  0.1540   0.8437
## z2.Item.31          -0.1901  0.3921  -0.4847
## z2.Item.32           0.0658  0.1892   0.3479
## 
## Integration:
## method: Gauss-Hermite
## quadrature points: 15 
## 
## Optimization:
## Convergence: 0 
## max(|grad|): 0.1 
## quasi-Newton: BFGS
#mirt
mmod3 <- mirt::mirt(dat, 2, verbose=FALSE)
mmod3
## 
## Call:
## mirt::mirt(data = dat, model = 2, verbose = FALSE)
## 
## Full-information item factor analysis with 2 factor(s).
## Converged within 1e-04 tolerance after 34 EM iterations.
## mirt version: 1.39.4 
## M-step optimizer: BFGS 
## EM acceleration: Ramsay 
## Number of rectangular quadrature: 31
## Latent density type: Gaussian 
## 
## Log-likelihood = -9441.98
## Estimated parameters: 95 
## AIC = 19073.96
## BIC = 19491.67; SABIC = 19190.07
## G2 (4294967200) = 11214.24, p = 1
## RMSEA = 0, CFI = NaN, TLI = NaN
coef(mmod3, simplify=TRUE)
## $items
##             a1     a2      d g u
## Item.1  -0.784 -0.341 -1.059 0 1
## Item.2  -1.504 -0.178  0.441 0 1
## Item.3  -1.081  0.000 -1.145 0 1
## Item.4  -0.584 -0.472 -0.551 0 1
## Item.5  -0.990 -0.153  0.609 0 1
## Item.6  -1.122 -0.340 -2.065 0 1
## Item.7  -1.152  0.901  1.589 0 1
## Item.8  -0.674 -0.150 -1.508 0 1
## Item.9  -0.547  0.552  2.259 0 1
## Item.10 -1.050  0.256 -0.374 0 1
## Item.11 -1.671  0.532  5.337 0 1
## Item.12 -0.145 -0.348 -0.355 0 1
## Item.13 -1.140  0.366  0.872 0 1
## Item.14 -1.119 -0.552  1.256 0 1
## Item.15 -1.374  0.721  2.089 0 1
## Item.16 -0.721 -0.357 -0.388 0 1
## Item.17 -1.522  0.344  4.204 0 1
## Item.18 -1.705  0.032 -0.859 0 1
## Item.19 -0.835 -0.095  0.238 0 1
## Item.20 -1.553 -0.134  2.628 0 1
## Item.21 -0.612  0.579  2.652 0 1
## Item.22 -1.500  0.278  3.484 0 1
## Item.23 -0.644 -0.633 -0.909 0 1
## Item.24 -1.227  0.379  1.298 0 1
## Item.25 -0.784 -0.627 -0.602 0 1
## Item.26 -1.561 -0.466 -0.168 0 1
## Item.27 -1.904  0.422  2.815 0 1
## Item.28 -1.068 -0.096  0.174 0 1
## Item.29 -0.828 -0.419 -0.768 0 1
## Item.30 -0.396  0.120 -0.250 0 1
## Item.31 -2.365 -0.207  2.817 0 1
## Item.32 -0.134  0.000 -1.652 0 1
## 
## $means
## F1 F2 
##  0  0 
## 
## $cov
##    F1 F2
## F1  1  0
## F2  0  1
summary(mmod3)
## 
## Rotation:  oblimin 
## 
## Rotated factor loadings: 
## 
##                F1      F2      h2
## Item.1   0.027526  0.4316 0.20158
## Item.2   0.280473  0.4554 0.44200
## Item.3   0.299450  0.2978 0.28729
## Item.4  -0.111777  0.4619 0.16278
## Item.5   0.192402  0.3664 0.25733
## Item.6   0.117312  0.4878 0.32162
## Item.7   0.741632 -0.1701 0.42488
## Item.8   0.112853  0.2961 0.14123
## Item.9   0.497308 -0.1720 0.17244
## Item.10  0.435092  0.1451 0.28746
## Item.11  0.628622  0.1329 0.51484
## Item.12 -0.179771  0.2728 0.04686
## Item.13  0.505308  0.1047 0.33094
## Item.14  0.000217  0.5910 0.34945
## Item.15  0.688018 -0.0236 0.45408
## Item.16 -0.000515  0.4275 0.18253
## Item.17  0.536952  0.1972 0.45653
## Item.18  0.410483  0.3781 0.50095
## Item.19  0.189394  0.3010 0.19611
## Item.20  0.310467  0.4396 0.45630
## Item.21  0.525060 -0.1666 0.19662
## Item.22  0.504392  0.2268 0.44552
## Item.23 -0.185231  0.5584 0.21977
## Item.24  0.522923  0.1180 0.36275
## Item.25 -0.137477  0.5803 0.25822
## Item.26  0.146276  0.5924 0.47821
## Item.27  0.595517  0.2239 0.56758
## Item.28  0.242945  0.3489 0.28428
## Item.29 -0.005742  0.4822 0.22915
## Item.30  0.203786  0.0482 0.05584
## Item.31  0.372237  0.5301 0.66059
## Item.32  0.043912  0.0436 0.00617
## 
## Rotated SS loadings:  4.451 4.119 
## 
## Factor correlations: 
## 
##       F1 F2
## F1 1.000   
## F2 0.611  1

Quadratic model

#ltm
(lmod4 <- ltm::ltm(dat ~ z1 + I(z1^2), IRT.param = FALSE))
## 
## Call:
## ltm::ltm(formula = dat ~ z1 + I(z1^2), IRT.param = FALSE)
## 
## Coefficients:
##          (Intercept)     z1  I(z1^2)
## Item.1        -1.234  0.712    0.226
## Item.2         0.202  1.579    0.365
## Item.3        -1.486  0.944    0.434
## Item.4        -0.814  0.566    0.312
## Item.5         0.623  0.979   -0.044
## Item.6        -2.468  0.846    0.516
## Item.7         1.451  0.940   -0.106
## Item.8        -1.737  0.635    0.239
## Item.9         2.222  0.464   -0.089
## Item.10       -0.463  0.986    0.121
## Item.11        5.764  3.307    0.747
## Item.12       -0.471  0.119    0.126
## Item.13        0.899  1.071   -0.094
## Item.14        0.910  1.224    0.403
## Item.15        2.027  1.139   -0.183
## Item.16       -0.643  0.712    0.305
## Item.17        4.035  1.678    0.195
## Item.18       -1.079  1.593    0.352
## Item.19        0.036  0.820    0.242
## Item.20        2.466  2.186    0.590
## Item.21        2.605  0.510   -0.103
## Item.22        3.420  2.016    0.382
## Item.23       -1.033  0.586    0.205
## Item.24        1.251  1.243    0.031
## Item.25       -0.732  0.771    0.192
## Item.26       -0.494  1.626    0.504
## Item.27        2.599  2.009    0.253
## Item.28        0.149  1.043    0.004
## Item.29       -1.146  0.780    0.460
## Item.30       -0.260  0.365    0.013
## Item.31        2.671  2.543    0.313
## Item.32       -1.902  0.035    0.223
## 
## Log.Lik: -9432.199
summary(lmod4)
## 
## Call:
## ltm::ltm(formula = dat ~ z1 + I(z1^2), IRT.param = FALSE)
## 
## Model Summary:
##    log.Lik     AIC     BIC
##  -9432.199 19056.4 19478.5
## 
## Coefficients:
##                       value std.err   z.vals
## (Intercept).Item.1  -1.2338  0.1374  -8.9787
## (Intercept).Item.2   0.2017  0.1444   1.3971
## (Intercept).Item.3  -1.4861  0.1505  -9.8717
## (Intercept).Item.4  -0.8139  0.1275  -6.3825
## (Intercept).Item.5   0.6231  0.1367   4.5567
## (Intercept).Item.6  -2.4679  0.2019 -12.2249
## (Intercept).Item.7   1.4511  0.1581   9.1800
## (Intercept).Item.8  -1.7371  0.1485 -11.6981
## (Intercept).Item.9   2.2217  0.1758  12.6377
## (Intercept).Item.10 -0.4629  0.1302  -3.5562
## (Intercept).Item.11  5.7639  1.4685   3.9251
## (Intercept).Item.12 -0.4708  0.1114  -4.2257
## (Intercept).Item.13  0.8985  0.1391   6.4612
## (Intercept).Item.14  0.9099  0.1469   6.1933
## (Intercept).Item.15  2.0266  0.2049   9.8922
## (Intercept).Item.16 -0.6427  0.1241  -5.1795
## (Intercept).Item.17  4.0350  0.4450   9.0680
## (Intercept).Item.18 -1.0792  0.1625  -6.6411
## (Intercept).Item.19  0.0364  0.1274   0.2859
## (Intercept).Item.20  2.4661  0.2645   9.3244
## (Intercept).Item.21  2.6045  0.2069  12.5899
## (Intercept).Item.22  3.4200  0.3754   9.1105
## (Intercept).Item.23 -1.0334  0.1306  -7.9154
## (Intercept).Item.24  1.2514  0.1562   8.0114
## (Intercept).Item.25 -0.7324  0.1263  -5.7984
## (Intercept).Item.26 -0.4938  0.1422  -3.4731
## (Intercept).Item.27  2.5987  0.2595  10.0130
## (Intercept).Item.28  0.1489  0.1342   1.1099
## (Intercept).Item.29 -1.1456  0.1445  -7.9264
## (Intercept).Item.30 -0.2598  0.1124  -2.3109
## (Intercept).Item.31  2.6707  0.3079   8.6728
## (Intercept).Item.32 -1.9023  0.1517 -12.5412
## z1.Item.1            0.7117  0.1172   6.0741
## z1.Item.2            1.5790  0.2005   7.8759
## z1.Item.3            0.9445  0.1329   7.1068
## z1.Item.4            0.5657  0.1083   5.2226
## z1.Item.5            0.9789  0.1285   7.6190
## z1.Item.6            0.8460  0.1446   5.8515
## z1.Item.7            0.9397  0.1463   6.4233
## z1.Item.8            0.6346  0.1241   5.1132
## z1.Item.9            0.4636  0.1503   3.0853
## z1.Item.10           0.9858  0.1261   7.8160
## z1.Item.11           3.3074  2.4813   1.3329
## z1.Item.12           0.1192  0.0925   1.2893
## z1.Item.13           1.0705  0.1382   7.7479
## z1.Item.14           1.2236  0.2166   5.6491
## z1.Item.15           1.1390  0.1851   6.1522
## z1.Item.16           0.7124  0.1151   6.1905
## z1.Item.17           1.6776  0.7281   2.3041
## z1.Item.18           1.5933  0.1764   9.0346
## z1.Item.19           0.8198  0.1254   6.5377
## z1.Item.20           2.1861  0.5648   3.8708
## z1.Item.21           0.5104  0.1766   2.8894
## z1.Item.22           2.0164  0.6726   2.9981
## z1.Item.23           0.5862  0.1084   5.4053
## z1.Item.24           1.2433  0.1824   6.8153
## z1.Item.25           0.7715  0.1146   6.7312
## z1.Item.26           1.6264  0.1909   8.5211
## z1.Item.27           2.0093  0.5103   3.9379
## z1.Item.28           1.0430  0.1291   8.0762
## z1.Item.29           0.7801  0.1262   6.1819
## z1.Item.30           0.3652  0.0962   3.7972
## z1.Item.31           2.5428  0.6264   4.0593
## z1.Item.32           0.0352  0.1102   0.3196
## I(z1^2).Item.1       0.2265  0.1003   2.2570
## I(z1^2).Item.2       0.3650  0.1583   2.3053
## I(z1^2).Item.3       0.4336  0.1080   4.0134
## I(z1^2).Item.4       0.3116  0.0966   3.2246
## I(z1^2).Item.5      -0.0441  0.1238  -0.3560
## I(z1^2).Item.6       0.5159  0.1176   4.3851
## I(z1^2).Item.7      -0.1062  0.1303  -0.8147
## I(z1^2).Item.8       0.2395  0.0925   2.5889
## I(z1^2).Item.9      -0.0891  0.1057  -0.8432
## I(z1^2).Item.10      0.1209  0.1153   1.0484
## I(z1^2).Item.11      0.7474  0.9567   0.7812
## I(z1^2).Item.12      0.1262  0.0741   1.7032
## I(z1^2).Item.13     -0.0945  0.1208  -0.7820
## I(z1^2).Item.14      0.4027  0.1681   2.3965
## I(z1^2).Item.15     -0.1834  0.1772  -1.0351
## I(z1^2).Item.16      0.3045  0.0975   3.1230
## I(z1^2).Item.17      0.1946  0.3166   0.6147
## I(z1^2).Item.18      0.3520  0.1633   2.1557
## I(z1^2).Item.19      0.2418  0.1135   2.1301
## I(z1^2).Item.20      0.5901  0.3047   1.9367
## I(z1^2).Item.21     -0.1028  0.1238  -0.8302
## I(z1^2).Item.22      0.3816  0.2989   1.2767
## I(z1^2).Item.23      0.2045  0.0935   2.1865
## I(z1^2).Item.24      0.0313  0.1561   0.2003
## I(z1^2).Item.25      0.1916  0.0982   1.9501
## I(z1^2).Item.26      0.5043  0.1356   3.7191
## I(z1^2).Item.27      0.2530  0.2913   0.8686
## I(z1^2).Item.28      0.0039  0.1276   0.0304
## I(z1^2).Item.29      0.4598  0.1176   3.9107
## I(z1^2).Item.30      0.0126  0.0786   0.1600
## I(z1^2).Item.31      0.3130  0.3492   0.8965
## I(z1^2).Item.32      0.2231  0.0817   2.7306
## 
## Integration:
## method: Gauss-Hermite
## quadrature points: 21 
## 
## Optimization:
## Convergence: 0 
## max(|grad|): 0.0094 
## quasi-Newton: BFGS
#mirt (can be more specific about where the loadings should be)
model <- mirt.model('Theta = 1-32
                    (Theta*Theta) = 1-32')
(mmod4 <- mirt::mirt(dat, model, SE=TRUE, verbose=FALSE))
## EM cycles terminated after 500 iterations.
## 
## Call:
## mirt::mirt(data = dat, model = model, SE = TRUE, verbose = FALSE)
## 
## Full-information item factor analysis with 1 factor(s).
## FAILED TO CONVERGE within 1e-04 tolerance after 500 EM iterations.
## mirt version: 1.39.4 
## M-step optimizer: BFGS 
## EM acceleration: Ramsay 
## Number of rectangular quadrature: 61
## Latent density type: Gaussian 
## 
## Information matrix estimated with method: Oakes
## Second-order test: model is a possible local maximum
## Condition number of information matrix =  62443.82
## 
## Log-likelihood = -9464.029
## Estimated parameters: 96 
## AIC = 19120.06
## BIC = 19542.16; SABIC = 19237.39
## G2 (4294967199) = 11258.34, p = 1
## RMSEA = 0, CFI = NaN, TLI = NaN
coef(mmod4, simplify=TRUE)
## $items
##            a1    a2      d g u
## Item.1  0.353 0.632 -1.628 0 1
## Item.2  1.331 1.414 -0.692 0 1
## Item.3  0.763 0.769 -1.817 0 1
## Item.4  0.242 0.601 -1.104 0 1
## Item.5  0.806 0.810 -0.113 0 1
## Item.6  0.610 0.771 -2.702 0 1
## Item.7  1.905 0.903  0.972 0 1
## Item.8  0.220 0.589 -2.087 0 1
## Item.9  0.558 0.296  1.861 0 1
## Item.10 0.813 0.679 -0.956 0 1
## Item.11 6.980 5.207  4.802 0 1
## Item.12 0.027 0.180 -0.526 0 1
## Item.13 1.103 0.795  0.167 0 1
## Item.14 0.764 1.265  0.165 0 1
## Item.15 3.366 1.713  1.616 0 1
## Item.16 0.269 0.708 -1.036 0 1
## Item.17 5.955 3.131  4.509 0 1
## Item.18 1.254 1.266 -1.873 0 1
## Item.19 0.589 0.668 -0.372 0 1
## Item.20 2.114 2.247  1.215 0 1
## Item.21 0.893 0.395  2.243 0 1
## Item.22 3.193 2.303  2.491 0 1
## Item.23 0.234 0.570 -1.396 0 1
## Item.24 1.848 1.174  0.531 0 1
## Item.25 0.090 0.858 -1.356 0 1
## Item.26 0.979 1.565 -1.444 0 1
## Item.27 3.208 2.493  1.440 0 1
## Item.28 0.735 0.823 -0.562 0 1
## Item.29 0.335 0.790 -1.482 0 1
## Item.30 0.453 0.156 -0.398 0 1
## Item.31 4.846 4.485  1.068 0 1
## Item.32 0.234 0.111 -1.778 0 1
## 
## $means
## Theta 
##     0 
## 
## $cov
##       Theta
## Theta     1
coef(mmod4, printSE=TRUE)
## $Item.1
##        a1    a2      d logit(g) logit(u)
## par 0.353 0.632 -1.628     -999      999
## SE  0.357 0.151  0.186       NA       NA
## 
## $Item.2
##        a1    a2      d logit(g) logit(u)
## par 1.331 1.414 -0.692     -999      999
## SE  0.524 0.359  0.318       NA       NA
## 
## $Item.3
##        a1    a2      d logit(g) logit(u)
## par 0.763 0.769 -1.817     -999      999
## SE  0.340 0.209  0.231       NA       NA
## 
## $Item.4
##        a1    a2      d logit(g) logit(u)
## par 0.242 0.601 -1.104     -999      999
## SE  0.321 0.133  0.156       NA       NA
## 
## $Item.5
##        a1    a2      d logit(g) logit(u)
## par 0.806 0.810 -0.113     -999      999
## SE  0.391 0.273  0.255       NA       NA
## 
## $Item.6
##        a1    a2      d logit(g) logit(u)
## par 0.610 0.771 -2.702     -999      999
## SE  0.406 0.199  0.262       NA       NA
## 
## $Item.7
##        a1    a2     d logit(g) logit(u)
## par 1.905 0.903 0.972     -999      999
## SE  0.473 0.557 0.377       NA       NA
## 
## $Item.8
##        a1    a2      d logit(g) logit(u)
## par 0.220 0.589 -2.087     -999      999
## SE  0.225 0.104  0.168       NA       NA
## 
## $Item.9
##        a1    a2     d logit(g) logit(u)
## par 0.558 0.296 1.861     -999      999
## SE  0.276 0.209 0.236       NA       NA
## 
## $Item.10
##        a1    a2      d logit(g) logit(u)
## par 0.813 0.679 -0.956     -999      999
## SE  0.237 0.202  0.205       NA       NA
## 
## $Item.11
##         a1    a2     d logit(g) logit(u)
## par  6.980 5.207 4.802     -999      999
## SE  10.084 6.895 3.390       NA       NA
## 
## $Item.12
##        a1   a2      d logit(g) logit(u)
## par 0.027 0.18 -0.526     -999      999
## SE  0.150 0.08  0.116       NA       NA
## 
## $Item.13
##        a1    a2     d logit(g) logit(u)
## par 1.103 0.795 0.167     -999      999
## SE  0.298 0.308 0.274       NA       NA
## 
## $Item.14
##        a1    a2     d logit(g) logit(u)
## par 0.764 1.265 0.165     -999      999
## SE  0.483 0.296 0.198       NA       NA
## 
## $Item.15
##        a1    a2     d logit(g) logit(u)
## par 3.366 1.713 1.616     -999      999
## SE  0.986 0.888 0.700       NA       NA
## 
## $Item.16
##        a1    a2      d logit(g) logit(u)
## par 0.269 0.708 -1.036     -999      999
## SE  0.404 0.176  0.184       NA       NA
## 
## $Item.17
##        a1    a2     d logit(g) logit(u)
## par 5.955 3.131 4.509     -999      999
## SE  3.163 1.952 1.741       NA       NA
## 
## $Item.18
##        a1    a2      d logit(g) logit(u)
## par 1.254 1.266 -1.873     -999      999
## SE  0.415 0.305  0.302       NA       NA
## 
## $Item.19
##        a1    a2      d logit(g) logit(u)
## par 0.589 0.668 -0.372     -999      999
## SE  0.246 0.163  0.165       NA       NA
## 
## $Item.20
##        a1    a2     d logit(g) logit(u)
## par 2.114 2.247 1.215     -999      999
## SE  0.994 0.848 0.556       NA       NA
## 
## $Item.21
##        a1    a2     d logit(g) logit(u)
## par 0.893 0.395 2.243     -999      999
## SE  0.344 0.291 0.292       NA       NA
## 
## $Item.22
##        a1    a2     d logit(g) logit(u)
## par 3.193 2.303 2.491     -999      999
## SE  1.312 1.223 0.802       NA       NA
## 
## $Item.23
##        a1    a2      d logit(g) logit(u)
## par 0.234 0.570 -1.396     -999      999
## SE  0.358 0.143  0.175       NA       NA
## 
## $Item.24
##        a1    a2     d logit(g) logit(u)
## par 1.848 1.174 0.531     -999      999
## SE  0.377 0.517 0.389       NA       NA
## 
## $Item.25
##       a1    a2      d logit(g) logit(u)
## par 0.09 0.858 -1.356     -999      999
## SE  0.52 0.193  0.198       NA       NA
## 
## $Item.26
##        a1    a2      d logit(g) logit(u)
## par 0.979 1.565 -1.444     -999      999
## SE  0.726 0.372  0.329       NA       NA
## 
## $Item.27
##        a1    a2     d logit(g) logit(u)
## par 3.208 2.493 1.440     -999      999
## SE  0.926 1.047 0.579       NA       NA
## 
## $Item.28
##        a1    a2      d logit(g) logit(u)
## par 0.735 0.823 -0.562     -999      999
## SE  0.339 0.218  0.210       NA       NA
## 
## $Item.29
##        a1    a2      d logit(g) logit(u)
## par 0.335 0.790 -1.482     -999      999
## SE  0.359 0.139  0.164       NA       NA
## 
## $Item.30
##        a1    a2      d logit(g) logit(u)
## par 0.453 0.156 -0.398     -999      999
## SE  0.134 0.120  0.142       NA       NA
## 
## $Item.31
##        a1    a2     d logit(g) logit(u)
## par 4.846 4.485 1.068     -999      999
## SE  1.951 1.888 1.128       NA       NA
## 
## $Item.32
##        a1    a2      d logit(g) logit(u)
## par 0.234 0.111 -1.778     -999      999
## SE  0.169 0.102  0.154       NA       NA
## 
## $GroupPars
##     MEAN_1 COV_11
## par      0      1
## SE      NA     NA

3PL model

(lmod5 <- ltm::tpm(dat, IRT.param = FALSE))
## 
## Call:
## ltm::tpm(data = dat, IRT.param = FALSE)
## 
## Coefficients:
##            c.i  beta.1i  beta.2i
## Item.1   0.178   -3.293    2.289
## Item.2   0.193   -0.260    2.174
## Item.3   0.130   -2.781    2.336
## Item.4   0.265   -2.768    2.069
## Item.5   0.116    0.342    1.084
## Item.6   0.070   -4.453    2.926
## Item.7   0.000    1.368    0.988
## Item.8   0.133   -4.550    2.690
## Item.9   0.000    2.132    0.497
## Item.10  0.129   -0.930    1.371
## Item.11  0.000    5.267    1.610
## Item.12  0.408  -24.233   10.998
## Item.13  0.000    0.817    1.062
## Item.14  0.463   -0.113    1.905
## Item.15  0.000    1.915    1.271
## Item.16  0.285   -2.701    2.340
## Item.17  0.000    4.185    1.470
## Item.18  0.073   -1.522    2.286
## Item.19  0.237   -0.489    1.168
## Item.20  0.509    1.732    2.051
## Item.21  0.000    2.520    0.601
## Item.22  0.000    3.381    1.359
## Item.23  0.175   -2.172    1.443
## Item.24  0.219    0.857    1.433
## Item.25  0.201   -1.871    1.655
## Item.26  0.185   -1.460    2.913
## Item.27  0.245    2.367    1.979
## Item.28  0.000    0.141    1.056
## Item.29  0.205   -2.958    2.518
## Item.30  0.005   -0.262    0.378
## Item.31  0.163    2.511    2.423
## Item.32  0.155  -22.455    9.248
## 
## Log.Lik: -9434.886
summary(lmod5)
## 
## Call:
## ltm::tpm(data = dat, IRT.param = FALSE)
## 
## Model Summary:
##    log.Lik      AIC      BIC
##  -9434.886 19061.77 19483.88
## 
## Coefficients:
##             value  std.err  z.vals
## c.1        0.1780   0.0402  4.4311
## c.2        0.1930   0.0668  2.8883
## c.3        0.1301   0.0354  3.6701
## c.4        0.2647   0.0347  7.6182
## c.5        0.1161   0.1724  0.6734
## c.6        0.0695   0.0223  3.1140
## c.7        0.0000   0.0000  0.0000
## c.8        0.1329   0.0361  3.6812
## c.9        0.0000   0.0082  0.0015
## c.10       0.1290   0.0809  1.5944
## c.11       0.0000   0.0023  0.0006
## c.12       0.4081   0.0219 18.6108
## c.13       0.0000   0.0000  0.0000
## c.14       0.4630   0.0878  5.2720
## c.15       0.0000   0.0003  0.0000
## c.16       0.2848   0.0392  7.2592
## c.17       0.0000   0.0046  0.0009
## c.18       0.0727   0.0382  1.9051
## c.19       0.2372   0.4168  0.5691
## c.20       0.5093   0.1960  2.5984
## c.21       0.0000   0.0021  0.0005
## c.22       0.0000   0.0004  0.0002
## c.23       0.1751   0.0397  4.4155
## c.24       0.2186   0.1642  1.3311
## c.25       0.2008   0.0790  2.5426
## c.26       0.1851   0.0483  3.8345
## c.27       0.2449   0.2624  0.9331
## c.28       0.0000   0.0014  0.0007
## c.29       0.2051   0.0365  5.6223
## c.30       0.0050   0.0821  0.0605
## c.31       0.1629   0.2313  0.7043
## c.32       0.1552   0.0367  4.2261
## beta.11   -3.2925   1.5622 -2.1076
## beta.12   -0.2604   0.3612 -0.7210
## beta.13   -2.7807   1.0034 -2.7713
## beta.14   -2.7685   0.9073 -3.0514
## beta.15    0.3420   0.4051  0.8442
## beta.16   -4.4526   2.4486 -1.8184
## beta.17    1.3677   0.1322 10.3481
## beta.18   -4.5497   3.6196 -1.2570
## beta.19    2.1318   0.1436 14.8433
## beta.110  -0.9303   0.4535 -2.0514
## beta.111   5.2667   0.7032  7.4897
## beta.112 -24.2331  55.0459 -0.4402
## beta.113   0.8165   0.1212  6.7372
## beta.114  -0.1134   0.5551 -0.2042
## beta.115   1.9154   0.1720 11.1389
## beta.116  -2.7005   1.0146 -2.6616
## beta.117   4.1854   0.4394  9.5247
## beta.118  -1.5225   0.4733 -3.2167
## beta.119  -0.4893   1.9459 -0.2514
## beta.120   1.7321   0.6106  2.8369
## beta.121   2.5205   0.1735 14.5283
## beta.122   3.3814   0.3214 10.5213
## beta.123  -2.1722   0.5759 -3.7715
## beta.124   0.8569   0.3825  2.2406
## beta.125  -1.8707   1.1134 -1.6801
## beta.126  -1.4600   0.6250 -2.3358
## beta.127   2.3667   0.4478  5.2848
## beta.128   0.1415   0.1145  1.2356
## beta.129  -2.9580   1.2577 -2.3520
## beta.130  -0.2616   0.2176 -1.2024
## beta.131   2.5108   0.3866  6.4943
## beta.132 -22.4551 404.4049 -0.0555
## beta.21    2.2885   1.3187  1.7354
## beta.22    2.1743   0.4604  4.7231
## beta.23    2.3355   0.6821  3.4242
## beta.24    2.0687   0.9024  2.2926
## beta.25    1.0836   0.2745  3.9474
## beta.26    2.9257   2.2270  1.3138
## beta.27    0.9876   0.1445  6.8356
## beta.28    2.6905   2.7920  0.9636
## beta.29    0.4966   0.1475  3.3654
## beta.210   1.3707   0.4081  3.3586
## beta.211   1.6099   0.4552  3.5364
## beta.212  10.9981  25.3850  0.4333
## beta.213   1.0621   0.1406  7.5560
## beta.214   1.9046   0.5868  3.2459
## beta.215   1.2711   0.1802  7.0539
## beta.216   2.3405   0.7881  2.9699
## beta.217   1.4701   0.3281  4.4811
## beta.218   2.2864   0.4673  4.8929
## beta.219   1.1683   1.1882  0.9833
## beta.220   2.0507   0.7315  2.8033
## beta.221   0.6010   0.1717  3.4993
## beta.222   1.3586   0.2731  4.9741
## beta.223   1.4433   0.4292  3.3629
## beta.224   1.4325   0.3254  4.4019
## beta.225   1.6547   1.0868  1.5224
## beta.226   2.9132   0.8263  3.5257
## beta.227   1.9790   0.5245  3.7729
## beta.228   1.0560   0.1402  7.5344
## beta.229   2.5178   1.3391  1.8802
## beta.230   0.3784   0.1045  3.6211
## beta.231   2.4232   0.6695  3.6194
## beta.232   9.2484 169.3080  0.0546
## 
## Integration:
## method: Gauss-Hermite
## quadrature points: 21 
## 
## Optimization:
## Optimizer: optim (BFGS)
## Convergence: 0 
## max(|grad|): 0.32
# mirt can also include prior distributions to help stabalize the model
(mmod5 <- mirt(dat, 1, '3PL', SE=TRUE, verbose=FALSE))
## EM cycles terminated after 500 iterations.
## 
## Call:
## mirt(data = dat, model = 1, itemtype = "3PL", SE = TRUE, verbose = FALSE)
## 
## Full-information item factor analysis with 1 factor(s).
## FAILED TO CONVERGE within 1e-04 tolerance after 500 EM iterations.
## mirt version: 1.39.4 
## M-step optimizer: BFGS 
## EM acceleration: Ramsay 
## Number of rectangular quadrature: 61
## Latent density type: Gaussian 
## 
## Information matrix estimated with method: Oakes
## Second-order test: model is a possible local maximum
## Condition number of information matrix =  96844.12
## 
## Log-likelihood = -9434.967
## Estimated parameters: 96 
## AIC = 19061.93
## BIC = 19484.04; SABIC = 19179.27
## G2 (4294967199) = 11200.21, p = 1
## RMSEA = 0, CFI = NaN, TLI = NaN
coef(mmod5, simplify=TRUE)
## $items
##            a1      d     g u
## Item.1  2.428 -3.460 0.182 1
## Item.2  2.199 -0.257 0.194 1
## Item.3  2.303 -2.719 0.128 1
## Item.4  2.027 -2.694 0.263 1
## Item.5  1.098  0.341 0.120 1
## Item.6  2.763 -4.216 0.067 1
## Item.7  0.994  1.371 0.002 1
## Item.8  2.424 -4.138 0.129 1
## Item.9  0.496  2.109 0.021 1
## Item.10 1.352 -0.894 0.124 1
## Item.11 1.610  5.259 0.011 1
## Item.12 3.022 -6.835 0.400 1
## Item.13 1.069  0.822 0.001 1
## Item.14 1.880 -0.081 0.460 1
## Item.15 1.294  1.882 0.032 1
## Item.16 2.305 -2.642 0.284 1
## Item.17 1.477  4.182 0.013 1
## Item.18 2.340 -1.545 0.075 1
## Item.19 1.242 -0.583 0.259 1
## Item.20 1.999  1.771 0.495 1
## Item.21 0.603  2.508 0.013 1
## Item.22 1.362  3.380 0.007 1
## Item.23 1.463 -2.187 0.176 1
## Item.24 1.449  0.857 0.223 1
## Item.25 1.610 -1.804 0.197 1
## Item.26 2.963 -1.463 0.186 1
## Item.27 1.985  2.379 0.245 1
## Item.28 1.066  0.132 0.006 1
## Item.29 2.472 -2.885 0.204 1
## Item.30 0.390 -0.297 0.019 1
## Item.31 2.385  2.528 0.149 1
## Item.32 3.367 -8.443 0.151 1
## 
## $means
## F1 
##  0 
## 
## $cov
##    F1
## F1  1
coef(mmod5, printSE=TRUE)
## $Item.1
##        a1      d logit(g) logit(u)
## par 2.428 -3.460   -1.505      999
## SE  1.046  1.449    0.235       NA
## 
## $Item.2
##        a1      d logit(g) logit(u)
## par 2.199 -0.257   -1.423      999
## SE  0.465  0.355    0.426       NA
## 
## $Item.3
##        a1      d logit(g) logit(u)
## par 2.303 -2.719   -1.915      999
## SE  0.589  0.719    0.274       NA
## 
## $Item.4
##        a1      d logit(g) logit(u)
## par 2.027 -2.694   -1.033      999
## SE  0.528  0.695    0.166       NA
## 
## $Item.5
##        a1     d logit(g) logit(u)
## par 1.098 0.341   -1.995      999
## SE  0.262 0.394    1.543       NA
## 
## $Item.6
##        a1      d logit(g) logit(u)
## par 2.763 -4.216   -2.626      999
## SE  0.692  0.930    0.258       NA
## 
## $Item.7
##        a1     d logit(g) logit(u)
## par 0.994 1.371   -6.133      999
## SE  0.143 0.135   18.447       NA
## 
## $Item.8
##        a1      d logit(g) logit(u)
## par 2.424 -4.138   -1.911      999
## SE  0.961  1.465    0.226       NA
## 
## $Item.9
##        a1     d logit(g) logit(u)
## par 0.496 2.109   -3.860      999
## SE  0.150 0.446   18.009       NA
## 
## $Item.10
##        a1      d logit(g) logit(u)
## par 1.352 -0.894   -1.957      999
## SE  0.334  0.426    0.695       NA
## 
## $Item.11
##        a1     d logit(g) logit(u)
## par 1.610 5.259   -4.540      999
## SE  0.454 0.728   18.763       NA
## 
## $Item.12
##        a1      d logit(g) logit(u)
## par 3.022 -6.835   -0.406      999
## SE  4.387  9.246    0.128       NA
## 
## $Item.13
##        a1     d logit(g) logit(u)
## par 1.069 0.822   -7.332      999
## SE  0.137 0.112   17.687       NA
## 
## $Item.14
##        a1      d logit(g) logit(u)
## par 1.880 -0.081   -0.162      999
## SE  0.551  0.526    0.350       NA
## 
## $Item.15
##        a1     d logit(g) logit(u)
## par 1.294 1.882   -3.403      999
## SE  0.248 0.369    8.636       NA
## 
## $Item.16
##        a1      d logit(g) logit(u)
## par 2.305 -2.642   -0.926      999
## SE  0.758  0.954    0.192       NA
## 
## $Item.17
##        a1     d logit(g) logit(u)
## par 1.477 4.182   -4.314      999
## SE  0.332 0.500   19.165       NA
## 
## $Item.18
##        a1      d logit(g) logit(u)
## par 2.340 -1.545   -2.510      999
## SE  0.488  0.444    0.538       NA
## 
## $Item.19
##        a1      d logit(g) logit(u)
## par 1.242 -0.583   -1.050      999
## SE  0.583  0.853    0.872       NA
## 
## $Item.20
##        a1     d logit(g) logit(u)
## par 1.999 1.771   -0.020      999
## SE  0.735 0.599    0.857       NA
## 
## $Item.21
##        a1     d logit(g) logit(u)
## par 0.603 2.508   -4.301      999
## SE  0.171 0.321   18.439       NA
## 
## $Item.22
##        a1     d logit(g) logit(u)
## par 1.362 3.380   -4.985      999
## SE  0.260 0.331   18.742       NA
## 
## $Item.23
##        a1      d logit(g) logit(u)
## par 1.463 -2.187   -1.542      999
## SE  0.409  0.581    0.272       NA
## 
## $Item.24
##        a1     d logit(g) logit(u)
## par 1.449 0.857   -1.249      999
## SE  0.313 0.377    0.901       NA
## 
## $Item.25
##        a1      d logit(g) logit(u)
## par 1.610 -1.804   -1.406      999
## SE  0.458  0.604    0.318       NA
## 
## $Item.26
##        a1      d logit(g) logit(u)
## par 2.963 -1.463   -1.477      999
## SE  0.778  0.615    0.305       NA
## 
## $Item.27
##        a1     d logit(g) logit(u)
## par 1.985 2.379   -1.125      999
## SE  0.514 0.430    1.377       NA
## 
## $Item.28
##        a1     d logit(g) logit(u)
## par 1.066 0.132   -5.096      999
## SE  0.197 0.273   18.227       NA
## 
## $Item.29
##        a1      d logit(g) logit(u)
## par 2.472 -2.885   -1.363      999
## SE  0.631  0.761    0.184       NA
## 
## $Item.30
##        a1      d logit(g) logit(u)
## par 0.390 -0.297   -3.927      999
## SE  0.293  1.250   26.424       NA
## 
## $Item.31
##        a1     d logit(g) logit(u)
## par 2.385 2.528    -1.74      999
## SE  0.625 0.375     1.82       NA
## 
## $Item.32
##        a1      d logit(g) logit(u)
## par 3.367 -8.443   -1.730      999
## SE  2.288  5.099    0.129       NA
## 
## $GroupPars
##     MEAN_1 COV_11
## par      0      1
## SE      NA     NA

Polytomous data

graded response model

ltm can get hung up in certain likelihood regions, therefore re-running the GRM is recommended using different starting values. See this (crossvalidated post)[http://stats.stackexchange.com/questions/63891/is-r-output-reliable-specially-irt-package-ltm/95324#95324] for details.

(lmod6 <- ltm::grm(Science, IRT.param = FALSE))
## 
## Call:
## ltm::grm(data = Science, IRT.param = FALSE)
## 
## Coefficients:
##              beta.1  beta.2  beta.3    beta
## Comfort      -4.427  -2.321   1.273   0.411
## Environment  -3.381  -1.240   0.984   1.570
## Work         -2.388  -0.689   1.815  -0.074
## Future       -3.301  -1.273   1.128   0.108
## Technology   -4.063  -1.461   1.060   1.650
## Industry     -4.711  -2.510   0.469   1.642
## Benefit      -2.880  -0.812   1.397   0.136
## 
## Log.Lik: -2998.129
summary(lmod6)
## 
## Call:
## ltm::grm(data = Science, IRT.param = FALSE)
## 
## Model Summary:
##    log.Lik      AIC      BIC
##  -2998.129 6052.259 6163.454
## 
## Coefficients:
## $Comfort
##         value
## beta.1 -4.427
## beta.2 -2.321
## beta.3  1.273
## beta    0.411
## 
## $Environment
##         value
## beta.1 -3.381
## beta.2 -1.240
## beta.3  0.984
## beta    1.570
## 
## $Work
##         value
## beta.1 -2.388
## beta.2 -0.689
## beta.3  1.815
## beta   -0.074
## 
## $Future
##         value
## beta.1 -3.301
## beta.2 -1.273
## beta.3  1.128
## beta    0.108
## 
## $Technology
##         value
## beta.1 -4.063
## beta.2 -1.461
## beta.3  1.060
## beta    1.650
## 
## $Industry
##         value
## beta.1 -4.711
## beta.2 -2.510
## beta.3  0.469
## beta    1.642
## 
## $Benefit
##         value
## beta.1 -2.880
## beta.2 -0.812
## beta.3  1.397
## beta    0.136
## 
## 
## Integration:
## method: Gauss-Hermite
## quadrature points: 21 
## 
## Optimization:
## Convergence: 0 
## max(|grad|): 0.016 
## quasi-Newton: BFGS
(mmod6 <- mirt(Science, 1, SE=TRUE, verbose=FALSE))
## Error: Input data must be integer or numeric values only
coef(mmod6, simplify=TRUE)
## Error in h(simpleError(msg, call)): error in evaluating the argument 'object' in selecting a method for function 'coef': object 'mmod6' not found
coef(mmod6, printSE=TRUE)
## Error in h(simpleError(msg, call)): error in evaluating the argument 'object' in selecting a method for function 'coef': object 'mmod6' not found

Constrained graded response model

Same as the previous section, however all the slope/discrimination parameters are constrained to be equal.

(lmod6 <- ltm::grm(Science, IRT.param = FALSE, constrained = TRUE))
## 
## Call:
## ltm::grm(data = Science, constrained = TRUE, IRT.param = FALSE)
## 
## Coefficients:
##              beta.1  beta.2  beta.3  beta
## Comfort      -4.694  -2.526   1.402  0.84
## Environment  -2.809  -0.993   0.793  0.84
## Work         -2.644  -0.810   2.025  0.84
## Future       -3.608  -1.450   1.286  0.84
## Technology   -3.337  -1.132   0.826  0.84
## Industry     -3.974  -2.027   0.389  0.84
## Benefit      -3.169  -0.936   1.571  0.84
## 
## Log.Lik: -3014.706
summary(lmod6)
## 
## Call:
## ltm::grm(data = Science, constrained = TRUE, IRT.param = FALSE)
## 
## Model Summary:
##    log.Lik      AIC      BIC
##  -3014.706 6073.413 6160.781
## 
## Coefficients:
## $Comfort
##         value
## beta.1 -4.694
## beta.2 -2.526
## beta.3  1.402
## beta    0.840
## 
## $Environment
##         value
## beta.1 -2.809
## beta.2 -0.993
## beta.3  0.793
## beta    0.840
## 
## $Work
##         value
## beta.1 -2.644
## beta.2 -0.810
## beta.3  2.025
## beta    0.840
## 
## $Future
##         value
## beta.1 -3.608
## beta.2 -1.450
## beta.3  1.286
## beta    0.840
## 
## $Technology
##         value
## beta.1 -3.337
## beta.2 -1.132
## beta.3  0.826
## beta    0.840
## 
## $Industry
##         value
## beta.1 -3.974
## beta.2 -2.027
## beta.3  0.389
## beta    0.840
## 
## $Benefit
##         value
## beta.1 -3.169
## beta.2 -0.936
## beta.3  1.571
## beta    0.840
## 
## 
## Integration:
## method: Gauss-Hermite
## quadrature points: 21 
## 
## Optimization:
## Convergence: 0 
## max(|grad|): 0.028 
## quasi-Newton: BFGS
# define loading pattern, and constrain parameters 
#  called a1 for each item to be equal
model <- mirt.model('F = 1-4
                     CONSTRAIN = (1-4, a1)') 
(mmod6 <- mirt(Science, model, SE=TRUE, verbose=FALSE))
## Error: Input data must be integer or numeric values only
coef(mmod6, simplify=TRUE)
## Error in h(simpleError(msg, call)): error in evaluating the argument 'object' in selecting a method for function 'coef': object 'mmod6' not found
coef(mmod6, printSE=TRUE)
## Error in h(simpleError(msg, call)): error in evaluating the argument 'object' in selecting a method for function 'coef': object 'mmod6' not found

generalized partial credit

(lmod7 <- ltm::gpcm(Science, IRT.param = FALSE))
## 
## Call:
## ltm::gpcm(data = Science, IRT.param = FALSE)
## 
## Coefficients:
##              Catgr.1  Catgr.2  Catgr.3  Dscrmn
## Comfort        2.836    2.498   -1.328   0.871
## Environment    1.134    0.478   -0.125  -0.035
## Work           1.705    0.868   -1.727   0.837
## Future         4.618    2.170   -1.847   2.217
## Technology     1.622    0.546   -0.221  -0.038
## Industry       1.576    1.315   -0.070   0.129
## Benefit        2.106    0.803   -1.181   0.730
## 
## Log.Lik: -3002.423
summary(lmod7)
## 
## Call:
## ltm::gpcm(data = Science, IRT.param = FALSE)
## 
## Model Summary:
##    log.Lik      AIC      BIC
##  -3002.423 6060.846 6172.041
## 
## Coefficients:
## $Comfort
##          value std.err z.value
## Catgr.1  2.836   0.594   4.771
## Catgr.2  2.498   0.236  10.578
## Catgr.3 -1.328   0.159  -8.367
## Dscrmn   0.871   0.179   4.854
## 
## $Environment
##          value std.err z.value
## Catgr.1  1.134   0.214   5.309
## Catgr.2  0.478   0.134   3.557
## Catgr.3 -0.125   0.121  -1.033
## Dscrmn  -0.035   0.072  -0.489
## 
## $Work
##          value std.err z.value
## Catgr.1  1.705   0.267   6.388
## Catgr.2  0.868   0.140   6.195
## Catgr.3 -1.727   0.198  -8.719
## Dscrmn   0.837   0.146   5.742
## 
## $Future
##          value std.err z.value
## Catgr.1  4.618   1.159   3.984
## Catgr.2  2.170   0.477   4.553
## Catgr.3 -1.847   0.447  -4.136
## Dscrmn   2.217   0.666   3.331
## 
## $Technology
##          value std.err z.value
## Catgr.1  1.622   0.258   6.286
## Catgr.2  0.546   0.132   4.143
## Catgr.3 -0.221   0.120  -1.844
## Dscrmn  -0.038   0.077  -0.497
## 
## $Industry
##          value std.err z.value
## Catgr.1  1.576   0.350   4.496
## Catgr.2  1.315   0.166   7.943
## Catgr.3 -0.070   0.110  -0.635
## Dscrmn   0.129   0.089   1.451
## 
## $Benefit
##          value std.err z.value
## Catgr.1  2.106   0.302   6.969
## Catgr.2  0.803   0.141   5.675
## Catgr.3 -1.181   0.169  -6.977
## Dscrmn   0.730   0.146   4.996
## 
## 
## Integration:
## method: Gauss-Hermite
## quadrature points: 21 
## 
## Optimization:
## Convergence: 0 
## max(|grad|): 0.017 
## optimizer: nlminb
(mmod7 <- mirt(Science, 1, 'gpcm', SE=TRUE, verbose=FALSE))
## Error: Input data must be integer or numeric values only
coef(mmod7, simplify=TRUE)
## Error in h(simpleError(msg, call)): error in evaluating the argument 'object' in selecting a method for function 'coef': object 'mmod7' not found
coef(mmod7, printSE=TRUE)
## Error in h(simpleError(msg, call)): error in evaluating the argument 'object' in selecting a method for function 'coef': object 'mmod7' not found

Extra features (e.g., factor scores, residuals, …)

plot(lmod2, items = 1:3)

plot of chunk unnamed-chunk-10

plot(mmod2, type = 'trace', which.items = 1:3)

plot of chunk unnamed-chunk-10

plot(mmod2, type = 'trace', which.items = 1:3, facet_items = FALSE)

plot of chunk unnamed-chunk-10

#scored with EAP estimator
fs <- factor.scores(lmod2)
head(fs$score.dat)
##   Item.1 Item.2 Item.3 Item.4 Item.5 Item.6 Item.7 Item.8 Item.9 Item.10
## 1      0      0      0      0      0      0      0      0      0       0
## 2      0      0      0      0      0      0      0      0      0       0
## 3      0      0      0      0      0      0      0      0      0       0
## 4      0      0      0      0      0      0      0      0      0       0
## 5      0      0      0      0      0      0      0      0      0       0
## 6      0      0      0      0      0      0      0      0      0       0
##   Item.11 Item.12 Item.13 Item.14 Item.15 Item.16 Item.17 Item.18 Item.19
## 1       1       0       0       1       0       1       0       0       1
## 2       1       0       0       1       1       1       1       0       0
## 3       1       0       0       1       1       1       1       0       0
## 4       1       1       0       0       1       0       1       0       1
## 5       1       1       0       1       0       0       1       0       0
## 6       1       1       0       1       1       1       1       0       1
##   Item.20 Item.21 Item.22 Item.23 Item.24 Item.25 Item.26 Item.27 Item.28
## 1       1       1       1       1       0       1       0       1       0
## 2       0       0       1       0       1       0       0       1       1
## 3       0       1       1       0       1       1       0       1       0
## 4       0       1       1       0       0       0       0       1       0
## 5       1       1       0       0       0       0       0       0       0
## 6       1       1       1       0       0       0       0       0       0
##   Item.29 Item.30 Item.31 Item.32 Obs          Exp        z1     se.z1
## 1       0       0       1       0   1 7.320352e-07 -1.125597 0.3501032
## 2       0       0       1       0   1 1.192118e-05 -1.035763 0.3510456
## 3       0       0       0       1   1 7.614205e-06 -1.268032 0.3503369
## 4       0       1       0       0   1 2.158900e-04 -1.578284 0.3585213
## 5       0       0       0       0   1 1.354704e-03 -2.044771 0.3858258
## 6       1       1       0       0   1 7.785685e-06 -1.299507 0.3506911
fs2 <- fscores(mmod2)
head(fs2)
##               F1
## [1,]  2.66337667
## [2,] -0.04119074
## [3,]  0.07447363
## [4,] -0.43752254
## [5,]  0.67469545
## [6,]  0.45359319
#item fit
item.fit(lmod2)
## 
## Item-Fit Statistics and P-values
## 
## Call:
## ltm::ltm(formula = dat ~ z1, IRT.param = FALSE)
## 
## Alternative: Items do not fit the model
## Ability Categories: 10
## 
##             X^2 Pr(>X^2)
## Item.1  21.3785   0.0062
## Item.2  15.4309   0.0513
## Item.3  21.2194   0.0066
## Item.4  18.6917   0.0166
## Item.5   9.8397   0.2765
## Item.6  25.4488   0.0013
## Item.7   4.3253   0.8266
## Item.8  11.4643   0.1768
## Item.9  10.1344   0.2557
## Item.10  9.8959   0.2724
## Item.11  6.1205   0.6337
## Item.12  2.4867   0.9623
## Item.13 17.1237   0.0288
## Item.14 14.4470   0.0708
## Item.15 13.3227   0.1012
## Item.16  9.7185   0.2853
## Item.17 10.8889   0.2081
## Item.18 17.4339   0.0259
## Item.19 16.1523   0.0403
## Item.20 10.9223   0.2061
## Item.21  5.5782   0.6944
## Item.22  7.9583   0.4376
## Item.23 13.4828   0.0963
## Item.24  9.6888   0.2876
## Item.25 21.5701   0.0058
## Item.26 14.9709   0.0597
## Item.27 16.8923   0.0313
## Item.28  7.7372   0.4596
## Item.29 18.1369   0.0202
## Item.30  2.3572   0.9681
## Item.31 20.9169   0.0074
## Item.32 10.4562   0.2345
itemfit(mmod2) # more optimal S-X2 statistics
##       item   S_X2 df.S_X2 RMSEA.S_X2 p.S_X2
## 1   Item.1 10.961      18      0.000  0.896
## 2   Item.2 13.211      15      0.000  0.586
## 3   Item.3 14.706      17      0.000  0.617
## 4   Item.4 30.805      20      0.030  0.058
## 5   Item.5 15.192      18      0.000  0.649
## 6   Item.6 16.752      16      0.009  0.402
## 7   Item.7 11.416      17      0.000  0.834
## 8   Item.8 24.507      17      0.027  0.106
## 9   Item.9 15.951      18      0.000  0.596
## 10 Item.10 14.804      18      0.000  0.675
## 11 Item.11  0.325       3      0.000  0.955
## 12 Item.12 19.751      21      0.000  0.537
## 13 Item.13 22.074      17      0.022  0.182
## 14 Item.14 25.376      17      0.029  0.087
## 15 Item.15 18.788      16      0.017  0.280
## 16 Item.16 31.498      18      0.035  0.025
## 17 Item.17 15.577      11      0.026  0.158
## 18 Item.18 11.070      14      0.000  0.680
## 19 Item.19 20.530      18      0.015  0.304
## 20 Item.20 25.168      14      0.036  0.033
## 21 Item.21 24.823      17      0.028  0.099
## 22 Item.22 29.299      12      0.049  0.004
## 23 Item.23 16.721      19      0.000  0.609
## 24 Item.24 12.657      16      0.000  0.698
## 25 Item.25 46.099      19      0.049  0.000
## 26 Item.26 16.170      16      0.004  0.441
## 27 Item.27  7.752      13      0.000  0.859
## 28 Item.28 19.571      17      0.016  0.297
## 29 Item.29 20.183      19      0.010  0.384
## 30 Item.30 29.348      21      0.026  0.106
## 31 Item.31 14.213      12      0.018  0.287
## 32 Item.32 15.005      20      0.000  0.776
itemfit(mmod2, fit_stats = 'X2') # Fit stat used by ltm (suboptimal)
##       item     X2 df.X2 RMSEA.X2  p.X2
## 1   Item.1 18.929     8    0.048 0.015
## 2   Item.2 14.484     8    0.037 0.070
## 3   Item.3 19.153     8    0.048 0.014
## 4   Item.4 18.168     8    0.046 0.020
## 5   Item.5  8.746     8    0.012 0.364
## 6   Item.6 21.168     8    0.052 0.007
## 7   Item.7  2.706     8    0.000 0.951
## 8   Item.8  9.750     8    0.019 0.283
## 9   Item.9  9.590     8    0.018 0.295
## 10 Item.10  8.064     8    0.004 0.427
## 11 Item.11  5.787     8    0.000 0.671
## 12 Item.12  3.571     8    0.000 0.894
## 13 Item.13 14.709     8    0.037 0.065
## 14 Item.14 13.457     8    0.034 0.097
## 15 Item.15 12.043     8    0.029 0.149
## 16 Item.16  8.672     8    0.012 0.371
## 17 Item.17  9.644     8    0.019 0.291
## 18 Item.18 13.759     8    0.035 0.088
## 19 Item.19 14.931     8    0.038 0.061
## 20 Item.20  8.979     8    0.014 0.344
## 21 Item.21  5.177     8    0.000 0.738
## 22 Item.22  8.350     8    0.009 0.400
## 23 Item.23 12.731     8    0.031 0.121
## 24 Item.24  8.137     8    0.005 0.420
## 25 Item.25 18.691     8    0.047 0.017
## 26 Item.26 13.632     8    0.034 0.092
## 27 Item.27 13.554     8    0.034 0.094
## 28 Item.28  6.875     8    0.000 0.550
## 29 Item.29 17.224     8    0.044 0.028
## 30 Item.30  2.362     8    0.000 0.968
## 31 Item.31 16.227     8    0.041 0.039
## 32 Item.32 10.454     8    0.023 0.235