mcmc.2pnob {bairt} | R Documentation |
This function estimates the Two-Parameter normal ogive item response model by MCMC sampling (Johnson & Albert, 1999, p. 195). It is a modification of the function mcmc.2pno of sirt package.
mcmc.2pnob(data, initial.value = NULL, iter = 1000, burning = 500, thin = 1, parts = 3, ...)
data |
Data frame with dichotomous item responses. |
initial.value |
List with initial values |
iter |
Total number of iterations. |
burning |
Number of burnin iterations. |
thin |
The thinning interval between consecutive observations. |
parts |
Number of splits for MCMC chain. |
... |
Further arguments. |
For the two-parameter normal ogive item response model, we assume that the performance of the i-th examine depends on an unknown latent variable θ_i, and we let θ_1, ...,θ_n respectively denotes the latent traits for all the n individuals taking the test.
We also assume that the probability of right answer depends only on the latent trait value and on the characteristics of the item. Specifically, for the i-th individual and j-th item, we model this probability as:
Pr( Y_{ ij } = 1 | θ_i, a_ j, b_ j ) = Φ( a_ jθ_i - b_ j )
where Φ is the standard normal cdf, and a_ j and b_ j are the item discrimination and item difficulty parameters associated with the j-th item (Johnson & Albert, 1999, p. 188).
An object of class mcmc.2pnob. This is a list with the following elements:
mcmcobj |
A list with the a, b, y theta chains. |
diagnostic |
A list with the diag matrix (it is a summary whit Rhat included) and the residual deviance. |
information |
A list with the final.values (values of the last iteration for each chain), and the arguments iter, burning, data, thin, parts and model, respectively. |
Javier MartÃnez
The code is adapted from an R script of Alexander Robitzsch. (https://github.com/alexanderrobitzsch/sirt/blob/master/R/mcmc.2pno.R)
Johnson, V. E. & Albert, J. H. (1999). Ordinal Data Modeling. New York: Springer.
mcmc.3pnob
, continue.mcmc.bairt
,
gelman.diag
and as.mcmc
.
# data for model data("MathTest") # estimate model only for the first 500 examinees of the data MathTest model2 <- mcmc.2pnob(MathTest[1:500,], iter = 400, burning = 100) # study of chains convergence check.plot(model2) diagnostic.mcmc(model2) parameter.plot(model2) chain.study(model2, parameter = "b", chain = 14) irc(model2, item = 3) # continue the MCMC # form 1 initialValues <- final.values.mcmc(model2) model21 <- mcmc.2pnob(MathTest[1:500,], initial.value = initialValues, iter = 3000, burning = 0) # form 2 model22 <- continue.mcmc(model2, iter = 3000, burning = 0) ## End(Not run)