# ltm: Latent Trait Models under IRT

This package provides a flexible framework for Item Response Theory analyses for dichotomous and polytomous data under a Marginal Maximum Likelihood approach. The fitting algorithms provide valid inferences under Missing At Random missing data mechanisms.

## Package Info

Current version: 0.9-9

Author: Dimitris Rizopoulos d.rizopoulos@erasmusmc.nl

Maintainer: Dimitris Rizopoulos d.rizopoulos@erasmusmc.nl

Depends: R(>= 2.14.0), MASS, msm, mvtnorm, polycor

## Available Features

• Descriptives: samples proportions, missing values information, biserial correlation of items with total score, pairwise associations between items, Cronbach’s $$\alpha$$, unidimensionality check using modified parallel analysis, nonparametric correlation coefficient, plotting.
• Dichotomous data: Rasch Model, Two Parameter Logistic Model, Birnbaum’s Three Parameter Model, and Latent Trait Model up to two latent variables (allowing also for nonlinear terms between the latent traits).
• Polytomous data: Graded Response Model and Generalized Partial Credit Model.
• Goodness-of-Fit: Bootstrap Pearson $$\chi^2$$ for Rasch and Generalized Partial Credit models, fit on the two- and three-way margins for all models, likelihood ratio tests between nested models (including AIC and BIC criteria values), and item- and person-fit statistics.
• Factor Scoring: Empirical Bayes (i.e., posterior modes), Expected a Posteriori (i.e., posterior means), Multiple Imputed Empirical Bayes, and Component Scores for dichotomous data.
• Test Equating: Alternate Form Equating (where common and unique items are analyzed simultaneously) and Across Sample Equating (where different sets of unique items are analyzed separately based on previously calibrated anchor items).
• Plotting: Item Characteristic Curves, Item Information Curves, Test Information Functions, Standard Error of Measurement, Standardized Loadings Scatterplot (for the two-factor latent trait model), Item Operation Characteristic Curves (for ordinal polytomous data), Item Person Maps.

## Future Plans

• Bock’s Nominal Response model.

• The changes in the current and previous versions of the package can be found in the NEWS file.

## FAQ

• How do I interpret the output of descript()?

Look for lack of significance in the pairwise associations between items. IRT posits that items are related through an underlying latent trait. If items are not significantly related to each other, then IRT may not be appropriate.

• Can grm() handle multidimensional data with both dichotomous and polytomous items?

If you are using numeric variables and not factors in the data argument of grm(), then the levels should start from one not zero and should have consecutive values, e.g., 1, 2, 3, ... . If this is not the case, you may use the following solution in order grm() to work properly:

# say 'dat' is your data.frame;
# convert the columns to a factor
dat.new <- dat
dat.new[] <- lapply(dat, factor)

# fit the model to the new data set
grm(dat.new)
• How to obtain factor scores for specific response patterns:

Try to use the resp.patterns argument of the factor.scores() function, e.g.,

fit <- rasch(LSAT)
# factor scores for each sample unit in the original data set
factor.scores(fit, resp.patterns = LSAT)
• How to fit the Rasch model assuming discrimination equals one:

You need to use the constraint argument of rasch(), e.g.,

rasch(LSAT, constraint = cbind(length(LSAT) + 1, 1))
• How to fit the Rasch model under the normal ogive:

You need to fix the discrimination parameter to 1.702, e.g.,

rasch(LSAT, constraint = cbind(length(LSAT) + 1, 1.702))