# personpar

##### Extract Person Parameters of Item Response Models

A class and generic function for representing and estimating the person parameters of a given item response model.

- Keywords
- classes

##### Usage

```
personpar(object, …)
# S3 method for raschmodel
personpar(object, personwise = FALSE, ref = NULL,
vcov = TRUE, interval = NULL, tol = 1e-8, …)
# S3 method for rsmodel
personpar(object, personwise = FALSE, ref = NULL,
vcov = TRUE, interval = NULL, tol = 1e-8, …)
# S3 method for pcmodel
personpar(object, personwise = FALSE, ref = NULL,
vcov = TRUE, interval = NULL, tol = 1e-8, …)
# S3 method for plmodel
personpar(object, personwise = FALSE, vcov = TRUE,
interval = NULL, tol = 1e-6, method = "EAP", …)
# S3 method for gpcmodel
personpar(object, personwise = FALSE, vcov = TRUE,
interval = NULL, tol = 1e-6, method = "EAP", …)
```

##### Arguments

- object
a fitted model object for which person parameters should be returned/estimated.

- personwise
logical. Should the distributional parameters of the latent person ability distribution be computed (default) or the person-wise (individual) person parameters? See below for details.

- ref
a vector of labels or position indices of item parameters or a contrast matrix which should be used as restriction/for normalization. This argument will be passed over to internal calls of

`itempar`

.- vcov
logical. Should a covariance matrix be returned/estimated for the person parameter estimates? See also details below.

- interval
numeric vector of length two, specifying an interval for

`uniroot`

or`fscores`

to calculate the person parameter estimates.- tol
- method
type of estimation method being passed to

`fscores`

.- …
further arguments which are passed to

`optim`

in case of`vcov = TRUE`

or`fscores`

.

##### Details

`personpar`

is both a class to represent person parameters of item
response models as well as a generic function. The generic function can be
used to return/estimate the person parameters of a given item response model.

By default, the function `personpar()`

reports the distribution
parameters of the assumed person ability distribution. For models estimated by
marginal maximum likelihood estimation (MML) this is the mean/variance of the
underlying normal distribution, whereas for models estimated by conditional
maximum likelihood estimation (CML) this is a discrete distribution with one
estimation for each observed raw score in the data.

Alternatively, when setting `personwise = TRUE`

, the person parameter for
each person/subject in the underlying data set can be extracted. In the CML
case, this simply computes the raw score for each person and then extracts
the corresponding person parameter. In the MML case, this necessitates
(numerically) integrating out the individual person parameters (also known as
factor scores or latent trait estimates) based on the underlying normal
distribution.

More specifically, the following algorithms are employed for obtaining the distributional person parameters:

In the MML case -- i.e., for

`plmodel`

s and`gpcmodel`

s -- the distributional parameters are already part of the model specification. In a single-group specification and in the reference group of a multi-group specification the mean/variance parameters are fixed to 0/1. In the multi-group case the remaining mean/variance parameters were already estimated along with all other model parameters and simply need to be extracted. Analogously, the corresponding variance-covariance matrix just needs to be extracted and has zero covariances in the cells corresponding to fixed parameters.In the CML case -- i.e.,

`raschmodel`

s,`rsmodel`

s, and`pcmodel`

s -- the distributional parameters are estimated via`uniroot()`

with the estimation equations given by Hoijtink & Boomsma (1995) as well as Andersen (1995). This approach is fast and estimates for all possible raw scores are available. If the covariance matrix of the estimated person parameters is requested (`vcov = TRUE`

), an additional call of`optim`

is employed to obtain the Hessian numerically. With this approach, person parameters are available only for observed raw scores.

As already explained above, obtaining the person-wise (individual) person
paremeters (or ability estimates or factor scores) is straightforward in the
CML case. In the MML case, `fscores`

is used, see Chalmers
(2012) for further details. If `personwise = TRUE`

, the associated
variance-covariance matrix is not provided and simply a matrix with `NA`

s
is returned. (The same is done for `vcov = FALSE`

.)

For objects of class `personpar`

, several methods to standard generic
functions exist: `print`

, `coef`

, `vcov`

. `coef`

and
`vcov`

can be used to extract the person parameters and covariance matrix
without additional attributes. Based on this Wald tests or confidence
intervals can be easily computed, e.g., via `confint`

.

##### Value

A named vector with person parmeters of class `personpar`

and
additional attributes `"model"`

(the model name), `"vcov"`

(the
covariance matrix of the estimates if `vcov = TRUE`

or an
`NA`

-matrix otherwise) and `"type"`

(the type of the parameters,
depending on `personwise`

).

##### References

Andersen EB (1995).
Polytomous Rasch Models and Their Estimation.
In Fischer GH, Molenaar IW (eds.).
*Rasch Models: Foundations, Recent Developments, and Applications*.
Springer, New York.

Chalmers RP (2012).
mirt: A Multidimensional Item Response Theory Package for the R
Environment.
*Journal of Statistical Software*, **48**(6), 1--29.

Hoijtink H, Boomsma A (1995).
On Person Parameter Estimation in the Dichotomous Rasch Model.
In Fischer GH, Molenaar IW (eds.).
*Rasch Models: Foundations, Recent Developments, and Applications*.
Springer, New York.

##### See Also

##### Examples

```
# NOT RUN {
o <- options(digits = 3)
## load verbal aggression data
data("VerbalAggression", package = "psychotools")
## fit a Rasch model to dichotomized verbal aggression data and
ram <- raschmodel(VerbalAggression$resp2)
## extract person parameters
## (= parameters of the underlying ability distribution)
rap <- personpar(ram)
rap
## extract variance-covariance matrix and standard errors
vc <- vcov(rap)
sqrt(diag(vc))
## Wald confidence intervals
confint(rap)
## now match each person to person parameter with the corresponding raw score
personpar(ram, personwise = TRUE)[1:6]
## person parameters for RSM/PCM fitted to original polytomous data
rsm <- rsmodel(VerbalAggression$resp)
pcm <- pcmodel(VerbalAggression$resp)
cbind(personpar(rsm, vcov = FALSE), personpar(pcm, vcov = FALSE))
if(requireNamespace("mirt")) {
## fit a 2PL accounting for gender impact and
twoplm <- plmodel(VerbalAggression$resp2, impact = VerbalAggression$gender)
## extract the person parameters
## (= mean/variance parameters from the normal ability distribution)
twoplp <- personpar(twoplm)
twoplp
## extract the standard errors
sqrt(diag(vcov(twoplp)))
## Wald confidence intervals
confint(twoplp)
## now look at the individual person parameters
## (integrated out over the normal ability distribution)
personpar(twoplm, personwise = TRUE)[1:6]
}
options(digits = o$digits)
# }
```

*Documentation reproduced from package psychotools, version 0.5-1, License: GPL-2 | GPL-3*