measr 2.0.0
CRAN release: 2026-01-14
Breaking changes
The S3 parts of measr have been converted to S7.
-
Some of measr’s functionality has been decoupled into other packages to allow for quicker and easier updates. The generation of Stan code and data lists have been moved to dcmstan. Similarly, the example data sets have been moved to dcmdata to facilitate the use of the data across other packages. As part of the decoupling,
measr_dcm()has been deprecated in favor ofdcmstan::dcm_specify()anddcm_estimate().# old my_model <- measr_dcm( data = ecpe_data, qmatrix = ecpe_qmatrix, resp_id = "resp_id", item_id = "item_id", type = "lcdm", attribute_structure = "unconstrained", method = "mcmc" ) # new library(dcmdata) my_spec <- dcm_specify( qmatrix = ecpe_qmatrix, identifier = "item_id", measurement_model = lcdm(), structural_model = unconstrained() ) my_model <- dcm_estimate( dcm_spec = my_spec, data = ecpe_data, identifier = "resp_id", method = "mcmc" ) predict()has been deprecated in favor ofscore(). The functionality is the same, but
New features
aic()andbic()have been added for estimating relative model fit for models estimated withmethod = "optim"(@JeffreyCHoover, #54).bayes_factor()has been added for comparing models using Bayes factors. This is only available for models estimated withbackend = "rstan"(@JeffreyCHoover, #67).Item and attribute discrimination measures can now be calculated with
cdi()(@auburnhimenez34, #63).The specified Q-matrix can now be evaluated and compared to other empirical Q-matrix specifications using
qmatrix_validation()(@JeffreyCHoover, #65).In
reliability(), users can now calculate the classification accuracy and consistency for different probability classification threshold by specifying athreshold(#45).New estimation methods,
variational()andpathfinder(), have been added to support estimation via Stan’s variational algorithm for approximate posterior sampling and the pathfinder variational inference algorithm, respectively. Pathfinder is only available when the model is estimated with cmdstanr (#72).Local item dependence can now be estimated with
yens_q3()(@JeffreyCHoover, #62).
Minor improvements and fixes
Documentation has been updated to ensure examples use Air formatting to improve accessibility (#68).
measr_extract()has been updated to no longer require adding elements to a model object before extracting (#73).
measr 1.0.0
CRAN release: 2024-01-30
New documentation
A new article on model evaluation has been added to the project website (https://measr.r-dcm.org).
The model estimation article has been updated to use the same (simulated) data set as the model evaluation article.
More detailed installation instructions have been added to the getting started vignette (#23).
A case study demonstrating a full DCM-based analysis using data from the ECPE (
?ecpe_data) has been added to the project website.
Minor improvements and fixes
Fixed bug in the LCDM specification of constraints for level-3 and above interaction terms.
Functions for evaluating estimated models (e.g.,
fit_ppmc(),reliability()) no longer recalculate indices if they have previously been saved to the model object. This behavior can be overwritten withforce = TRUE.Updated Stan syntax to be compatible with the new array syntax (@andrjohns, #36)
get_parameters()now preserves item identifiers by default. Items can be renamed with numbers (e.g., 1, 2, 3, …) by settingrename_item = TRUE.measr now reexports functions from posterior for conducting mathematical operations on
posterior::rvar()objects.Respondent estimates are now returned as
posterior::rvar()objects when not summarized.
measr 0.3.1
CRAN release: 2023-05-27
- Added a
NEWS.mdfile to track changes to the package.
New features
- Support for additional model specifications has been added (#10):
- The compensatory reparameterized unified model (C-RUM) can now be estimated by defining
type = "crum"in themeasr_dcm()function. - Users can now drop higher order interactions from the loglinear cognitive diagnostic model (LCDM). A new argument for
measr_dcm(),max_interaction, defines the highest order interactions to estimate. For example,max_interaction = 2will estimate only intercepts, main effects, and two-way interactions. - A new argument to
measr_dcm(),attribute_structureallows users to specified either “unconstrained” relationships between attributes or “independent” attributes.
- The compensatory reparameterized unified model (C-RUM) can now be estimated by defining
- Updated prior specifications:
- Users can now specify a prior distribution for the structural parameters that govern the base rates of class membership (#2).
- Safeguards were added to warn users when a specified prior is not defined for the chosen DCM sub-type. For example, an error is generated if a prior is defined for a slipping parameter, but the LCDM was chosen as the type of model to be estimated (#1).
Minor improvements and fixes
Fixed bug with
backend = "rstan"where warmup iterations could be more than the total iterations requested by the user if warmup iterations were not also specified (#6).Additional specifications were added to
measr_extract()for extracting results from an estimated model.
