estimate_3pl: Estimation of the 3PL model

Description Usage Arguments Value Examples

Description

Estimate the 3PL model using the joint or marginal maximum likelihood estimation methods

model_3pl_eap scores response vectors using the EAP method

model_3pl_map scores response vectors using the MAP method

model_3pl_jmle estimates the item and ability parameters using the joint maximum likelihood estimation (JMLE) method

model_3pl_mmle estimates the item parameters using the marginal maximum likelihood estimation (MMLE) method

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
model_3pl_eap(u, a, b, c, D = 1.702, priors = c(0, 1),
  bounds_t = c(-4, 4))

model_3pl_map(u, a, b, c, D = 1.702, priors = c(0, 1),
  bounds_t = c(-4, 4), iter = 30, conv = 0.001)

model_3pl_dv_Pt(t, a, b, c, D)

model_3pl_dv_Pa(t, a, b, c, D)

model_3pl_dv_Pb(t, a, b, c, D)

model_3pl_dv_Pc(t, a, b, c, D)

model_3pl_dv_jmle(pdv_fn, u, t, a, b, c, D)

model_3pl_jmle(u, t = NA, a = NA, b = NA, c = NA, D = 1.702,
  iter = 100, conv = 0.001, nr_iter = 10, scale = c(0, 1),
  bounds_t = c(-4, 4), bounds_a = c(0.01, 2.5), bounds_b = c(-4, 4),
  bounds_c = c(0, 0.4), priors = list(t = c(0, 1)), decay = 1,
  verbose = FALSE, true_params = NULL)

model_3pl_dv_mmle(pdv_fn, u, quad, a, b, c, D)

model_3pl_mmle(u, t = NA, a = NA, b = NA, c = NA, D = 1.702,
  iter = 100, conv = 0.001, nr_iter = 10, bounds_t = c(-4, 4),
  bounds_a = c(0.01, 2.5), bounds_b = c(-4, 4), bounds_c = c(0, 0.4),
  priors = list(t = c(0, 1)), decay = 1, quad = "11",
  score_fn = c("eap", "map"), verbose = FALSE, true_params = NULL)

model_3pl_fitplot(u, t, a, b, c, D = 1.702, index = NULL,
  intervals = seq(-3, 3, 0.5))

Arguments

u

observed response matrix, 2d matrix

a

discrimination parameters, 1d vector (fixed value) or NA (freely estimate)

b

difficulty parameters, 1d vector (fixed value) or NA (freely estimate)

c

pseudo-guessing parameters, 1d vector (fixed value) or NA (freely estimate)

D

the scaling constant, 1.702 by default

priors

prior distributions, a list

bounds_t

the bounds of ability parameters

iter

the maximum iterations, default=100

conv

the convergence criterion

t

ability parameters, 1d vector (fixed value) or NA (freely estimate)

pdv_fn

the function to compute derivatives of P w.r.t the estimating parameters

nr_iter

the maximum newton-raphson iterations, default=10

scale

the mean and SD of the theta scale, default=c(0,1) in JMLE

bounds_a

the bounds of discrimination parameters

bounds_b

the bounds of difficulty parameters

bounds_c

the bounds of guessing parameters

decay

decay rate, default=1

verbose

TRUE to print details for debugging

true_params

a list of true parameters for evaluating the parameter recovery

quad

the number of quadrature points

score_fn

the scoring function: 'eap' or 'map'

index

the indices of items being plotted

intervals

intervals on the x-axis

Value

model_3pl_eap returns theta estimates and standard errors in a list

model_3pl_map returns theta estimates in a list

model_3pl_jmle returns estimated t, a, b, c parameters in a list

model_3pl_mmle returns estimated t, a, b, c parameters in a list

model_3pl_fitplot returns a ggplot object

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
with(model_3pl_gendata(10, 40), 
    cbind(true=t, est=model_3pl_eap(u, a, b, c)$t))
with(model_3pl_gendata(10, 40), 
     cbind(true=t, est=model_3pl_map(u, a, b, c)$t))

# generate data
x <- model_3pl_gendata(2000, 40)
# free estimation, 40 iterations
y <- model_3pl_jmle(x$u, true_params=x, iter=40, verbose=TRUE)
# fix c-parameters, 40 iterations
y <- model_3pl_jmle(x$u, c=0, true_params=x, iter=40)


# generate data
x <- model_3pl_gendata(2000, 40)
# free estimation, 40 iterations
y <- model_3pl_mmle(x$u, true_params=x, iter=40, verbose=TRUE)

with(model_3pl_gendata(1000, 20), 
     model_3pl_fitplot(u, t, a, b, c, index=c(1, 3, 5)))

Rirt documentation built on Oct. 30, 2019, 12:13 p.m.

Related to estimate_3pl in Rirt...