factor.scores | R Documentation |

Computation of factor scores for `grm`

, `ltm`

, `rasch`

and `tpm`

models.

factor.scores(object, ...) ## S3 method for class 'gpcm' factor.scores(object, resp.patterns = NULL, method = c("EB", "EAP", "MI"), B = 5, robust.se = FALSE, prior = TRUE, return.MIvalues = FALSE, ...) ## S3 method for class 'grm' factor.scores(object, resp.patterns = NULL, method = c("EB", "EAP", "MI"), B = 5, prior = TRUE, return.MIvalues = FALSE, ...) ## S3 method for class 'ltm' factor.scores(object, resp.patterns = NULL, method = c("EB", "EAP", "MI", "Component"), B = 5, robust.se = FALSE, prior = TRUE, return.MIvalues = FALSE, ...) ## S3 method for class 'rasch' factor.scores(object, resp.patterns = NULL, method = c("EB", "EAP", "MI"), B = 5, robust.se = FALSE, prior = TRUE, return.MIvalues = FALSE, ...) ## S3 method for class 'tpm' factor.scores(object, resp.patterns = NULL, method = c("EB", "EAP", "MI"), B = 5, prior = TRUE, return.MIvalues = FALSE, ...)

`object` |
an object inheriting from either class |

`resp.patterns` |
a matrix or a data.frame of response patterns with columns denoting the items; if |

`method` |
a character supplying the scoring method; available methods are:
Empirical Bayes, Expected a Posteriori, Multiple Imputation, and Component. See |

`B` |
the number of multiple imputations to be used if |

`robust.se` |
logical; if |

`prior` |
logical. If |

`return.MIvalues` |
logical. If |

`...` |
additional arguments; currently none is used. |

Factor scores or ability estimates are summary measures of the posterior distribution *p(z|x)*,
where *z* denotes the vector of latent variables and *x* the vector of manifest variables.

Usually as factor scores we assign the modes of the above posterior distribution evaluated at the MLEs. These
Empirical Bayes estimates (use `method = "EB"`

) and their associated variance are good measures of the
posterior distribution while *p -> infinity*, where *p* is the number of items.
This is based on the result

*p(z|x)=p(z|x; \hat{θ})(1+O(1/p)),*

where *\hat{θ}* are the MLEs. However, in cases where *p* and/or *n* (the sample size) is small
we ignore the variability of plugging-in estimates but not the *true* parameter values. A solution to this
problem can be given using Multiple Imputation (MI; use `method = "MI"`

). In particular, MI is used the
other way around, i.e.,

- Step 1:
Simulate new parameter values, say

*θ^**, from*N(\hat{θ}, C(\hat{θ}))*, where*C(\hat{θ})*is the large sample covariance matrix of*\hat{θ}*(if`robust.se = TRUE`

,*C(\hat{θ})*is based on the sandwich estimator).- Step 2:
Maximize

*p(z|x; θ^*)**wrt**z*and also compute the associated variance to this mode.- Step 3:
Repeat steps 1-2

`B`

times and combine the estimates using the known formulas of MI.

This scheme explicitly acknowledges the ignorance of the true parameter values by drawing from their large sample
posterior distribution while taking into account the sampling error. The modes of the posterior distribution
*p(z|x; theta)* are numerically approximated using the BFGS algorithm in `optim()`

.

The Expected a posteriori scores (use `method = "EAP"`

) computed by `factor.scores()`

are defined as
follows:

*\int z p(z | x; \hat{θ}) dz.*

The Component scores (use `method = "Component"`

) proposed by Bartholomew (1984) is an alternative method
to scale the sample units in the latent dimensions identified by the model that avoids the calculation of the
posterior mode. However, this method is not valid in the general case where nonlinear latent terms are assumed.

An object of class `fscores`

is a list with components,

`score.dat` |
the |

`method` |
a character giving the scoring method used. |

`B` |
the number of multiple imputations used; relevant only if |

`call` |
a copy of the matched call of |

`resp.pats` |
logical; is |

`coef` |
the parameter estimates returned by |

Dimitris Rizopoulos d.rizopoulos@erasmusmc.nl

Bartholomew, D. (1984) Scaling binary data using a factor model. *Journal of the Royal
Statistical Society, Series B*, **46**, 120–123.

Bartholomew, D. and Knott, M. (1999) *Latent Variable Models
and Factor Analysis*, 2nd ed. London: Arnold.

Bartholomew, D., Steel, F., Moustaki, I. and Galbraith, J. (2002)
*The Analysis and Interpretation of Multivariate Data for
Social Scientists*. London: Chapman and Hall.

Rizopoulos, D. (2006) **ltm**: An R package for latent variable modelling and item response theory analyses.
*Journal of Statistical Software*, **17(5)**, 1–25. URL doi: 10.18637/jss.v017.i05

Rizopoulos, D. and Moustaki, I. (2008) Generalized latent variable models
with nonlinear effects. *British Journal of Mathematical and Statistical Psychology*, **61**, 415–438.

`plot.fscores`

,
`gpcm`

,
`grm`

,
`ltm`

,
`rasch`

,
`tpm`

## Factor Scores for the Rasch model fit <- rasch(LSAT) factor.scores(fit) # Empirical Bayes ## Factor scores for all subjects in the ## original dataset LSAT factor.scores(fit, resp.patterns = LSAT) ## Factor scores for specific patterns, ## including NA's, can be obtained by factor.scores(fit, resp.patterns = rbind(c(1,0,1,0,1), c(NA,1,0,NA,1))) ## Not run: ## Factor Scores for the two-parameter logistic model fit <- ltm(Abortion ~ z1) factor.scores(fit, method = "MI", B = 20) # Multiple Imputation ## Factor Scores for the graded response model fit <- grm(Science[c(1,3,4,7)]) factor.scores(fit, resp.patterns = rbind(1:4, c(NA,1,2,3))) ## End(Not run)

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.