Recursive partitioning (also known as trees) based on parametric logistic (n-PL) item response theory (IRT) models for global testing of differential item functioning (DIF).
npltree(formula, data, type = c("Rasch","1PL","2PL","3PL","3PLu","4PL"), start =NULL, weights =NULL, grouppars =FALSE, vcov =TRUE, method ="BFGS", maxit =500L, reltol =1e-10, deriv ="sum", hessian =TRUE, full =TRUE, minsize =NULL,...)## S3 method for class 'npltree'plot(x, type = c("profile","regions"), terminal_panel =NULL, tp_args = list(...), tnex =2L, drop_terminal =TRUE,...)
Arguments
formula: A symbolic description of the model to be fit. This should be of type y ~ x1 + x2 where y should be an item response matrix and x1 and x2 are used as partitioning variables. For the models estimated using marginal maximum likelihood (MML), it is additionally poosible to allow for impact of a group variable so that different ability distributions are estimated in each group. This can be specified by extending the previous formula by a group factor g as y ~ g | x1 + x2.
data: a data frame containing the variables in the model.
type: character, specifying either the type of IRT model in npltree (see also nplmodel) or the type of visualization to be used in the plot method, respectively.
start: an optional vector or list of starting values (see raschmodel
or nplmodel).
weights: an optional vector of weights (interpreted as case weights).
grouppars: logical. Should the estimated distributional group parameters of a multiple-group model be included in the model parameters? (See nplmodel.)
vcov: logical or character specifying the type of variance-covariance matrix (if any) computed for the final models when fitted using MML (see nplmodel).
method: control parameter for the optimizer used by mirt for the EM algorithm when models are fitted using MML (see nplmodel).
maxit: control parameter for the optimizer used by raschmodel or nplmodel (see raschmodel, nplmodel).
reltol: control parameter for the optimizer used by raschmodel or nplmodel (see raschmodel, nplmodel).
deriv: character. Which type of derivatives should be used for computing gradient and Hessian matrix when fitting Rasch models with the conditional maximum likelihood (CML) method (see raschmodel)?
hessian: logical. Should the Hessian be computed for Rasch models fitted with the CML method (see raschmodel)?
full: logical. Should a full model object be returned for Rasch models fitted with the CML method (see raschmodel)?
minsize: The minimum number of observations in each node, which is passed to mob_control. If not set, it is 300 for 2PL models and 500 for 3PL, 3PLu, and 4PL models.
...: arguments passed to mob_control for npltree, and to the underlying plot method.
x: an object of class npltree.
terminal_panel, tp_args, tnex, drop_terminal: arguments passed to mob.
Details
Parametric logistic (n-PL) model trees are an application of model-based recursive partitioning (implemented in mob) to item response theory (IRT) models (implemented in raschmodel and nplmodel). While the "Rasch"
model is estimated by conditional maximum likelihood (CML) all other n-PL models are estimated by marginal maximum likelihood (MML) via the standard EM algorithm. The latter allow the specification of multiple-group model to capture group impact on the ability distributions.
Various methods are provided for "npltree" objects, most of them inherit their behavior from "modelparty" objects (e.g., print, summary). Additionally, dedicated extractor functions or provided for the different groups of model parameters in each node of the tree: itempar (item parameters), threshpar (threshold parameters), guesspar (guessing parameters), upperpar (upper asymptote parameters).
Returns
An object of S3 class "npltree" inheriting from class "modelparty".
o <- options(digits =4)# fit a Rasch (1PL) tree on the SPISA data setlibrary("psychotree")data("SPISA", package ="psychotree")nplt <- npltree(spisa[,1:9]~ age + gender + semester + elite + spon, data = SPISA, type ="Rasch")nplt
# visualizeplot(nplt)# compute summaries of the models fitted in nodes 1 and 2summary(nplt,1:2)options(digits = o$digits)