This exercise is about building MCAT interfaces with mirtCAT. Questions, answers, and the mirt model are available in the Exercise_04.Rdata
file. Read this file in, and inspect the objects.
Given that all the hard work has been done (writting in the questions and answers, estimating a suitable model), all you get to do if have fun with mirtCAT
! Familiarize yourself with the input objects to get a better understanding of the inputs mirtCAT requires, and also how the items will be selected.
library(mirtCAT)
## Loading required package: mirt
## Loading required package: stats4
## Loading required package: lattice
## Loading required package: shiny
load('Exercise_04.Rdata')
coef(mod, simplify=TRUE)
## $items
## a1 a2 d g u
## Item.1 0.850 0.000 -2.732 0.166 1
## Item.2 1.327 0.000 -0.100 0.156 1
## Item.3 1.691 0.000 0.976 0.177 1
## Item.4 0.604 0.000 0.414 0.215 1
## Item.5 1.389 0.000 0.912 0.183 1
## Item.6 1.422 0.000 1.984 0.164 1
## Item.7 1.028 0.000 1.169 0.168 1
## Item.8 1.037 0.000 -0.509 0.236 1
## Item.9 1.031 0.000 0.704 0.170 1
## Item.10 0.935 0.000 -0.198 0.206 1
## Item.11 1.058 0.000 -0.538 0.230 1
## Item.12 0.905 0.000 -2.856 0.196 1
## Item.13 0.968 0.000 -0.790 0.170 1
## Item.14 1.245 0.000 0.488 0.181 1
## Item.15 1.629 0.000 2.168 0.168 1
## Item.16 1.182 0.000 0.501 0.222 1
## Item.17 1.048 0.000 0.620 0.178 1
## Item.18 0.929 0.000 -0.966 0.233 1
## Item.19 0.950 0.000 0.163 0.166 1
## Item.20 2.521 0.000 -2.078 0.164 1
## Item.21 1.272 0.000 0.485 0.187 1
## Item.22 1.054 0.000 0.697 0.183 1
## Item.23 1.070 0.000 0.186 0.168 1
## Item.24 1.402 0.000 0.701 0.140 1
## Item.25 0.992 0.000 0.312 0.183 1
## Item.26 0.791 0.000 0.760 0.162 1
## Item.27 1.451 0.000 1.842 0.217 1
## Item.28 0.898 0.000 1.112 0.156 1
## Item.29 1.216 0.000 0.033 0.218 1
## Item.30 0.922 0.000 -1.114 0.164 1
## Item.31 1.700 -0.016 0.418 0.191 1
## Item.32 1.059 0.077 -0.400 0.211 1
## Item.33 0.987 0.512 1.493 0.167 1
## Item.34 1.051 0.300 -1.607 0.200 1
## Item.35 0.749 -0.149 -0.416 0.180 1
## Item.36 0.860 0.107 0.422 0.151 1
## Item.37 0.635 -0.340 -0.152 0.175 1
## Item.38 0.817 0.263 -0.606 0.236 1
## Item.39 1.118 0.292 -0.305 0.176 1
## Item.40 1.062 0.636 0.630 0.159 1
## Item.41 1.887 0.124 0.895 0.181 1
## Item.42 0.886 -0.142 0.660 0.192 1
## Item.43 0.945 0.020 2.273 0.213 1
## Item.44 1.123 -0.151 1.173 0.219 1
## Item.45 0.906 -0.248 0.288 0.185 1
## Item.46 0.913 0.050 -0.660 0.220 1
## Item.47 0.876 -0.269 2.919 0.161 1
## Item.48 0.839 0.050 0.677 0.122 1
## Item.49 1.044 0.106 -0.684 0.169 1
## Item.50 1.052 -0.016 0.186 0.168 1
## Item.51 0.710 -0.059 -0.324 0.123 1
## Item.52 1.026 -0.195 -0.275 0.200 1
## Item.53 0.876 -0.333 -0.934 0.160 1
## Item.54 0.901 0.255 0.117 0.176 1
## Item.55 1.163 0.007 0.319 0.140 1
## Item.56 1.446 0.249 -1.078 0.199 1
## Item.57 2.002 -0.373 -3.233 0.246 1
## Item.58 0.969 0.051 -0.255 0.158 1
## Item.59 1.977 0.202 0.030 0.179 1
## Item.60 0.863 -0.008 0.594 0.248 1
## Item.61 0.197 1.153 0.059 0.212 1
## Item.62 0.765 0.966 0.413 0.247 1
## Item.63 -0.010 2.265 -1.098 0.182 1
## Item.64 -0.201 1.530 0.711 0.178 1
## Item.65 -0.002 2.111 0.719 0.168 1
## Item.66 0.533 1.251 0.252 0.229 1
## Item.67 -0.342 1.011 1.357 0.147 1
## Item.68 0.410 0.776 0.404 0.192 1
## Item.69 0.399 1.009 0.264 0.181 1
## Item.70 0.101 1.307 0.268 0.259 1
## Item.71 0.002 1.656 0.437 0.165 1
## Item.72 -0.137 1.318 1.060 0.142 1
## Item.73 -0.110 0.859 0.452 0.190 1
## Item.74 0.194 1.493 0.663 0.181 1
## Item.75 0.621 0.745 -1.136 0.159 1
## Item.76 -0.046 1.094 -0.370 0.186 1
## Item.77 -0.417 1.111 1.477 0.174 1
## Item.78 -0.217 0.681 -1.224 0.163 1
## Item.79 0.077 1.610 0.258 0.198 1
## Item.80 -0.095 1.013 0.405 0.173 1
## Item.81 -0.053 1.105 0.976 0.134 1
## Item.82 -0.051 1.856 -0.349 0.116 1
## Item.83 -0.412 1.478 0.159 0.166 1
## Item.84 -0.052 1.182 -1.763 0.230 1
## Item.85 0.255 1.425 0.339 0.209 1
## Item.86 0.209 1.377 -0.667 0.221 1
## Item.87 0.165 2.011 -0.239 0.214 1
## Item.88 -0.121 1.327 -1.188 0.192 1
## Item.89 -0.057 1.422 0.385 0.142 1
## Item.90 -0.358 1.356 0.667 0.189 1
## Item.91 0.000 1.091 -0.305 0.235 1
## Item.92 0.000 1.258 1.825 0.102 1
## Item.93 0.000 1.997 0.671 0.160 1
## Item.94 0.000 0.939 0.949 0.218 1
## Item.95 0.000 1.267 2.049 0.199 1
## Item.96 0.000 1.838 -0.651 0.207 1
## Item.97 0.000 1.138 0.809 0.196 1
## Item.98 0.000 0.890 0.987 0.199 1
## Item.99 0.000 0.941 -0.006 0.183 1
## Item.100 0.000 1.087 0.319 0.157 1
## Item.101 0.000 0.947 -1.012 0.149 1
## Item.102 0.000 1.130 0.470 0.183 1
## Item.103 0.000 1.079 -0.701 0.170 1
## Item.104 0.000 1.156 0.814 0.157 1
## Item.105 0.000 1.380 -0.811 0.195 1
## Item.106 0.000 1.473 0.319 0.187 1
## Item.107 0.000 2.021 -0.847 0.230 1
## Item.108 0.000 1.196 -0.246 0.151 1
## Item.109 0.000 1.109 -1.553 0.167 1
## Item.110 0.000 1.899 0.128 0.180 1
## Item.111 0.000 2.037 0.985 0.144 1
## Item.112 0.000 1.237 0.183 0.174 1
## Item.113 0.000 1.105 -1.766 0.162 1
## Item.114 0.000 0.707 -0.621 0.127 1
## Item.115 0.000 1.865 1.656 0.174 1
## Item.116 0.000 0.950 1.810 0.167 1
## Item.117 0.000 0.872 -1.175 0.219 1
## Item.118 0.000 3.044 -0.367 0.165 1
## Item.119 0.000 1.311 0.354 0.200 1
## Item.120 0.000 1.209 0.319 0.187 1
##
## $means
## F1 F2
## 0 0
##
## $cov
## F1 F2
## F1 1.0 NA
## F2 0.5 1
plot(mod)
plot(mod, type = 'info')
plot(mod, type = 'SE')
car::some(df)
## Question Option.1 Option.2 Option.3 Option.4 Option.5
## 18 75 + 124 = ? 214 202 205 199 184
## 21 84 + 149 = ? 233 225 241 221 245
## 52 7 + 61 + 5 * 9 = ? 116 125 101 113 107
## 59 24 + 84 + 1 * 2 = ? 126 94 130 110 90
## 64 16 * 18 + 3 + 3 = ? 278 294 302 274 306
## 70 23 * 22 + 4 + 6 = ? 508 500 512 516 536
## 85 19 * 23 + 8 + 8 = ? 441 449 437 453 457
## 89 15 * 11 + 5 + 3 = ? 173 169 177 157 189
## 107 17 * 48 = ? 830 836 833 824 845
## 113 5 * 1 = ? 13 27 15 23 19
## Answer Type
## 18 199 radio
## 21 233 radio
## 52 113 radio
## 59 110 radio
## 64 294 radio
## 70 516 radio
## 85 453 radio
## 89 173 radio
## 107 830 radio
## 113 19 radio
design
input list in help(mirtCAT)
)print
and summary
on the returned object to obtain an idea of how the CAT interface wentres <- mirtCAT(df, design = list(max_items = 10))
print(res)
## n.items.answered
## 1 10
summary(res)
## $raw_responses
## [1] "1" "1" "1" "1" "1" "1" "1" "1" "1" "1"
##
## $items_answered
## [1] 1 2 3 4 5 6 7 8 9 10
Drule
). This time, however, use plot()
on the object to see how well you did!res <- mirtCAT(df, mod, start_item = 'Drule', criteria = 'Drule', design = list(max_items = 10))
print(res)
## n.items.answered Theta_1 Theta_2 SE.Theta_1 SE.Theta_2
## 10 -1.201227 -1.034193 0.5269198 0.5695406
summary(res)
## $final_estimates
## Theta_1 Theta_2
## Estimates -1.2012272 -1.0341931
## SEs 0.5269198 0.5695406
##
## $raw_responses
## [1] "1" "1" "1" "1" "1" "1" "1" "1" "1" "1"
##
## $scored_responses
## [1] 0 0 1 0 0 0 1 0 1 0
##
## $items_answered
## [1] 62 41 111 118 15 65 6 115 27 3
##
## $thetas_history
## Theta_1 Theta_2
## [1,] 0.0000000 0.0000000
## [2,] -0.4828644 -0.5218201
## [3,] -0.9100261 -0.6847712
## [4,] -0.8230569 -0.2582567
## [5,] -0.8643233 -0.4661933
## [6,] -1.2835596 -0.5288334
## [7,] -1.3296814 -0.7661305
## [8,] -1.1549744 -0.7392418
## [9,] -1.2064529 -1.0350591
## [10,] -1.0611641 -1.0116532
## [11,] -1.2012272 -1.0341931
##
## $thetas_SE_history
## Theta_1 Theta_2
## [1,] 1.0000000 1.0000000
## [2,] 0.8714678 0.8479844
## [3,] 0.7008215 0.8381369
## [4,] 0.6777409 0.6836627
## [5,] 0.6797899 0.5604519
## [6,] 0.6291356 0.5816781
## [7,] 0.6359698 0.5650311
## [8,] 0.5882973 0.5533954
## [9,] 0.5961493 0.5717369
## [10,] 0.5612506 0.5620702
## [11,] 0.5269198 0.5695406
plot(res)
c(-3,-3)
, c(0,0)
, and c(3,3)
, with the generate.pattern()
function. Passing this to mirtCAT()
to run the MCAT off-line using the design above, however this time increase the max_items
to 50. Inspect the results using summary()
and plot()
.set.seed(1234)
Thetas <- rbind(c(-3,-3), c(0,0), c(3,3))
resp <- generate_pattern(mod, Thetas)
sim_res <- mirtCAT(mo=mod, start_item = 'Drule', criteria = 'Drule', design = list(max_items = 50),
local_pattern = resp)
lapply(sim_res, print)
## [[1]]
## n.items.answered Theta_1 Theta_2 SE.Theta_1 SE.Theta_2
## 50 -2.585725 -2.426484 0.5113576 0.5041169
##
## [[2]]
## n.items.answered Theta_1 Theta_2 SE.Theta_1 SE.Theta_2
## 50 0.1160169 0.04813051 0.3334749 0.2789249
##
## [[3]]
## n.items.answered Theta_1 Theta_2 SE.Theta_1 SE.Theta_2
## 50 1.956502 2.160884 0.495524 0.5134105
lapply(sim_res, plot, SE=1.96)
## [[1]]
##
## [[2]]
##
## [[3]]