nplmodel (plmodel for backward compatibility with earlier
  psychotools versions) provides a basic fitting function for n-PL type parametric logistic IRT
  models (2PL, 3PL, 3PLu, 4PL, Rasch/1PL) providing a wrapper around
  mirt and multipleGroup relying on
  MML estimation via the standard EM algorithm (Bock & Aitkin, 1981). Models are
  estimated under the slope/intercept parametrization, see e.g. Chalmers (2012).
  The probability of person \(i\) ‘solving’ item \(j\) is modelled as:
  $$P(X_{ij} = 1|\theta_{i},a_{j},d_{j},g_{j},u_{j}) =
  g_{j} + \frac{(u_{j} - g_{j})}{1 + \exp{(-(a_{j}\theta_{i} + d_{j}))}}$$
A reparametrization of the intercepts to the classical IRT parametrization,
  \(b_{j} = -\frac{d_{j}}{a_{j}}\), is provided via the corresponding
  itempar method.
If an optional impact variable is supplied, a multiple-group model of
  the following form is being fitted: Item parameters are fixed to be equal
  across the whole sample. For the first group of the impact variable the
  person parameters are fixed to follow the standard normal distribution. In the
  remaining impact groups, the distributional parameters (mean and
  variance of a normal distribution) of the person parameters are
  estimated freely. See e.g. Baker & Kim (2004, Chapter 11), Debelak & Strobl
  (2019), or Schneider et al. (2022) for further details. To improve convergence of the model fitting
  algorithm, the first level of the impact variable should always correspond
  to the largest group. If this is not the case, levels are re-ordered internally.
If grouppars is set to TRUE the freely estimated distributional
  group parameters (if any) are returned as part of the model parameters.
By default, type is set to "2PL". Therefore, all so-called
  guessing parameters are fixed at 0 and all upper asymptotes are fixed at 1.
  "3PL" results in all upper asymptotes being fixed at 1 and "3PLu"
  results in all all guessing parameters being fixed at 0. "4PL" results
  in a full estimated model as specified above. Finally, if type is set to
  "1PL" (or equivalently "RM"), an MML-estimated Rasch model is
  being fitted. This means that all slopes are restricted to be equal across all
  items, all guessing parameters are fixed at 0 and all upper asymptotes are
  fixed at 1.
Note that internally, the so-called guessing parameters and upper asymptotes
  are estimated on the logit scale (see also mirt).
  Therefore, most of the basic methods below include a logit argument,
  which can be set to TRUE or FALSE allowing for a retransformation
  of the estimates and their variance-covariance matrix (if requested) using the
  logistic function and the delta method if logit = FALSE.
nplmodel returns an object of class "nplmodel" for which
  several basic methods are available, including print, plot,
  summary, coef, vcov, logLik, estfun,
  discrpar, itempar, threshpar,
  guesspar, upperpar, and personpar.
  
Finally, if type is set to "1PL", a Rasch model is estimated. 
  Here, a common slope parameter is estimated for all items, whereas the
  person parameters are assumed to follow a standard normal distribution.
  Please note that this variant of the Rasch model differs from the one used 
  by mirt, which sets all slope parameters to 1, and 
  estimates the variance of the person parameters instead. Both variants 
  are mathematically equivalent and hence should lead to the same intercept parameter 
  estimates. For numerical reasons, nplmodel and mirt 
  can lead to slightly different item parameter estimates, though, under their 
  respective default settings, in particular when some items are very easy 
  or very difficult and the common slope parameter is large. A distinct advantage 
  of the variant used by nplmodel is that it allows a direct 
  comparison of the slope and intercept parameters with that estimated in more complex 
  IRT models, such as the 2PL model.