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 of dcmstan::dcm_specify() and
dcm_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 of
score(). The functionality is the same, but
aic() and bic() have been added for
estimating relative model fit for models estimated with
method = "optim" (@JeffreyCHoover, #54).
bayes_factor() has been added for comparing models
using Bayes factors. This is only available for models estimated with
backend = "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 a threshold
(#45).
New estimation methods, variational() and
pathfinder(), 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).
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).
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.
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 with
force = 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 setting
rename_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.
NEWS.md file to track changes to the
package.type = "crum" in the
measr_dcm() function.measr_dcm(), max_interaction, defines the
highest order interactions to estimate. For example,
max_interaction = 2 will estimate only intercepts, main
effects, and two-way interactions.measr_dcm(),
attribute_structure allows users to specified either
“unconstrained” relationships between attributes or “independent”
attributes.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.