rasch {ltm} | R Documentation |
Rasch Model
Description
Fit the Rasch model under the Item Response Theory approach.
Usage
rasch(data, constraint = NULL, IRT.param = TRUE, start.val = NULL,
na.action = NULL, control = list(), Hessian = TRUE)
Arguments
data |
a |
constraint |
a two-column numeric matrix with at most |
IRT.param |
logical; if |
start.val |
the character string "random" or a numeric vector of |
na.action |
the |
control |
a list of control values,
|
Hessian |
logical; if |
Details
The Rasch model is a special case of the unidimensional latent trait model when all the discrimination parameters are equal. This model was first discussed by Rasch (1960) and it is mainly used in educational testing where the aim is to study the abilities of a particular set of individuals.
The model is defined as follows
\log\left(\frac{\pi_i}{1-\pi_i}\right) = \beta_{i} + \beta z,
where \pi_i
denotes the conditional probability of responding correctly
to the i
th item given z
, \beta_{i}
is the easiness parameter for the i
th
item, \beta
is the discrimination parameter (the same for all the items) and z
denotes the latent
ability.
If IRT.param = TRUE
, then the parameters estimates are reported under the usual IRT parameterization,
i.e.,
\log\left(\frac{\pi_i}{1-\pi_i}\right) = \beta (z - \beta_i^*).
The fit of the model is based on approximate marginal Maximum Likelihood, using the Gauss-Hermite quadrature rule for the approximation of the required integrals.
Value
An object of class rasch
with components,
coefficients |
a matrix with the parameter values at convergence. These are always the estimates of
|
log.Lik |
the log-likelihood value at convergence. |
convergence |
the convergence identifier returned by |
hessian |
the approximate Hessian matrix at convergence returned by |
counts |
the number of function and gradient evaluations used by the quasi-Newton algorithm. |
patterns |
a list with two components: (i) |
GH |
a list with two components used in the Gauss-Hermite rule: (i) |
max.sc |
the maximum absolute value of the score vector at convergence. |
constraint |
the value of the |
IRT.param |
the value of the |
X |
a copy of the response data matrix. |
control |
the values used in the |
na.action |
the value of the |
call |
the matched call. |
Warning
In case the Hessian matrix at convergence is not positive definite, try to re-fit the model using
rasch(..., start.val = "random")
.
Note
Although the common formulation of the Rasch model assumes that the discrimination parameter is fixed to 1,
rasch()
estimates it. If you wish to fit the constrained version of the model, use the constraint
argument accordingly. See Examples for more info.
The optimization algorithm works under the constraint that the discrimination parameter
\beta
is always positive.
When the coefficients' estimates are reported under the usual IRT parameterization (i.e., IRT.param = TRUE
),
their standard errors are calculated using the Delta method.
Author(s)
Dimitris Rizopoulos d.rizopoulos@erasmusmc.nl
References
Baker, F. and Kim, S-H. (2004) Item Response Theory, 2nd ed. New York: Marcel Dekker.
Rasch, G. (1960) Probabilistic Models for Some Intelligence and Attainment Tests. Copenhagen: Paedagogiske Institute.
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
See Also
coef.rasch
,
fitted.rasch
,
summary.rasch
,
anova.rasch
,
plot.rasch
,
vcov.rasch
,
GoF.rasch
,
item.fit
,
person.fit
,
margins
,
factor.scores
Examples
## The common form of the Rasch model for the
## LSAT data, assuming that the discrimination
## parameter equals 1
rasch(LSAT, constraint = cbind(ncol(LSAT) + 1, 1))
## The Rasch model for the LSAT data under the
## normal ogive; to do that fix the discrimination
## parameter to 1.702
rasch(LSAT, constraint = cbind(ncol(LSAT) + 1, 1.702))
## The Rasch model for the LSAT data with
## unconstraint discrimination parameter
rasch(LSAT)
## The Rasch model with (artificially created)
## missing data
data <- LSAT
data[] <- lapply(data, function(x){
x[sample(1:length(x), sample(15, 1))] <- NA
x
})
rasch(data)