DPMirt: Bayesian Semiparametric IRT Models Using DPM Priors
DPMirt-package.RdFits Bayesian semiparametric Item Response Theory (IRT) models using Dirichlet Process Mixture (DPM) priors via NIMBLE. Supports Rasch, 2PL, and 3PL models with parametric (Normal) or semiparametric (Dirichlet Process Mixture) priors on the latent ability distribution, and provides triple-goal posterior summaries (PM, CB, GR) for simultaneous estimation and ranking of person abilities.
Details
The DPMirt package supports:
Three IRT models: Rasch, 2PL, and 3PL
Two latent trait priors: parametric (Normal) and semiparametric (DPM)
Three identification strategies where compatible: constrained_item, constrained_ability, unconstrained
Three posterior summary methods: PM, CB (Ghosh 1992), GR (Shen & Louis 1998)
Compile-once, sample-many MCMC workflow
Optional alpha hyperprior elicitation via DPprior, with Gamma(1, 3) fallback
Rasch/2PL reliability-targeted simulation when IRTsimrel is installed; fallback simulation otherwise, including 3PL without reliability targeting
The backbone NIMBLE model code is adapted from Paganin et al. (2023). MCMC compilation, sampling, and model management are handled by NIMBLE's C++ infrastructure.
Typical Workflow
A standard DPMirt analysis proceeds in five steps:
Simulate or load data: Use
dpmirt_simulateor provide a binary response matrix.Fit the model: Call
dpmirtfor one-step fitting, or use the step-by-step pipelinedpmirt_spec\(\rightarrow\)dpmirt_compile\(\rightarrow\)dpmirt_sample\(\rightarrow\)dpmirt_rescale.Summarize: Compute triple-goal estimates with
dpmirt_estimatesand extract posterior draws withdpmirt_draws.Diagnose: Evaluate convergence and model comparison via
dpmirt_diagnosticsanddpmirt_compare.Visualize: Use
plot(fit)and thedpmirt_plot_*family for publication-quality figures.
Model Fitting
dpmirtOne-step model fitting (specification + compilation + sampling + rescaling)
dpmirt_specCreate model specification
dpmirt_compileCompile NIMBLE model and MCMC
dpmirt_sampleRun MCMC sampling
dpmirt_resumeContinue sampling from a fitted model
Estimation and Rescaling
dpmirt_rescalePost-hoc identification rescaling (Rasch, IRT, SI)
dpmirt_estimatesCompute PM, CB, and GR triple-goal posterior summaries
dpmirt_drawsExtract posterior draws as matrix or long-format data frame
Diagnostics and Model Comparison
dpmirt_diagnosticsMCMC convergence diagnostics (ESS, optional chain-aware R-hat, trace summaries, and WAIC provenance)
dpmirt_compareWAIC-based model comparison with aggregation provenance
Simulation
dpmirt_simulateSimulate IRT data with flexible latent distributions and reliability targeting
dpmirt_lossEvaluate estimator loss (MSEL, MSELR, KS, custom)
Prior Specification
dpmirt_alpha_priorPrincipled DPM concentration parameter elicitation
DP Density Estimation
dpmirt_dp_densityPosterior density estimation from the Dirichlet Process mixture, most directly interpretable for Rasch/location-shift settings
Visualization
S3 plot methods:
plot(fit)Trace plots, density plots, and caterpillar plots for fitted models
plot(estimates)Caterpillar plots of PM/CB/GR estimates and PM-vs-CB shrinkage plots
plot(sim)True-parameter histograms and response-matrix heatmaps for simulated data
Standalone ggplot2 functions (require ggplot2):
dpmirt_plot_trace,
dpmirt_plot_density,
dpmirt_plot_caterpillar,
dpmirt_plot_items,
dpmirt_plot_icc,
dpmirt_plot_info,
dpmirt_plot_dp_density,
dpmirt_plot_clusters,
dpmirt_plot_wright_map,
dpmirt_plot_parameter_trace,
dpmirt_plot_density_compare,
dpmirt_plot_pp_check
References
Paganin, S., Paciorek, C. J., Wehrhahn, C., Rodriguez, A., Rabe-Hesketh, S., & de Valpine, P. (2023). Computational strategies and estimation performance with Bayesian semiparametric item response theory models. Journal of Educational and Behavioral Statistics, 48(2), 147–188.
Ghosh, M. (1992). Constrained Bayes estimation with applications. Journal of the American Statistical Association, 87(418), 533–540.
Shen, W., & Louis, T. A. (1998). Triple-goal estimates in two-stage hierarchical models. Journal of the Royal Statistical Society: Series B, 60(2), 455–471.