mlef
is a function to compute maximum likelihood estimates of theta using fence items.
mlef(
object,
select = NULL,
resp,
fence_slope = 5,
fence_difficulty = c(-5, 5),
start_theta = NULL,
max_iter = 100,
crit = 0.001,
truncate = FALSE,
theta_range = c(-4, 4),
max_change = 1,
do_Fisher = TRUE
)# S4 method for item_pool
mlef(
object,
select = NULL,
resp,
fence_slope = 5,
fence_difficulty = c(-5, 5),
start_theta = NULL,
max_iter = 50,
crit = 0.005,
truncate = FALSE,
theta_range = c(-4, 4),
max_change = 1,
do_Fisher = TRUE
)
(optional) if item indices are supplied, only the specified items are used.
item response on all (or selected) items in the object
argument. Can be a vector, a matrix, or a data frame. length(resp)
or ncol(resp)
must be equal to the number of all (or selected) items.
the slope parameter to use on fence items. (default = 5
)
the difficulty parameter to use on fence items. Must have two values for the lower and the upper fence respectively. (default = c(-5, 5)
)
(optional) initial theta values. If not supplied, EAP estimates using uniform priors are used as initial values. Uniform priors are computed using the theta_range
argument below, with increments of .1
.
maximum number of iterations. (default = 100
)
convergence criterion to use. (default = 0.001
)
set TRUE
to impose a bound on the estimate. (default = FALSE
)
a range of theta values to bound the estimate. Only effective when truncate
is TRUE
. (default = c(-4, 4)
)
upper bound to impose on the absolute change in theta between iterations. Absolute changes exceeding this value will be capped to max_change
. (default = 1.0
)
set TRUE
to use Fisher scoring instead of Newton-Raphson method. (default = TRUE
)
mlef
returns a list containing estimated values.
th
theta value.
se
standard error.
conv
TRUE
if estimation converged.
trunc
TRUE
if truncation was applied on th
.
Han, K. T. (2016). Maximum likelihood score estimation method with fences for short-length tests and computerized adaptive tests. Applied Psychological Measurement, 40(4), 289-301.
# NOT RUN {
mlef(itempool_fatigue, resp = resp_fatigue_data[10, ])
mlef(itempool_fatigue, select = 1:20, resp = resp_fatigue_data[10, 1:20])
# }
Run the code above in your browser using DataLab