The jmleIRT package includes Joint Maximum Likelihood Estimation
(JMLE) of person abilities and item difficulties for the Rasch model
(1PL). It incorporates some selected bias correction techniques and
offers Warm’s Weighted Likelihood Estimates (WLE) for person ability
estimation.
- Joint Maximum Likelihood Estimation of person abilities
$\theta_p$ and item difficulties$\beta_i$ . - Bias correction to reduce estimation bias, including epsilon bias stabilization.
- Warm’s Weighted Likelihood Estimates (WLE) for refined person ability estimates.
- Handling of missing data (missing responses coded as
NA). - Verbose mode for detailed iteration progress monitoring.
- Unit testing.
Or install the development version from GitHub:
# install.packages("remotes")
remotes::install_github("jansteinfeld/jmleIRT")library(jmleIRT)
# Simulate response 40 persons (p) × 5 items (i)
set.seed(123)
X <- matrix(rbinom(40 * 5, 1, 0.5), nrow = 40)
# Estimate Rasch model using JMLE with bias correction
fit <- jmle_estimation(X, max_iter = 200, conv = 1e-5,
center = "items", bias_correction = "simple")
# Item difficulties (centered)
print(fit$beta)
# Compute Weighted Likelihood Estimates for persons
wle_res <- estimate_wle(X, fit$beta)
# Person ability estimates via WLE
print(wle_res$wle)
# Plot item characteristic curves
plot(fit, type = "hist")
plot(fit, type = "icc", items = 1:3)The Rasch model is a fundamental Item Response Theory (IRT) model used
for dichotomous item data. The probability that person
where
JMLE simultaneously estimates person abilities
This is typically solved via an iterative algorithm updating
Although easy to implement and computationally efficient, JMLE estimates suffer from bias, especially in small samples or with extreme response patterns.
The Joint Maximum Likelihood Estimation (JMLE) for the Rasch model is
known to produce biased parameter estimates, especially in finite
samples and with extreme response patterns. The jmleIRT package
implements two key bias correction techniques:
-
Epsilon adjustment: Proposed by Bertoli Barsotti, Punzo, and Lando, this method adds a small positive constant
$$\varepsilon > 0$$ during the estimation process. This adjustment prevents infinite log-odds for perfect or zero scores, ensuring finite item difficulty and ability estimates. It also helps alleviate bias related to extreme response patterns by smoothing the estimation. The adjustment is controlled by the argumentepsinjmle_estimation(). Wheneps > 0, a small positive constant is used to regularize extreme response patterns; wheneps = 0(default), persons with all 0 or all 1 responses are excluded from the iterative updates and assigned ±Inf afterward. -
Simple post-hoc bias correction: The option
bias_correction = TRUEinjmle_estimation()applies a simple finite-sample scaling of item difficulties (factor (I − 1)/I) as a fast bias-reduction heuristic. -
Analytical bias correction: The function
biasCorrection()applies a separate, more elaborate first-order analytic correction based on score and information terms for person and item parameters. This approach involves modifying the item difficulty estimates based on theoretical bias expressions derived from asymptotic expansions or minimum divergence estimators. It aims to reduce the structural bias inherent in the JMLE estimates as described in psychometric literature (e.g., Bertoli Barsotti & Punzo, 2012; Lando & Bertoli Barsotti, 2014).
In combination, the epsilon adjustment promotes numerical stability and improved bias behavior at the estimation level, while analytical bias correction provides targeted, theoretically grounded refinement of item parameter estimates to enhance overall accuracy and robustness of the JMLE algorithm.
The jmleIRT package offers three levels of bias correction for the
JMLE estimates, controlled by the argument bias_correction in
jmle_estimation():
-
"none": Plain JMLE without any bias correction. This is the classical joint ML estimator and is useful as a baseline, but is known to be biased in finite samples. -
"simple": A fast finite-sample adjustment that rescales item difficulties by a factor$(I - 1)/I$ , where$I$ is the number of items. This provides a quick reduction of the small-sample bias in item parameters. -
"analytic": A first-order analytical bias correction based on score and information terms for persons and items. Internally,jmle_estimation(..., bias_correction = "analytic")first computes the JMLE solution and then callsbiasCorrection()to obtain corrected parameters. The result object contains both the raw JMLE (theta,beta) and the analytically corrected estimates (theta_analytic,beta_analytic). -
Use
"none"for didactic purposes and to reproduce classical JMLE results. -
Use
"simple"for ‘quick, low-cost bias reduction’ in item difficulties. -
Use
"analytic"when sample size is moderate to large (N >> I) and bias in both person and item parameters is a concern.
By default, jmle_estimation() returns joint ML person estimates
theta. For reporting individual abilities, Warm’s Weighted
Likelihood Estimates (WLE) often have better bias properties.
- Set
estimatewle = TRUEinjmle_estimation()to obtain WLEs infit$wle_estimate. - The joint ML estimates (
fit$theta) are primarily useful for calibration and comparison with other Rasch estimation methods.
The object returned by jmle_estimation() also contains approximate
standard errors for person and item parameters (se_theta, se_beta),
computed from the observed information at the final JMLE solution.
- Estimation of person and item parameters using bias-corrected JMLE
- optional ability estimation based on Warm’s Weighted Likelihood Estimates (WLE)
- Handling of missing data
- documentation and examples
- Open-source development on GitHub for transparency and collaboration
- Optimized C++ backend for performance
- Bertoli Barsotti, L., & Punzo, A. (2012). Comparison of two bias reduction techniques for the Rasch model. Electronic Journal of Applied Statistical Analysis, 5(3), 360-366.
- Lando, T., & Bertoli Barsotti, L. (2014). A modified minimum divergence estimator: some preliminary results for the Rasch model. Electronic Journal of Applied Statistical Analysis, 7(1), 37-57.
- Wright, B. D., & Panchapakesan, N. (1969). A Procedure for Sample-Free Item Analysis. Educational and Psychological Measurement, 29(1), 23-48.
GPL-3
Contributions welcome via GitHub: jansteinfeld/jmleIRT.
