I have a matrix which I'm trying to run through the mirt
function of the mirt
package:
resp.freq <- data.frame(matrix(c(11, 46, 12, 31, 13, 8, 21, 20, 22, 68, 23, 12,
31, 1, 32, 12, 33, 11), nrow = 9, ncol = 2,
byrow = T))
dados3 <- matrix(rep(resp.freq$X1, resp.freq$X2), ncol = 1)
dados3 <- data.frame(cbind(as.numeric(substr(dados3, 1, 1)),
as.numeric(substr(dados3, 2, 2))))
require(mirt)
m1 <- mirt(dados3, 1, D = 1, SE = TRUE)
coef(m1)
I used to run this through mirt 0.5.0 and would get the following end results:
$X1
a1 d1 d2
pars 1.913 0.633 -3.152
SE 0.228 0.181 0.322
$X2
a1 d1 d2
pars 1.659 1.121 -2.488
SE 0.200 0.190 0.261
However, my workstation has been updated and on mirt 1.2.1 and now I get the following output upon running m1 <- mirt(...
:
Iteration: 1000, Log-Lik: -387.670, Max-Change: 0.00007
EM iterations terminated after 1000 iterations.
Calculating information matrix...
Warning message:
In loadESTIMATEinfo(info = info, ESTIMATE = ESTIMATE, constrain = constrain) :
Negative SEs set to NaN.
And coef(m1)
gives me:
$X1
a1 d1 d2
par 11.515 2.732 -13.98
CI_2.5 NaN 0.685 NaN
CI_97.5 NaN 4.778 NaN
$X2
a1 d1 d2
par 1.099 0.903 -2.139
CI_2.5 0.712 0.561 -2.611
CI_97.5 1.485 1.245 -1.668
$GroupPars
MEAN_1 COV_11
par 0 1
CI_2.5 NA NA
CI_97.5 NA NA
I've read the changelog, but couldn't find a reason for the behavior change. I've tried desperately changing the parameters of mirt()
, but couldn't reach even a similar level of convergence. What gives? The data doesn't look like it would be inappropriate for this kind of prodecude, am I missing anything?