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 npltree
plot(x, type = c("profile", "regions"), terminal_panel = NULL,
tp_args = list(...), tnex = 2L, drop_terminal = TRUE, ...)
An object of S3 class "npltree"
inheriting from class "modelparty"
.
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
.
a data frame containing the variables in the model.
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.
an optional vector or list of starting values (see raschmodel
or nplmodel
).
an optional vector of weights (interpreted as case weights).
logical. Should the estimated distributional group parameters of a multiple-group model
be included in the model parameters? (See nplmodel
.)
logical or character specifying the type of variance-covariance matrix (if any) computed for
the final models when fitted using MML (see nplmodel
).
control parameter for the optimizer used by mirt
for the EM algorithm
when models are fitted using MML (see nplmodel
).
control parameter for the optimizer used by raschmodel
or
nplmodel
(see raschmodel
, nplmodel
).
control parameter for the optimizer used by raschmodel
or
nplmodel
(see raschmodel
, nplmodel
).
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
)?
logical. Should the Hessian be computed for Rasch models fitted with the CML method
(see raschmodel
)?
logical. Should a full model object be returned for Rasch models fitted with the CML method
(see raschmodel
)?
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.
an object of class npltree
.
arguments passed to mob
.
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).
mob
, nplmodel
,
rstree
, pctree
, raschtree
, gpcmtree
o <- options(digits = 4)
# fit a Rasch (1PL) tree on the SPISA data set
library("psychotree")
data("SPISA", package = "psychotree")
nplt <- npltree(spisa[, 1:9] ~ age + gender + semester + elite + spon,
data = SPISA, type = "Rasch")
nplt
# visualize
plot(nplt)
# compute summaries of the models fitted in nodes 1 and 2
summary(nplt, 1:2)
options(digits = o$digits)
Run the code above in your browser using DataLab