# NOT RUN {
#########################
# Binary Response Model #
#########################
# }
# NOT RUN {
set.seed(888)
# generating an item bank under a binary response model:
b.params <- cbind(a = runif(100, .5, 1.5), b = rnorm(100, 0, 2), c = .2)
# simulating responses using default theta:
b.mod <- simIrt(theta = 0, params = b.params, mod = "brm")
# separating the items into "administered" and "not administered":
left_par <- b.mod$params[1:95, ]
cat_par <- b.mod$params[96:100, ]
cat_resp <- b.mod$resp[ , 96:100]
# running simIrt automatically adds the item numbers to the front!
# attempting each item selection algorithm (except random):
uwfi.it <- itChoose(left_par = left_par, mod = "brm",
numb = 1, n.select = 1,
cat_theta = 0,
select = "UW-FI",
at = "theta")
lwfi.it <- itChoose(left_par = left_par, mod = "brm",
numb = 1, n.select = 1,
cat_par = cat_par, cat_resp = cat_resp,
select = "LW-FI")
pwfi.it <- itChoose(left_par = left_par, mod = "brm",
numb = 1, n.select = 1,
cat_par = cat_par, cat_resp = cat_resp,
select = "PW-FI", ddist = dnorm, mean = 0, sd = 1)
fpkl.it <- itChoose(left_par = left_par, mod = "brm",
numb = 1, n.select = 1,
cat_theta = 0,
select = "FP-KL",
at = "theta", delta = 1.96)
vpkl.it <- itChoose(left_par = left_par, mod = "brm",
numb = 1, n.select = 1,
cat_par = cat_par, cat_theta = 0,
select = "VP-KL",
at = "theta", delta = 1.96)
fikl.it <- itChoose(left_par = left_par, mod = "brm",
numb = 1, n.select = 1,
cat_theta = 0,
select = "FI-KL",
at = "theta", delta = 1.96)
vikl.it <- itChoose(left_par = left_par, mod = "brm",
numb = 1, n.select = 1,
cat_par = cat_par, cat_theta = 0,
select = "VI-KL",
at = "theta", delta = 1.96)
# which items were the most popular?
uwfi.it$params # 61 (b close to 0)
lwfi.it$params # 55 (b close to -2.5)
pwfi.it$params # 16 (b close to -0.5)
fpkl.it$params # 61 (b close to 0)
vpkl.it$params # 61 (b close to 0)
fikl.it$params # 16 (b close to -0.5)
vikl.it$params # 16 (b close to -0.5)
# if we pick the top 10 items for "FI-KL":
fikl.it2 <- itChoose(left_par = left_par, mod = "brm",
numb = 10, n.select = 10,
cat_theta = 0,
select = "FI-KL",
at = "theta", delta = 1.96)
# we find that item 61 is the third best item
fikl.it2$params
# why did "LW-FI" pick an item with a strange difficulty?
cat_resp
# because cat_resp is mostly 0 ...
# --> so the likelihood is weighted toward negative numbers.
#########################
# Graded Response Model #
#########################
set.seed(999)
# generating an item bank under a graded response model:
g.params <- cbind(runif(100, .5, 1.5), rnorm(100), rnorm(100),
rnorm(100), rnorm(100), rnorm(100))
# simulating responses (so that the parameters are ordered - see simIrt)
left_par <- simIrt(theta = 0, params = g.params, mod = "grm")$params
# now we can choose the best item for theta = 0 according to FI:
uwfi.it2 <- itChoose(left_par = left_par, mod = "brm",
numb = 1, n.select = 1,
cat_theta = 0,
select = "UW-FI",
at = "theta")
uwfi.it2
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab