# estimate_3pl: Estimation of the 3PL model In Rirt: Data Analysis and Parameter Estimation Using Item Response Theory

## 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.