+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

----------------------- sirt NEWS -----------------------------

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

sirt: Supplementary Item Response Theory

##     
##                       _/              _/   
##              _/_/_/      _/  _/_/  _/_/_/_/
##           _/_/      _/  _/_/        _/     
##              _/_/  _/  _/          _/      
##         _/_/_/    _/  _/            _/_/   
##   

Alexander Robitzsch
IPN - Leibniz Institute for Science and Mathematics Education 
at Kiel University

Questions or suggestions about sirt can be sent to:
robitzsch@ipn.uni-kiel.de

For reporting a bug, please provide always a reproducible R script 
and (if necessary) a corresponding dataset.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CHANGELOG sirt
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~






------------------------------------------------------------------------
VERSIONS sirt 4.2  |  2025-09-27  |  Last: sirt 4.2-133
------------------------------------------------------------------------

FIXED * fixed a bug in handling sufficient statistics in
        lsem.permutationTest() (thanks to @martinabader, #22)
FIXED * fixed numerical instabilities in rasch.pairwise.itemcluster()
        in small samples
ADDED * added option for using a list of imputed datasets in
        lsem.estimate()
FIXED * fixed a recently introduced bug in standard error computation
        in invariance.alignment() (thanks to @meltemozcan, #25)
ADDED * included pairwise maximum likelihood estimation in xxirt() and
        variance matrix estimation in xxirt_sandwich_pml()
NOTE  * included Example 9 in ?invariance.alignment for dichotomous
        items (thanks to Sebastian Wurster)
NOTE  * included example for Haberman linking for polytomous item responses
        based on the generalized partial credit model (GPCM; see
        ?linking.haberman, Example 9)
ADDED * included test for misfitting parameter curve in lsem.test()
        (suggested by Tuo Liu)
ADDED * included power p=0 in Lq norm in lq_fit()
ADDED * included regularized estimation on theta distribution in 
        xxirt() by including arguments 'penalty_fun_theta' and
        'penalty_np_theta'
ADDED * included arguments 'method', 'le' and 'vcov_list' in 
        linking.haberman.lq() to allow for estimation based on 
        pairwise differences in Haberman linking and the corresponding
        estimation of linking errors and standard errors
ADDED * added function locpolycor() to compute local thresholds and
        polychoric correlations
ADDED * included linking_2groups() function for (robust) Haebara and
        Stocking-Lord linking
ADDED * added functionality for including person covariates in xxirt()
ADDED * included dataset 'data.pisa2006Read'

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: xxirt (5,6), invariance.alignment (9),
        linking.haberman (9), locpolycor (1), linking_2groups (1),       

------------------------------------------------------------------------
VERSIONS sirt 4.1  |  2024-02-06  |  Last: sirt 4.1-15
------------------------------------------------------------------------

NOTE  * included method 'meth=3' and 'meth=4' in invariance.alignment()
        to mimic Mplus solutions

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: ---

------------------------------------------------------------------------
VERSIONS sirt 4.0  |  2024-01-17  |  Last: sirt 4.0-32
------------------------------------------------------------------------

FIXED * fixed incorrect handling of lower and upper bounds of item
        parameters in xxirt() when using Newton-Raphson optimization
NOTE  * included arguments 'lower' and 'upper' in function
        xxirt_createThetaDistribution()
ADDED * included function dmlavaan() that allows comparing model
        parameters from two lavaan models fitted to the same dataset
NOTE  * corrected manual of 'data.g308' (thanks to Andres Burga)
NOTE  * included argument 'eps_grid' in invariance.alignment()
NOTE  * included argument 'num_deriv' in invariance.alignment()
NOTE  * changed estimation defaults in invariance.alignment() 
        for many groups (>= 9 groups)

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: dmlavaan (1), data.g308 (1)

------------------------------------------------------------------------
VERSIONS sirt 3.13  |  2023-08-11  |  Last: sirt 3.13-228
------------------------------------------------------------------------

NOTE  * included arguments 'pw_linear', 'pw_quadratic' that allow 
        piecewise linear or quadratric parameter functions
NOTE  * included argument 'pd' in lsem.estimate() that performs
        estimation of a positive definite covariance matrix if
        sufficient statistics are used
NOTE  * changed defaults to 'loc_linear_smooth=TRUE' and 'pd=TRUE'
        in lsem.estimate()
NOTE  * included argument 'est_DIF' in lsem.estimate() that also
        assesses parameter heterogeneity for parameters that are
        assumed to be invariant
NOTE  * included argument 'use_starting_values' in lsem.bootstrap()
NOTE  * included argument 'np_fun_item' in xxirt() that counts the
        number of item parameters
FIXED * fixed a bug in cfa_meas_inv() (thanks to @mbluemke,
        https://github.com/alexanderrobitzsch/sirt/issues/19)
FIXED * fixed a bug in rm.sdt() caused by numeric instabilities in
        deviance computation (thanks to Yusuke Shono)
NOTE  * removed argument 'seed' from lsem.bootstrap()
NOTE  * changed default in lsem.estimate() to
        'sufficient_statistics=TRUE'
NOTE  * included utility function move_variables_df() that reorders
        variables in a data frame
NOTE  * included argument 'cv_kfold' in xxirt() for computing
        cross-validated log-likelihood values
ADDED * included function lsem.test() for testing of no parameter change
        based on a fitted bootstrap object
NOTE  * included utility function print_digits() that prints a data frame
        with a fixed number of digits
FIXED * corrected a bug in stratified.cronbach.alpha()
NOTE  * replaced L0 penalty in invariance.alignment() of Oelker and 
        Tutz (2017) with the O'Neill and Burke (2023) penalty
ADDED * included variance matrix estimation (i.e., standard errors) in
        invariance.alignment() if variance matrix of model parameters
        in provided as the argument 'vcov'
NOTE  * disabled argument 'use_lavaan_survey' in lsem.estimate()
        because lavaan.survey package has been removed from CRAN
ADDED * exported mgsem() function for estimating multiple-group SEMs
ADDED * included option for parallel computing in lsem.permutationTest()
        and lsem.bootstrap() using the arguments 'n.core' and 'cl.type'
        (suggested by Eunike Wetzel)
ADDED * included option for using Newton-Raphson algorithm to estimate
        item response models in xxirt(). This option can be requested
        by the argument 'maxit_nr'.
      
DATA  * included/modified datasets: ---
EXAMP * included/modified examples: lsem.test (1), invariance.alignment (8),
        mgsem (1), lsem.estimate (1), xxirt (1)

------------------------------------------------------------------------
VERSIONS sirt 3.12  |  2022-05-16  |  Last: sirt 3.12-66
------------------------------------------------------------------------

ADDED * added argument 'model' in invariance_alignment_cfa_config() which
        now also covers the one-parameter factor model
ADDED * added argument 'output' in invariance_alignment_simulate()
NOTE  * sufficient statistics now also allowed as arguments in
        invariance_alignment_cfa_config()
ADDED * added optimizer 'nloptr', 'bobyqa' and 'Rvmmin' in 
        sirt_optimizer()
FIXED * fixed incorrect handling of missing="fiml" in lsem.estimate()
        if est_joint=TRUE was requested
FIXED * fixed an issue in using sampling weights in xxirt()
ADDED * included simulation functions rmvn() and ruvn() that simulate 
        from a multivariate or univariate normal distribution with exactly 
        reproduced prespecified means and covariances 
ADDED * included argument 'exact' in invariance_alignment_simulate() for
        simulating CFA data with exactly preserved distributions
NOTE  * included an example (Example 3) of regularized estimation of an
        item response model in xxirt()
NOTE  * included Example 4 for a 2PL mixture model in xxirt()
ADDED * added fitting function cfa_meas_inv() that estimates the
        CFA model under full and partial measurement invariance by
        successively freeing parameters based on modification indices

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: invariance.alignment (7),
        rmvn (1,2), xxirt (3,4), cfa_meas_inv (1)

------------------------------------------------------------------------
VERSIONS sirt 3.11  |  2021-12-09  |  Last: sirt 3.11-21
------------------------------------------------------------------------

NOTE  * included argument 'loc_linear_smooth' in lsem.estimate() for
        local linear smoothing for computation of conditional means
        and covariances when 'sufficient_statistics=TRUE'
FIXED * corrected handling of sampling weights in xxirt(). In previous
        sirt versions, sampling weights were ignored.
NOTE  * added argument 'vcov' in linking.haberman()
NOTE  * avoided calling as.vector() in data.frame due to a CRAN request 
        by Martin Maechler

DATA  * included/modified datasets: data.lsem02, data.lsem03
EXAMP * included/modified examples: ---

------------------------------------------------------------------------
VERSIONS sirt 3.10  |  2021-09-23  |  Last: sirt 3.10-118
------------------------------------------------------------------------

ADDED * included option for regularization penalties in xxirt()
        using the argument 'penalty_fun_item'
NOTE  * included additional information for data source in
        data.pisaMath and data.pisaRead (requested by Paul De Boeck)
NOTE  * included try-error functionality in lsem.bootstrap() to
        skip nonconvergent cases (thanks to Ulrich Schroeders)
NOTE  * included argument 'cluster' in lsem.bootstrap() for 
        option of bootstrap of clusters (suggested by Ulrich Schroeders)
NOTE  * included argument 'par_init' in linking.haeabara()
NOTE  * included general distance function dist='Lp' in
        linking.haebara. Added arguments 'pow' and 'use_der'.
NOTE  * included argument 'meth' in invariance.alignment()
ADDED * included utility function lq_fit() for fitting regression
        models using the L_q norm. Also exported function
        lq_fit_estimate_power() for estimating power values.
NOTE  * included utility function linking_haberman_itempars_convert()
ADDED * included alternative loss function |x|^q (L_q distance) for
        Haberman linking in linking.haberman.lq()
ADDED * included function dexppow() and rexppow() for exponential
        power function distribution       
NOTE  * included argument 'wgt.ties' in btm() that allows a weighting
        of ties different from .5
ADDED * included predict method for objects of class 'btm'
NOTE  * exported utility function sirt_rcpp_discrete_inverse()
NOTE  * added argument 'use_sum_score' in conf.detect(), expl.detect()
        and ccov.np(). With use_sum_score=TRUE, the bias-corrected
        DETECT estimator of Zhang and Stout (1999) can be obtained
        (requested by Cengiz Zopluoglu, Github Issue #13)
NOTE  * included argument 'bias_corr' in ccov.np() and conf.detect()
NOTE  * added arguments 'smooth', 'hclust_method', and 'estsample'
        in expl.detect() (related to Github Issue #15)
NOTE  * included S3 method IRT.expectedCounts() for rasch.mml2()
        (objects of class 'rasch.mml')
NOTE  * included argument 'prior_sd' in rasch.jml() for penalized JML
NOTE  * included argument 'weights' for sampling weights in
        rasch.pairwise.itemcluster(), rasch.pairwise(), and
        rasch.copula2()
NOTE  * adapted smirt() funtion in cases in which dat has no column
        names (thanks to Burga Leon Andres Alberto)
ADDED * included argument 'power' in rasch.pairwise() function
        (thanks to Joerg-Henrik Heine)
ADDED * added alternative optimization function for MINCHI method
        in rasch.pairwise() which can be requested by 'direct_optim=TRUE'.
        Direct optimization is now the default in rasch.pairwise().
NOTE  * added object class 'SingleGroupClass' in modelfit.sirt()
        (thanks to @seonghobae, Github issue #17)
NOTE  * extended irtmodel='missing1' in rasch.mml2() to the 2PL model
NOTE  * included arguments 'M_target' and 'SD_target' in 
        scale_group_means()
NOTE  * included predict function predict_scale_group_means()
FIXED * fixed bug in lsem.estimate() when sampling weights were used
        (thanks to Oliver Luedtke and Geetanjali Basarkod)
NOTE  * included argument 'seed' in lsem.bootstrap() for replicating
        results in this function
ADDED * included option for input of replication designs in 
        lsem.bootstrap() like balanced repeated replication designs
        in PISA implemented in arguments 'repl_design' and 'repl_factor'

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: linking.haebara (1),
        lq_fit (1,2), btm (1)

------------------------------------------------------------------------
VERSIONS sirt 3.9  |  2020-02-17  |  Last: sirt 3.9-4
------------------------------------------------------------------------

FIXED * fixed a bug in ccov.np() that was introduced in sirt 3.8

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: ---

------------------------------------------------------------------------
VERSIONS sirt 3.8  |  2020-02-15  |  Last: sirt 3.8-11
------------------------------------------------------------------------

FIXED * handle missing data in stratified.cronbach.alpha()
        (thanks to Murat Dogan Sahin)
FIXED * fixed a recently introduced bug in rasch.mml2() using the
        argument irtmodel='missing1' (thanks to Thomas Deribo)
ADDED * added argument 'smooth' in ccov.np() function that switches
        between using smoothed and non-smoothed item response functions
        in conditional covariance estimation (thanks to a discussion
        with @iago-pssjd, Github Issue #11)

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: ccov.np (1)

------------------------------------------------------------------------
VERSIONS sirt 3.7  |  2019-11-04  |  Last: sirt 3.7-40
------------------------------------------------------------------------

FIXED * fixed a bug in computation of vcov() for xxirt objects
NOTE  * added utility function resp_groupwise()
NOTE  * included default method in invariance.alignment() for
        choosing fixed=TRUE or fixed=FALSE
FIXED * corrected wrong sign of thresholds in noharm.sirt()
        (thanks to Asghar Minaei)
FIXED * fixed a bug in rasch.mirtlc() for multiple dimensions
        (thanks to @andreanorcinipala, issue #10)
FIXED * try to fix numerical issues in polychoric2() for 
        'use_pbv=0' (thanks to Njaal Foldnes)
ADDED * added prior distributions in rasch.mml2() (arguments
        'prior.b', 'prior.a', 'prior.c', 'prior.d')
FIXED * bug fix in mirt.wrapper.coef()
ADDED * added mirt_summary() function for producing summary output
        for mirt objects
ADDED * extended S3 methods IRT.irfprob, IRT.likelihood and 
        IRT.posterior for objects of class MultipleGroupClass 
        (models fitted in mirt package)
ADDED * added S3 method IRT.expectedCounts for objects fitted in
        mirt package

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: resp_groupwise (1),
        invariance.alignment (3), rasch.mml2 (1),
        mirt.wrapper.coef (1)

------------------------------------------------------------------------
VERSIONS sirt 3.6  |  2019-08-01  |  Last: sirt 3.6-21
------------------------------------------------------------------------

FIXED * corrected a bug in lsem.bootstrap() (thanks to Ingo Seifert)
NOTE  * added utility function scale_group_means()
NOTE  * changed parameterization of powers in invariance alignment 
        to have clear correspondence to regularization methods
        (e.g., old: p=.25; new: p=.5)
FIXED * fixed parameter labeling issues in rm.sdt()
        (thanks to Wenjing Guo)
NOTE  * included argument 'fixed' in invariance.alignment() indicating
        whether SD of the first group should be fixed
NOTE  * changed estimation algorithm in invariance.alignment() to
        prevent from finding local minima instead of global minima
        as estimates

DATA  * included/modified datasets: data.si09, data.si10
EXAMP * included/modified examples: ---

------------------------------------------------------------------------
VERSIONS sirt 3.5  |  2019-06-20  |  Last: sirt 3.5-53
------------------------------------------------------------------------

NOTE  * rechanged default in lsem.estimate() to 'sufficient_statistics=FALSE'
        (due to dicussions with Ingo Seifert and Luc Watrin)
NOTE  * changed functioning of argument 'use_pbv' in polychoric2().
        Now, sirt also includes a copy of the pbv code for computing the
        bivariate normal distribution.
ADDED * added multivariate normal distribution representation of 
        membership function in gom.em(). Included output value 'EAP'.
FIXED * fixed a bug in output of lsem.bootstrap()
        (thanks to Ingo Seifert)
ADDED * added option for estimation with sampling weights in gom.em().
        Also included final Newton-Raphson iterations and argument
        for parameter constraints.
ADDED * included unstandardized and standardized residuals in output
        of btm() function (value 'residuals'; thanks to Milja Curcin)

DATA  * included/modified datasets: data.si07, data.si08, data.trees
EXAMP * included/modified examples: gom.em (1,3), lsem.estimate (1),
        data.trees (1)

------------------------------------------------------------------------
VERSIONS sirt 3.4  |  2019-05-03  |  Last: sirt 3.4-64
------------------------------------------------------------------------

ADDED * included optimization function for invariance alignment which
        minimizes number of DIF effects in invariance.alignment() by
        setting 'align.pow=c(0,0)'. This optimization function
        corresponds to the L0 penalty.
NOTE  * included a warning message in polychoric2() if lowest category
        is larger than zero (due to correspondence with Njaal Foldnes)
NOTE  * included argument 'use_pbv' in polychoric2() which allows use
        of pbv package for computation of bivariate normal probabilities
NOTE  * included arguments 'conv', 'rho_init' and 'weights' in 
        polychoric2(). Exported Rcpp-level function sirt_rcpp_polychoric2().
FIXED * fixed a bug when computing standard errors in lsem.estimate() 
        when arguments 'pseudo_weights>0' or 'use_lavaan_survey=FALSE' 
        were used (thanks to Gabriel Olaru)
NOTE  * changed default in lsem.estimate() of argument 
        'sufficient_statistics' to TRUE. This option can only be used 
        for continuous data.
ADDED * included option for sampling weights in lsem.estimate() and
        lsem_local_weights()
ADDED * included uniform and Epanechnikov kernel for LSEM estimation
        by including the argument 'kernel' in lsem.estimate()
ADDED * LSEM can now be additionally estimated in a joint estimation
        approach ('est_joint=TRUE'). Invariance constraints on 
        parameters are allowed by 'par_invariant' in lsem.estimate()
NOTE  * included check on invariance constraint for fixed parameters
        in lsem.estimate() (thanks to Ingo Seifert)
NOTE  * excluded computation of standard errors in lsem.estimate() if
        'est_joint=TRUE' is used (thanks to an example of Ingo Seifert)
NOTE  * now remove cases with missing values on moderators in
        lsem.estimate() (thanks to @Deleetdk, issues #8, #9)
FIXED * fixed a bug in xxirt() caused by incorrect data processing 
        which stopped the function (thanks to Hyejin Shim)
NOTE  * fit initial model in lsem.estimate() if sufficient
        statistics are used based on pairwise deletion
        (thanks to Martina Bader)
ADDED * added bootstrap functionality for LSEM in the function
        lsem.bootstrap()        

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: invariance.alignment (1),
        polychoric2 (1), lsem.estimate (1.1, 1.5)

------------------------------------------------------------------------
VERSIONS sirt 3.3  |  2019-03-18  |  Last: sirt 3.3-26
------------------------------------------------------------------------

ADDED * included sampling weights for invariance alignment in function
        invariance_alignment_cfa_config()
FIXED * fixed numerical instabilities in wle.rasch()
        (thanks to Tom Tinkler)
FIXED * fixed a bug in lsem.estimate() when sufficient_statistics=TRUE 
        is applied in case of missing data (thanks to Johanna Hartung) 
NOTE  * lsem.estimate() does not use anymore the lavaan.survey package
        as the default. The behavior of previous versions can be 
        obtained with the argument value 'use_lavaan_survey=TRUE'.
ADDED * added argument 'pseudo_weights' in lsem.estimate() which provides
        an ad-hoc solution for fitting LSEMs for all lavaan models.
        FIML and WLSMV is now available in lsem.estimate(), see
        Examples 2 and 3 (requested by Ulrich Schroeders and
        Andrea Hildebrandt)
ADDED * added utility function lsem_local_weights() for computing
        local weights for LSEMs
ADDED * added argument 'judge' for judge identifiers in btm() which
        allows computation of fit statistics for judges in pairwise
        comparison data (suggested by Jem Stach)
FIXED * fixed a bug in estimation of home advantage parameter in btm()
ADDED * added simulation function btm_sim() for simulating data from
        the extended Bradley-Terry model
NOTE  * removed argument 'seed' from class.accuracy.rasch()

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: invariance.alignment (7),
        lsem.estimate (1,2,3), btm (3,4)

------------------------------------------------------------------------
VERSIONS sirt 3.2  |  2019-02-08  |  Last: sirt 3.2-39
------------------------------------------------------------------------

NOTE  * changes in estimation algorithm in noharm.sirt(). Disabled
        estimation based on tetrachoric correlations and, hence,
        removed argument 'modesttype'. Included arguments 'optimizer'
        and 'par_lower'.
ADDED * included arguments 'pm' and 'N' for product-moment matrix
        input in noharm.sirt() which allows input of a product-moment
        matrix
ADDED * added additional estimation methods 'MED', 'LTS', 'HUB', 
        'L1' and 'L0' in linking.haberman()
NOTE  * included utility function linking_haberman_itempars_prepare()
        for generating 'itempars' argument for linking.haberman()
NOTE  * included utility function 'L0_polish'
NOTE  * included automatic functionality for detecting linking of 
        1PL models in linking.haebara()
NOTE  * included example for 2PL copula model (?rasch.copula, Example 1;
        requested by Jarkko Hautala)
ADDED * included utility functions invariance_alignment_cfa_config()
        and invariance_alignment_simulate() for invariance
        alignment (due to a discussion with Emily Harris)

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: noharm.sirt (1,2.3,3),
        linking.haberman (6,7,8), rasch.copula2 (1),
        invariance.alignment (7)

------------------------------------------------------------------------
VERSIONS sirt 3.1  |  2019-01-04  |  Last: sirt 3.1-80
------------------------------------------------------------------------

NOTE  * complete restructure of invariance.alignment() function which now
        uses R internal optimizers stats::optim() or stats::nlminb().
        Included postprocessing function invariance_alignment_constraints().
NOTE  * added utility functions sirt_matrix2() and several sirt_colFoo()'s 
NOTE  * renamed eigenvalues.sirt() into sirt_eigenvalues()
NOTE  * included argument 'adjust_main_effects' in linking.haberman()
ADDED * included linking method linking.haebara() for linking multiple
        groups with robust and non-robust estimation function
NOTE  * included more arguments in summary.rasch.pairwise(), 
        summary.rasch.evm.pcm()
NOTE  * changed default of 'theta' argument in lsdm() function
ADDED * included alternative optimization method of absolute value loss
        function in lsdm() and added arguments 'wgt_theta' and 'distance'
NOTE  * removed dependency in lsdm() function from ic.infer::orlm() 
NOTE  * included utility functions sirt_sum_norm(), sirt_dnorm_discrete(),
        sirt_abs_smooth(), sirt_permutations()
NOTE  * included a plot method for lsdm()
NOTE  * removed dependency in rasch.copula2() from gtools::permutations()

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: invariance.alignment (6),
        linking.haberman (1,5), linking.haebara (1), lsdm (1,5,6),
        sirt-utilities (5,6)

------------------------------------------------------------------------
VERSIONS sirt 3.0  |  2018-11-22  |  Last: sirt 3.0-32
------------------------------------------------------------------------

NOTE  * included estimation details of btm() function 
        (requested by San Verhavert)
NOTE  * included argument 'center' in rasch.jml() which now also allows
        option for centering item difficulties 
        (request thoughtafter, issue #3)
FIXED * exclude non-converged model estimates for permutation datasets 
        in lsem.permutationTest() (reported by Moritz Breit)
NOTE  * added argument 'save.gamma.testlet' in mcmc.3pno.testlet()
        (requested by Vladimir Volokhonsky, issue #4)     
NOTE  * corrected internet address for DIMTEST software in ?conf.detect
        (thanks to Julius Fenn)
FIXED * fixed numerical problems in person.parameter.rasch.copula()
        (detected by CRAN checks of examples for r-devel-windows-ix86+x86_64;
        https://cran.r-project.org/web/checks/check_results_sirt.html)
NOTE  * changed column 'itemdiff.correction' in output 'item' in
        rasch.jml() in case of constrained item parameters
        (noted by thoughtafter, issue #5)

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: rasch.jml (1)

------------------------------------------------------------------------
VERSIONS sirt 2.7  |  2018-07-09  |  Last: sirt 2.7-50
------------------------------------------------------------------------

FIXED * fixed a bug in tam2mirt() for models with polytomous data which
        do not contain any dichotomous item (thanks to Sarah Anne Aretz)
FIXED * fixed an incorrect subject order in outfit/infit statistics
        in btm() (thanks to Stephen Holmes)
FIXED * fixed a bug in btm() with 'eps=0' for persons with extreme scores
        (thanks to SanVerhavert)
FIXED * completely rewritten estimation algorithm of rm.sdt() which 
        produced biased estimates in previous sirt versions (pointed out
        by Jonathan Lehrfeld, Kyosuke Bunij, Satoshi Usami).
NOTE  * added graded response model at item level for signal detection
        model for rating data in rm.sdt()
        (suggested by Jonathan Lehrfeld)
NOTE  * included utility function sirt_optimizer()

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: ---

------------------------------------------------------------------------
VERSIONS sirt 2.6  |  2018-03-21  |  Last: sirt 2.6-9
------------------------------------------------------------------------

NOTE  * changed matrix types in rm.facets() Rcpp data processing functions.
        This addresses UBSAN problems causing detected problems in rm.facets():
        [...] Rcpp/include/Rcpp/internal/caster.h:30:25: 
        runtime error: nan is outside the range of representable values of type 'int'. 
        SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior in 
        [...]/data/gannet/ripley/R/test-clang/Rcpp/include/Rcpp/internal/caster.h:30:25
FIXED * fixed a bug in tam2mirt() due to changed output structure in mirt
        package (thanks to Sarah Anne Aretz)

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: ---

------------------------------------------------------------------------
VERSIONS sirt 2.5  |  2018-03-13  |  Last: sirt 2.5-45
------------------------------------------------------------------------

FIXED * fixed a bug in postprocessing in rm.sdt() function
FIXED * fixed bugs in mcmc_XXX() functions when mcmc object (from coda)
        is a list
FIXED * handle case of characters "[", "]", "," in variable names in
        functions mcmc_derivedPars() and mcmc_WaldTest() 
FIXED * mcmc_WaldTest() now also handle cases of multicollinear
        hypotheses 
FIXED * handled NaN problems in noharm.sirt()
NOTE  * included argument 'reliability' in noharm.sirt()
NOTE  * changed argument 'logfile' to 'file' in summary.noharm.sirt()
NOTE  * rewrote some Rcpp function because of memory problems documented at
        https://cran.r-project.org/web/checks/check_issue_kinds.html

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: ---

------------------------------------------------------------------------
VERSIONS sirt 2.4  |  2018-01-29  |  Last: sirt 2.4-20
------------------------------------------------------------------------

FIXED * fixed a bug in rm.facets() when argument rater_item_int=TRUE 
        was used
NOTE  * exported function rm_proc_data() for processing rating datasets
FIXED * avoided numeric overflow in pcm.fit() (thanks to Chen Chen)
FIXED * fixed broken function lsdm() because exported functions in
        dependent package 'ic.infer' have been changed

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: ---

------------------------------------------------------------------------
VERSIONS sirt 2.3  |  2017-11-23  |  Last: sirt 2.3-57
------------------------------------------------------------------------

NOTE  * included different parameter centering options in rm.facets()
FIXED * fixed a bug in data processing in xxirt() function
NOTE  * included EM acceleration method 'PEM' in rm.sdt() and rm.facets()
NOTE  * corrected example for Q3() function (thanks to Amina Fraij)
ADDED * added prior distributions for item parameters in rm.sdt()
NOTE  * included option for defining a reference rater in rm.facets().
        See Example 2.6.
NOTE  * included argument 'rater_item_int' for modelling
        rater-item-interaction effects in rm.facets() (see Example 2.7)
NOTE  * included more arguments for starting values in rm.sdt()
NOTE  * exported utility function sirt_attach_list_elements() and 
        several sirt_summary_print_XXX() functions
ADDED * included synthetic dataset 'data.befki' as an example for 
        local structural equation modeling (thanks to Ulrich Schroeders,
        Stefan Schipolowski & Oliver Wilhelm)

DATA  * included/modified datasets: data.befki, data.befki_resp
EXAMP * included/modified examples: Q3 (1), rm.facets (2.6, 2.7)

------------------------------------------------------------------------
VERSIONS sirt 2.2  |  2017-09-20  |  Last: sirt 2.2-14
------------------------------------------------------------------------

ADDED * added option for additive linking of item slopes in 
        linking.haberman()
FIXED * fixed broken mcmc.3pno.testlet() and mcmc.2pno() functions
        (thanks to Hyeon-Ah Kang)
NOTE  * slight changes in output in MCMC IRT functions like
        mcmc.3pno.testlet(). Included argument 'file' in summary.

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: linking.haberman (1)

------------------------------------------------------------------------
VERSIONS sirt 2.1  |  2017-08-09  |  Last: sirt 2.1-24
------------------------------------------------------------------------

NOTE  * included synthetic datasets simulated from original datasets
        from the test theory book of Eid and Schmidt (2014)
NOTE  * moved packages gtools, ic.infer, igraph, Matrix, pbivnorm, psych
        and sm from 'Imports' to 'Suggests'. Removed combinat, MASS 
        and plyr packages from 'Imports'.
NOTE  * exported sirt_rbind_fill() utility function which is a
        reimplementation of plyr::rbind.fill()
NOTE  * exported utility functions sirt_fisherz() and 'sirt_antifisherz()
NOTE  * fixed potential problems with frequencies of zero in 
        dif.logistic.regression() (thanks to Armin Haba) 

DATA  * included/modified datasets: data.eid.kap4, data.eid.kap5,
        data.eid.kap6, data.eid.kap7
EXAMP * included/modified examples: ---

------------------------------------------------------------------------
VERSIONS sirt 2.0  |  2017-05-11  |  Last: sirt 2.0-26
------------------------------------------------------------------------

NOTE  * moved amh(), loglike_mvnorm(), mlnormal() and pmle() functions 
        to LAM package (soon at CRAN)
NOTE  * moved starts_cov() and 'starts_sim1dim' functions to 
        STARTS package (soon at CRAN)
FIXED * fixed a bug in IRT.likelihood() for fitted models in mirt which
        occured due to an output restructure in mirt
FIXED * fixed a bug in mirt.specify.partable()
NOTE  * avoid division by zero in IRT.mle() which caused numerical 
        problems (thanks to Marit List)
NOTE  * some subfunctions in xxirt() were rewritten in Rcpp for reducing
        computation time
NOTE  * removed dependency from MCMCpack package
ADDED * added functionality for handling missing values unter MCAR 
        assumption in lsem.estimate(). The argument 
        'sufficient_statistics=TRUE' allows for local estimation
        of SEM based on weighted means and weighted covariances.
        (suggested by Ulrich Schroeders)
FIXED * fixed a bug in lsem.estimate() if the object name of the argument
        'lavmodel' is not 'lavmodel' 
        (thanks to Ulrich Schroeders and Jenny Wagner)

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: lsem.estimate (1)

------------------------------------------------------------------------
VERSIONS sirt 1.15  |  2017-03-02  |  Last: sirt 1.15-41
------------------------------------------------------------------------

NOTE  * included option for choosing lavaan::lavaan() or lavaan::sem() as
        estimation function in function lsem.estimate(). In previous
        versions, only the lavaan::sem() function could be chosen 
        (thanks to Jenny Wagner).
NOTE  * restructured Rcpp functions
NOTE  * removed CallSwitch() function from namespace and package
NOTE  * removed minor bug in labeling items in sim.raschtype()
FIXED * fixed a bug in smirt() with handling of parameter bounds which
        was recently introduced in sirt 1.13 (thanks to David Armstrong)

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: ---

------------------------------------------------------------------------
Versions 1.14 -- 2017-01-11  --  CRAN sirt 1.14-0
------------------------------------------------------------------------

NOTE  * changed output of 'sim.raschtype' which is now of class data frame
NOTE  * added a not in 'lsem.estimate' that the model syntax should be
        always specified in an object lavmodel 
        (thanks to a communicated problem of Jenny Wagner)
NOTE  * included utility function 'mcmc_Rhat' for computation of the 
        Rhat statistic from a single chain
NOTE  * added statistics of average conditional covariances and MADCOV
        in 'conf.detect' and 'expl.detect'. An example for DETECT analysis
        for simulated unidimensional data has been included (Example 3)
        which shows that DETECT can become negative (motivated by discussions
        with Berend Terluin, Weiyi Cheng, Yifan Liu and Yunfei Chang)
NOTE  * added summary method for 'conf.detect'
NOTE  * disabled default fixed seed in 'expl.detect'
        
DATA  * included/modified datasets: ---
EXAMP * included/modified examples: mcmc_Rhat (1), conf.detect (3)

------------------------------------------------------------------------
Versions 1.13 -- 2016-11-17  --  CRAN sirt 1.13-1
------------------------------------------------------------------------

FIXED * fixed a bug in 'conf.detect' and 'expl.detect' with too few 
        items (routine crashed, thanks to Berend Terluin)
FIXED * fixed a bug in data preprocessing in 'mlnormal' function
NOTE  * included reference to subscore package in 'prmse.subscores.scales'
NOTE  * extended output values in 'categorize' function
NOTE  * added arguments for boundary values of a, b, c and d parameters
        in noncompensatory IRT model function 'smirt'
        (requested by Chia-Ling Hsu)
ADDED * added robust linking method for multiple studies based on bisquare
        robust regression estimation in 'linking.haberman'.
        In addition, a summary method has been added.
NOTE  * included functions 'starts_cov' and 'starts_sim1dim' for the 
        STARTS model of Kenny and Zautra

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: mlnormal (3), linking.haberman (5),
        starts_cov (1)

------------------------------------------------------------------------
Versions 1.12 -- 2016-07-19  --  CRAN sirt 1.12-2
------------------------------------------------------------------------

NOTE  * included utility function 'prior_model_parse' for convenient
        specifications of priors for the 'amh' function
NOTE  * included utility function 'loglike_mvnorm' for calculation 
        of log-likelihood for a multivariate normal distribution based 
        on sufficient statistics
ADDED * added deterministic optimization for Bayesian model estimation 
        in the function 'pmle' (penalized maximum likelihood estimation).
        See the 'amh' help page.
NOTE  * fixed a bug in LSEM plot function for subsets of parameters
        (thanks to Johanna Hartung) 
NOTE  * corrected a bug in Example 1 in 'equating.rasch' 
        (thanks to Kelvin Gregory)
NOTE  * changed labelling of response pattern in 'md.pattern.sirt'
        to integers
NOTE  * included example in 'nedelsky-methods' for fitting the Nedelsky 
        model with xxirt function
NOTE  * added history of adaptive proposal standard deviations in
        'amh' function in output
NOTE  * added sampled parameter vector with highest value of posterior
        distribution in 'amh' for comparison with 'pmle' function
NOTE  * added comparison of MAP, multivariate MAP and mean estimator
        in 'amh' in value 'comp_estimators'. Now also included in
        'summary.amh'.
NOTE  * Defunct functions: 'rasch.conquest', 'rasch.pml2' , 'yen.q3',
        'testlet.yen.q3'
NOTE  * included utility functions 'CallSwitch' and 'parmsummary_extend'
NOTE  * included utility functions 'pow', 'tracemat', 'soft_thresholding',
        'hard_thresholding', 'bounds_parameters', 'dimproper',
        'ginverse_sym' (see '?sirt-utilities')
ADDED * included estimation routine 'mlnormal' for (restricted) maximum 
        likelihood estimation for mean and covariance structures for a
        multivariate normal distribution (e.g. multilevel models, factor
        analysis, structural equation models, multilevel structural equation
        models, social relations model, ...). Prior distribution and lasso
        penalities are also accomodated.

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: prior_model_parse (1),
        loglike_mvnorm (1), amh (1), equating.rasch (1), amh (1),
        nedelsky-methods (1), sirt-utilities (1,2,3,4), 
        parmsummary_extend (1), mlnormal (1,2)

------------------------------------------------------------------------
Versions 1.11 -- 2016-05-30  --  CRAN sirt 1.11-0
------------------------------------------------------------------------

FIXED  * fixed a bug in 'mirt.wrapper.coef' which occured due to
         changes in output structures of mirt package
ADDED  * added user defined item response model estimation 'xxirt' with
         corresponding S3 methods
ADDED  * added experimental adaptive Metropolis-Hastings routine 'amh'
         with corresponding S3 methods
ADDED  * added utility functions for objects of class 'mcmc.list' (from
         coda package): 'mcmc_coef', 'mcmc_vcov', ..., 'mcmc_WaldTest'
NOTE   * included inverse gamma distribution ('rinvgamma2') with 
         parametrization in prior sample size and prior variance

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: rasch.jml (1), xxirt (1,2),
        xxirt_createParTable (1), xxirt_createThetaDistribution (1),
        amh (1,2), mcmc_coef (1), rinvgamma2 (1)

------------------------------------------------------------------------
Versions 1.10 -- 2016-01-29  --  CRAN sirt 1.10-0
------------------------------------------------------------------------

FIXED * fixed a bug in summary function of MCMC based item
        response models (thanks to Andres Burga)  
FIXED * fixed a bug in 'rasch.mml2' when using the 'center.b'
        argument (thanks to Sarah Thomas) 
NOTE  * renamed functions 'yen.q3' into 'Q3' and 'testlet.yen.q3'
        into 'Q3.testlet'. The old function names can still be used.
NOTE  * included argument 'standardized' in 'lsem.estimate' which
        adds standardized solutions in the output using
        'lavaan::standardizedSolution' (thanks to Janina Kuenecke)
NOTE  * cleaned namespace file and defined imported functions
        in a more explicit way
		
DATA  * included/modified datasets: ---
EXAMP * included/modified examples: lsem.estimate (1)

------------------------------------------------------------------------
Versions 1.9 -- 2015-11-04  --  CRAN sirt 1.9-0
------------------------------------------------------------------------

NOTE  * allows thinning in 'plot.mcmc.sirt' function
NOTE  * fixed a minor bug in summary output of 'rasch.mml2' for
        irtmodel='missing1'
NOTE  * included argument 'zerosum' in 'rasch.pairwise' and 
        'rasch.pairwise.itemcluster' to apply a zero sum constraint of 
        for item difficulties (suggested by Chen-Wei Liu)
NOTE  * included example for bootstrapping standard errors for
        'rasch.pairwise' (suggested by Chen-Wei Liu)

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: rasch.pairwise (1),
        dif.logistic.regression (2) 

------------------------------------------------------------------------
Versions 1.8 -- 2015-06-28  --  CRAN sirt 1.8-9
------------------------------------------------------------------------

NOTE  * corrected a non-working example in 'lsem.estimate' 
        (thanks to Takuya Yanagida)
NOTE  * changed defaults and outputs in 'mcmc.list.descriptives'
        and 'plot.mcmc.sirt'
ADDED * included argument 'est.delta' in 'rasch.mml2' for item specific
        estimation of delta parameters in irtmodel='missing1'. Now,
        the specification of est.delta has slightly been changed.
ADDED * included function 'likelihood.adjustment' for adjusting
        individual likelihood 
NOTE  * disabled the broken plot method for 'noharm.sirt' objects        

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: lsem.estimate (1),
        rasch.mml2 (7.12-14, 8), likelihood.adjustment (1)

------------------------------------------------------------------------
Versions 1.7 -- 2015-06-05  --  CRAN sirt 1.7-0
------------------------------------------------------------------------

ADDED * included function 'btm' for estimating an extended Bradley-Terry
        model (suggested and fixed by Chris Weadon)
NOTE  * added minimum and maximum values in summary of 'lsem.estimate'
NOTE  * included JML estimation of Bradley-Terry model ('btm') with 
        elimination of persons with extreme scores
NOTE  * included infit and outfit statistics in 'btm'
NOTE  * changed layout of summary of 'lsem.estimate' and
        'plot.lsemPermutationTest'
NOTE  * added separation index for Bradley-Terry model
        (suggested by Sven De Maeyer)
FIXED * fixed a bug in 'categorize' function

DATA  * included/modified datasets: data.pw01
EXAMP * included/modified examples: btm (1,2)

------------------------------------------------------------------------
Versions 1.6 -- 2015-05-20  --  CRAN sirt 1.6-0
------------------------------------------------------------------------

NOTE  * added arguments 'minnode' and 'maxnode' in 'R2conquest' which 
        now allows full specification for the theta grid used in
        numerical approximation
FIXED * fixed a bug in 'truescore.irt' when no standard errors were provided
ADDED * added utility functions 'categorize' and 'decategorize' for
        categorizing variables in a data frame
ADDED * added function 'lsem.estimate' for fitting local structural
        equation models (LSEM). In addition, the permutation test
        is implemented in 'lsem.permutationTest'.         

DATA  * included/modified datasets: data.lsem01
EXAMP * included/modified examples: categorize (1,2), lsem.estimate (1)

------------------------------------------------------------------------
Versions 1.4/1.5 -- 2015-03-03  --  CRAN sirt 1.5-0
------------------------------------------------------------------------

NOTE  * changed default for argument 'itemcodes' in R2conquest fuction
NOTE  * included S3 methods for probabilistic Guttman model 'prob.guttman'
ADDED * included plot method for hierarchical rater model 'rm.sdt'
NOTE  * changed calculation of transformed parameters in 'rm.sdt'
FIXED * fixed a bug in 'rm.sdt' for datasets with differing number of
        item categories
ADDED * added option for specifying a discrete latemt variable in
        'rm.sdt' function. Options for fixed item parameters were also
        added.
NOTE  * added arguments for bounds of item slope and item difficulty
        parameters in 'rasch.mml2' (requested by Aysenur Erdemir)
ADDED * added option for estimating the missingness delta parameter
        in 'rasch.mml2' and 'irtmodel="missing1"'
FIXED * fixed a bug in 'rasch.mml2' for missing data models and 
        included CALL in summary
FIXED * corrected missing output of individual likelihood and posterior
        in 'rasch.mml2' for irtmodel='missing1'

DATA  * included/modified datasets: data.bs07a
EXAMP * included/modified examples: data.eid (4.3a),
        data.read (8e,9a), data.bs (07a), rm.sdt (2,3), rasch.mml2 (1,7)

------------------------------------------------------------------------
Versions 1.3 -- 2015-01-06  --  CRAN sirt 1.3
------------------------------------------------------------------------

NOTE  * defined several S3 methods for 'rasch.copula2' and 
        'rasch.copula3'
NOTE  * adapted S3 methods for mirt because the new class
        'SingleGroupClass' is defined in mirt >= 1.7 and removed
        'ConfirmatoryClass' and 'ExploratoryClass' methods
NOTE  * exported the object pcm.fit (it was spuriously 
        non-exported in sirt 1.2; reported by Sven Liepertz)
NOTE  * included the argument 'ignore.pid' for ignoring person
        identifiers in 'R2conquest' function (suggested by
        Kelvin Gregory)
NOTE  * changed Example 1 in 'f1d.irt' due to a change in 
        Suggests regarding the MASS package in the psych package
        which caused an error in CRAN checks (suggested by William 
        Revelle) 
ADDED * included S3 methods logLik, IRT.likelihood, IRT.posterior,
        IRT.modelfit, summary.IRT.modelfit and IRT.irfprob for 
        functions 'rasch.mml2', 'smirt', 'rasch.mirtlc', 'gom',
        'rm.facets' and 'rm.sdt'
NOTE  * extended modelfit.sirt for objects of class gom
ADDED * included function 'modelfit.cor.poly' for assessing
        absolute model fit for polytomous item responses
ADDED * included arguments for fixing item and rater parameters in 
        'rm.facets'
ADDED * included IRT.factor.scores method for 'rm.facets' and
        'rm.sdt'
ADDED * included function 'IRT.mle' for estimating MLE, WLE and
        MAP factor scores with user defined item response functions
        
DATA  * included/modified datasets: ---
EXAMP * included/modified examples: f1d.irt (1), rasch.mml2 (1),
        rasch.mirtlc (1), gom.em (1), rm.facets (2), IRT.mle (1,2,3)        

------------------------------------------------------------------------
Versions 1.2 -- 2014-12-12  --  CRAN sirt 1.2
------------------------------------------------------------------------

NOTE  * included standard errors of WLE parameters in 'wle.rasch'
NOTE  * corrected formulas help file for 'pcm.conversion'
        (thanks to Thomas Kiefer)
FIXED * fixed computational problems for calculating tetrachoric        
        correlation with empty cells in 'tetrachoric2' resp.
        'polychoric2' (method of Olsson; thanks to a dataset 
        privided by Ulrike Kipman)
NOTE  * included S3 methods IRT.likelihood, IRT.posterior and
        IRT.irfprob for two classes (ConfirmatoryClass and
        ExploratoryClass) of mirt objects
ADDED * included item and person fit statistic in 'pcm.fit' 
        for the partial credit model (suggested by Hiroyuki 
        Yamada and Sven Liepertz) 
NOTE  * included C-test dataset 'data.g308' from 
        Schroeders et al. (2014)
NOTE  * included several examples from the book of Eid
        and Schmidt: "Testtheorie und Testkonstruktion",
        see data.eid

DATA  * included/modified datasets: data.g308, data.eid
EXAMP * included/modified examples: pcm.conversion (1),
        pcm.fit (1,2,3), brm.sim (1), data.g308 (1),
        data.eid (1,2)

------------------------------------------------------------------------
Versions 1.1  -- 2014-11-23  --  CRAN sirt 1.1
------------------------------------------------------------------------

NOTE  * included arguments for mean and covariance matrix for
        confirmatory multidimensional models in 'f1d.irt'
NOTE  * removed 'lavaanify.sirt' from sirt package and
        included this function as 'lavaanify.IRT' in 
        TAM package 
FIXED * fixed a bug in 'lavaan2mirt' (thanks to Hong Giang Pham)        
NOTE  * extended some person fit statistics to handle datasets
        with missing responses (thanks to Hiroyuki Yamada)
ADDED * included functions for estimating the Beta item 
        response model for continuous item responses 

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: f1d.irt (2), brm.sim (1)

------------------------------------------------------------------------
Versions 1.0  -- 2014-10-27  --  CRAN sirt 1.0-3
------------------------------------------------------------------------

NOTE  * included argument 'progress' in 'gom.em' for optional
        printing of iteration progress
NOTE  * disabled warnings produced in 'rasch.mirtlc' by the glm
        function 
FIXED * fixed a bug in calculating the posterior in 'mirt.wrapper'
        for nonlinear item response models 
FIXED * fixed a bug in running exploratory factor analysis with
        one dimension in noharm.sirt (thanks to Russell Zheng)
FIXED * fixed a bug in datawide2long with Q-matrix input
FIXED * fixed a bug in data handling in 'invariance.alignment'
        with some missing intercepts and slopes
ADDED * included an extension of lavaan syntax to accomodate
        guessing and slipping parameters and "__" (item shortage 
        declaration) -> function 'lavaanify.sirt'
        The function lavaan2mirt also includes these options.
NOTE  * included coef and vcov method for function 'rasch.evm.pcm'
NOTE  * included argument weights in 'dirichlet.mle'
NOTE  * included utility function for conversion of different
        parameterizations in partial credit model
NOTE  * included helper function 'mirt.wrapper.itemplot'        
NOTE  * enabled progress argument in rasch.copula functions        
NOTE  * renamed DeCarlo's hierarchical rater model based on
        signal detection theory 'rm.hrm' into 'rm.sdt'
NOTE  * fixed an error in description of missing IRT models in
        'rasch.mml2.Rd' (thanks to Carmen Koehler)
NOTE  * fixed a bug in 'tam2mirt' for polytomous items 
        (thanks to Michal Modzelewski)
ADDED * included function 'mirt.specify.partable' for modifying
        a parameter table in mirt package 
NOTE  * included argument item type for polytomous data in 'lavaan2mirt'
NOTE  * updated 'lavaanify.sirt' function because of changes in 
        the lavaan::lavaanify function from lavaan 0.5-16 to the
        lavaan 0.5-17 package
NOTE  * changed mean constraint for rater parameters in 'rm.facets' 
ADDED * included estimation and simulation functions for the Nedelsky model
        ('nedelsky.sim', 'nedelsky.irf')

DATA  * included/modified datasets: data.ratings2, data.si06, data.ratings3
EXAMP * included/modified examples: dirichlet.simul (1,2),
        data.read (2), mirt.model.vars (1), rasch.mirtlc (4), 
        data.long (3,4), lavaanify.sirt (1), lavaan2mirt (1),
        dirichlet.mle (1,2), pcm.conversion (1), data.big5 (1),
        mirt.specify.partable (1), nedelsky-methods (1,2)

------------------------------------------------------------------------
Versions 0.47 -- 2014-08-30  --  CRAN sirt 0.47-36
------------------------------------------------------------------------

ADDED * included wrapper function of mirt output of extracting
        item parameters ('mirt.wrapper.coef')
EXAMP * added more examples for model estimation in mirt package
        using customized item response functions and/or 
        customized latent structure distributions
          o Ramsay's quotient model ('sim.qm.ramsay', Example 1)
          o Latent class analysis ('data.read', Model 7)
          o Mixed Rasch model ('data.read', Model 8)
          o Located latent class model/Latent class IRT model
            ('data.read', Model 12; 'rasch.mirtlc', Example 4, Model 4)
          o Probabilistic Guttman model ('prob.guttman', Example 1, 
            Model 3)
          o Nonparametric item response model with monotone item
            response functions ('prob.guttman', Example 4, Model 4)          
          o Discrete grade of membership model ('gom.em', Simulated 
            Example 2, Model 2m)
          o Multimensional item response model with discrete traits
            ('data.read', Model 13)   
          o DINA model ('data.read', Model 14)       
          o Rasch copula model ('rasch.copula2', Example 5)  
          o Rasch model with non-normal distibution ('data.read', Model 15)          
ADDED * included wrapper function of mirt output for extracting
        likelihood, posterior and expected counts 
ADDED * extended modelfit.sirt for fitted objects from mirt package
ADDED * included function 'lavaan2mirt' for converting syntax for the
        lavaan package to syntax for the mirt package
ADDED * included function 'tam2mirt' for converting a fitted object
        in TAM package into an object of class mirt in the mirt package
NOTE  * corrected some typos and improved some examples (thanks to Phil Chalmers)
EXAMP * included an example for running Mplus from within R using the
        MplusAutomation package ('data.read', Model 1)
NOTE  * renamed functionrasch.conquest into R2conquest -> function rasch.conquest
        can still be used
ADDED * included function 'mirt.wrapper.fscores' for computing EAPs, MAPs and MLEs
        for objects of class mirt

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: mirt.wrapper (1,2,3,4,5),
        sim.qm.ramsay (1), modelfit.sirt (1), data.read (1,3,7,8,12,13,14),
        lavaan2mirt (1,2,3), tam2mirt (1,2,3,4), prob.guttman (1), gom.em (2),
        equating.rasch (1), data.reck (2), rasch.mirtlc (4),
        rasch.copula2 (5)

------------------------------------------------------------------------
Versions 0.46 -- 2014-08-05  --  CRAN sirt 0.46-15
------------------------------------------------------------------------

NOTE  * used the operator '::' for functions which are used from 
        other packages than sirt in example files for datasets
FIXED * fixed a bug in plot.noharm.sirt for unidimensional models
NOTE  * fixed a minor bug in summary in 'summary.rasch.pml2'
NOTE  * included argument 'use.maxincrement' for controlling
        increments in 'rasch.pml3'
NOTE  * speeded invariance alignment function and choose now 
        different starting values to ensure a global minimum.
        Changed also default parameters to obtain more
        stable results. 
NOTE  * excluded plotting function of 'invariance.alignment'
NOTE  * changed calculation of measures of noninvariance in
        invariance.alignment. Now, the noninvariance measures 
        in 'invariance.alignment' and 'linking.haberman' 
        are equivalent.

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: data.read, data.big5,
        invariance.alignment (4,5) 

------------------------------------------------------------------------
Versions 0.45 -- 2014-05-30  --  CRAN sirt 0.45-23
------------------------------------------------------------------------

FIXED * fixed a bug in reliability calculation in noharm.sirt
NOTE  * included plots for 'noharm.sirt' using the semPlot package
ADDED * included first version of statistical implicative analysis ('sia.sirt')
ADDED * included function 'rasch.conquest' for running ConQuest from within R

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: data.mixed1, noharm.sirt (1,2),
        sia.sirt (1), data.read, rasch.evm.pcm (4)

------------------------------------------------------------------------
Versions 0.44 -- 2014-04-27  --  CRAN sirt 0.44-48
------------------------------------------------------------------------

FIXED * fixed a bug in calculation of marginal parameters for testlet model
ADDED * included the partially compensatory item response model
        (irtmodel='partcomp' in 'smirt')
NOTE  * speeded 'rasch.copula' functions a bit
NOTE  * included argument 'increment.factor' in rasch.copula to improve
        convergence behavior
FIXED * fixed a bug in 'rasch.mirtlc' in saved parameter estimates for
        models with different initial estimates (n.starts>0)
ADDED * included function for calculating marginal item parameters for
        testlet (bifactor) model ('testlet.marginalized')
ADDED * extended 'modelfit.sirt' for objects of class tam.mml, tam.mml.2pl
        and tam.fa (from the TAM package)
FIXED * fixed a bug in parsing residual matrix from NOHARM output in 'R2noharm'
NOTE  * extended output in mcmc.list. descriptives
NOTE  * changed chi square p value in R2noharm in Values according to summary
ADDED * included R implementation of NOHARM ('noharm.sirt')
NOTE  * modelfit.sirt also allows for objects of class noharm.sirt
NOTE  * included Divgi estimation method of tetrachoric correlation
ADDED * included maximum likelihood estimation of polychoric correlation

DATA  * included/modified datasets: ---
EXAMP * included/modified examples: data.wide2long (1), smirt (3), modelfit.sirt (1),
        R2noharm (4), mcmc.list.descriptives (1), noharm.sirt (1,2), data.read,
        tetrachoric (2), polychoric2 (1)

------------------------------------------------------------------------
Versions 0.43 -- 2014-03-12  --  CRAN sirt 0.43-70
------------------------------------------------------------------------

ADDED * included function 'isop.test' for testing the ISOP model
ADDED * included (non-iterative) eigenvector method for estimating
        the partial credit model -> 'rasch.evm.pcm'
NOTE  * included argument 'ref.item' in rasch.mirtlc for specification
        of reference items
ADDED * included test of de Gooijer and Yuan (2011) that CSN is non-positive
        -> 'unidim.test.csn'   
ADDED * included option for testing differential item functioning in
        rasch.evm.pcm
NOTE  * changed convergence behavior in rasch.mirtlc for 2PL models
ADDED * robust linking alternative to mean-mean linking ('linking.robust')
NOTE  * corrected output for hierarchical rater model ('rm.hrm')
ADDED * included simple latent class model for two exchangeable raters 
        ('lc.2raters')
ADDED * extended unidimensional copula model to multiple dimensions ('rasch.copula3')
NOTE  * changed numerical differentiation parameters in several functions
        to a smaller value
ADDED * included missing data IRT model ('rasch.mml2', irtmodel='missing1')
NOTE  * included person (containing person parameters) as a value in rasch.copula2
        and rasch.copula2
FIXED * fixed a bug in 'testlet.yen.q3'
NOTE  * allowed correlated residuals in reliability calculation of 
        'reliability.nonlinearSEM'
NOTE  * included reliability estimation for pseudo maximum likelihood 
        estimation ('rasch.pml3')
NOTE  * included marginal item parameters in the output in testlet model 
        ('mcmc.3pno.testlet')

DATA  * included/modified datasets: data.reck73C1a, data.reck73C1b,
        data.reck75C2, data.reck78ExA, data.reck79ExB, 
        data.liking.science, data.si02, data.si03, data.si04, data.si05
EXAMP * included/modified examples: isop.test (1), rasch.evm.pcm (1,2,3,4,5,6),
        data.reck (2,3), rasch.mirtlc (3,4,5), gom.em (2), unidim.test.csn (1,2),
        gom.em (1), linking.robust (1,2,3), lc.2raters (1), data.wide2long (2),
        rasch.copula (4), rasch.mml2 (7), reliability.nonlinearSEM (1)  

------------------------------------------------------------------------
Versions 0.42 -- 2014-01-31  --  CRAN sirt 0.42-25
------------------------------------------------------------------------

NOTE  * included further values in smirt to allow to apply itemfit.sx2
        in the CDM package
FIXED * fixed a bug in output of person parameters in smirt (missing
        standard errors; thanks to Balal Izanloo)
NOTE  * included empirical item-attribute discriminations in lsdm
NOTE  * changed NAMESPACE and DESCRIPTION files due to a change in Rcpp
FIXED * fixed a bug for constraint in mu for multidimensional models
        in rasch.mml2
FIXED * fixed warning messages when reading NOHARM output files
NOTE  * stabilized estimation of tetrachoric correlation coefficients
        for Tucker method (addition of cell sizes with a value .5) 
ADDED * included the method of Bonett and Price for calculation a
        tetrachoric correlation
NOTE  * included additional outputs and item parameters for the 
        HRM-SDT (thanks to a discussion with Robin Gleeson)
NOTE  * extended modelfit.sirt to objects of class R2noharm

DATA  * included/modified datasets: data.timss07.G8.RUS, data.reck611
EXAMP * included/modified examples: fuzcluster (1), modelfit.sirt (1)

------------------------------------------------------------------------
Versions 0.41 -- 2014-01-07  --  CRAN sirt 0.41-21
------------------------------------------------------------------------

ADDED * included maximum likelihood estimation for discrete data in the
        belief function framework ('fuzdiscr')
ADDED * included pseudo-log-likelihood estimation for fractional item
        responses (values between 0 and 1) in 'rasch.mml2'
ADDED * included clustering fur fuzzy continuous data (belief function
        framework) ('fuzcluster')

DATA  * included datasets: data.pirlsmissing
EXAMP * included examples: mcmc.2pno.ml (3), rasch.mml2 (7)

------------------------------------------------------------------------
Versions 0.40 -- 2013-12-09  --  CRAN sirt 0.40-9
------------------------------------------------------------------------

FIXED * fixed a bug in 'data.wide2long'
NOTE  * changed Rcpp code in eigenvalue calculation due to a CRAN request

DATA  * included datasets: data.big5.qgraph 
EXAMP * included examples: ---

------------------------------------------------------------------------
Versions 0.39 -- 2013-11-17  --  CRAN sirt 0.39-30
------------------------------------------------------------------------

NOTE  * included approximating function of expected percent score in
        truescore.irt
NOTE  * added a check function for inits in smirt (thanks to Balal Izanloo)
FIXED * fixed a bug in output of person parameters (thanks to Balal Izanloo)
NOTE  * speeded latent regression model 'latent.em.regression.raschtype'
ADDED * included latent.em.regression.normal for normally distributed
        outcomes
NOTE  * included factor for convergence acceleration in invariance.alignment
NOTE  * included summary for latent regression models
ADDED * included function 'mle.pcm.group' for maximum likelihood estimation
        in generalized item response models which includes an option for
        estimating group parameters
NOTE  * changed algorithm in 'invariance.alignment' into a two-step approach
NOTE  * included plot method for function 'invariance.alignment'

DATA  * included datasets: data.inv4gr, data.ess2005, data.mcdonald.rape,
        data.si01 
EXAMP * included examples: lsdm (4,5), invariance.alignment (3),
        plausible.value.imputation.raschtype (2,3)

------------------------------------------------------------------------
Versions 0.38 -- 2013-10-23  --  CRAN sirt 0.38-25
------------------------------------------------------------------------

ADDED * included function for automated finding of a scoring key in
        a data frame with raw item responses ('automatic.recode')
FIXED * fixed a bug in linking.haberman function 
NOTE  * added argument personpars in linking.haberman for transformation
        of person parameters
ADDED * included alignment method for approximate invariance
        (Asparouhov & Muthen, 2013)
ADDED * included function truescore.irt for conversion of trait scores
        into true scores for unidimensional item response models

DATA  * included item parameters data.activity.itempars

------------------------------------------------------------------------
Versions 0.37 -- 2013-10-02  --  CRAN sirt 0.37-24
------------------------------------------------------------------------

FIXED * fixed a bug in rasch.mirtlc with multiple starts in latent
        class models
NOTE  * allowed input of student weights and product-moment
        matrix in R2noharm
FIXED * fixed a bug in calculation of degrees of freedom in R2noharm 
        function
FIXED * fixed a bug in linear transformation for person parameters
        in linking.haberman
ADDED * included eigenvalue decomposition function 'eigenvalues.sirt'

DATA  * included datasets: 'data.noharmExC', 'data.mcdonald', 'data.reck'
DATA  * included data conversion function 'data.wide2long'  
DATA  * renamed 'data.noharm' into 'data.noharm18'  
  
------------------------------------------------------------------------
Versions 0.35/0.36 -- 2013-09-08  --  CRAN sirt 0.36-30
------------------------------------------------------------------------

NOTE  * corrected legends and labels in plot.isop function
ADDED * included function rowKSmallest2.sirt
FIXED * fixed a bug in mcmc.3pno.testlet (thanks to Chun-Hsien Wu)
        -> removed parametrization 3 (bifactor model) because it
        produced untrustworthy results
NOTE  * included gregmisc in imports (thanks to Jean-Paul Fox)
NOTE  * disabled parametrization 2 in mcmc.3pno.testlet
        -> now only the original model from the Glas paper
          (parametrization 1) is estimated
NOTE  * included argument for item parameter fixings in
        pairwise conditional likelihood function rasch.pairwise.itemcluster
NOTE  * included ETS classification labels of uniform DIF in
        function dif.logistic.regression
NOTE  * included the option of not submitting any item strata 
        to stratified.cronbach.alpha and an example for using 
        the psych package
ADDED * included function 'md.pattern.sirt' for analyzing
        response patterns
NOTE  * included crossprod function in several sirt functions
ADDED * included monotone nonparametric estimation in 'rasch.mml2'
        as the default in case of irtmodel='npirt' and npformula=NULL
NOTE  * speeded irtmodel='npirt' in case of providing npformula
NOTE  * included output of summary of testlet effects in 
        mcmc.3pno.testlet
ADDED * included the functional unidimensional model (Ip et al. 2013)
ADDED * included the linking method of Haberman (2009)
NOTE  * included plot method for rasch.mml2 function
NOTE  * removed rasch.testlet.glmer function

------------------------------------------------------------------------
Version 0.34 -- 2013-08-13  --  CRAN sirt 0.34-46
------------------------------------------------------------------------

ADDED * included estimation of ISOP and ADISOP models
FIXED * fixed a bug in pbivnorm2 for negative correlations
NOTE  * included argument increment.factor in smirt to
        prevent nonconvergence (thanks to Balal Izanloo)
ADDED * included rowwise maximum and minimum and rowwise
        cumulative sum of a matrix based on Rcpp code
ADDED * included matrix functions rowIntervalIndex.sirt 
        (useful for simulations) and rowKSmallest.sirt 
        (useful for sorting matrix entries, e.g. for
        predictive mean matching in mice)
FIXED * fixed a bug in mcmc.2pno.ml (thanks to Ronny Scherer)
ADDED * included matrix row and column wise monotone regression
        function monoreg.rowwise (adapted from fdrtool package)
ADDED * included graded response model estimation in isop.poly
        function
ADDED * included plot method for ISOP models (isop.dich and
        isop.poly)

DATA  * included example data.big5
EXAMP * included an example for DETECT for polytomous data

------------------------------------------------------------------------
Versions 0.32/0.33 -- 2013-07-09  --  CRAN sirt 0.33-16
------------------------------------------------------------------------

ADDED * included the estimation  of the 2PL model via MCMC (mcmc.2pno)
NOTE  * included a function for estimating Rhat and MAP from MCMC output
        (mcmc.list.descriptives)
ADDED * included a function for writing coda files (mcmclist2coda)
NOTE  * renamed jacknife.rasch.jml into rasch.jml.jackknife1
ADDED * included mcmc.2pnoh for estimating a hierarchical IRT model
ADDED * included mcmc.3pno.testlet for estimating IRT testlet and
        bifactor models for dichotomous data
ADDED * included mcmc.2pno.ml function for estimating a multilevel
        IRT model for dichotomous and normally distributed data
ADDED * included R2NOHARM functions into this package for running
        NOHARM from within R
NOTE  * modelfit.sirt now allows objects of class smirt
NOTE  * speeded calculation of modelfit.sirt
NOTE  * speeded rasch.mml2, prob.guttman, rasch.mirtlc, rm.facets, rm.hrm

------------------------------------------------------------------------
Version 0.31 -- 2013-05-27  --  CRAN sirt 0.31-20
             [*** First CRAN Release ***]
------------------------------------------------------------------------

NOTE  * speeded rasch.pml2 a bit
FIXED * fixed a bug in smirt function (thanks to Izanloo Balal)
ADDED * included function tetrachoric2 faster calculation
        of the tetrachoric correlation matrix
ADDED * included pbivnorm2 for calculating the bivariate normal integral
NOTE  * included rasch.pml3, a bit faster version than rasch.pml2
FIXED * eliminated warning statements in smirt and fixed a bug in 
        estimation of a and b parameters in smirt (thanks to Izanloo Balal)

------------------------------------------------------------------------
Version 0.30  -- 2013-04-30
------------------------------------------------------------------------

NOTE  * included a Rcpp function for faster calculations in rm.hrm
        (now there is a dependency of Rcpp and RcppArmadillo)
ADDED * included smirt function for estimating the multdimensional
        noncompensatory and compensatory models
ADDED * included variational approximation for the Rasch model
ADDED * included the (Rasch) grade of membership model

------------------------------------------------------------------------
Version 0.29  -- 2013-04-08
------------------------------------------------------------------------

ADDED * included function for computing eigenvalues and inverses of
        many matrices
ADDED * included facets models with item/rater intercepts and slopes
ADDED * included initial version of the hierarchical rater model based on
        signal detection theory (DeCarlo et al., 2011)
ADDED * included function for simulating and estimating the
        Dirichlet distribution
ADDED * included grade of membership model with joint maximum 
        likelihood estimation -> gom.jml

------------------------------------------------------------------------
Version 0.28  -- 2013-03-24
------------------------------------------------------------------------

NOTE  * included standard errors in rasch.mml2
ADDED * included marginal true score reliability for binary item 
        response data (Dimitrov, 2003; thanks to Ulrich Schroeders)

------------------------------------------------------------------------
Version 0.27  -- 2013-02-26
------------------------------------------------------------------------

ADDED * included classification accuracy in the Rasch model
ADDED * implemented the multidimensional latent class Rasch model
        (Bartolucci, 2007)
NOTE  * cleaning of help files, included several datasets and
        examples
NOTE  * included log-linear smoothing of the theta distribution
        in rasch.mirtlc
ADDED * included 2PL estimation in rasch.mirtlc
ADDED * included global fit statistics in modelfit.sirt
NOTE  * included log-linear smoothing of the ability distribution
        in rasch.mml2
NOTE  * accelerated rasch.pml function and renamed it into rasch.pml2
NOTE  * allowed for linear constraints for residual correlations
        in rasch.pml2
NOTE  * accelerated latent.regression.em.raschtype and 
        plausible value routines

------------------------------------------------------------------------
Version 0.26  -- 2013-01-17
------------------------------------------------------------------------

NOTE  * restructured rasch.mml2 function to get a bit more compact code
NOTE  * do not export rasch.mml and rasch.copula anymore via namespace
ADDED * included nonparametric IRT function estimation in rasch.mml2
        -> argument irtmodel='npirt' (Rossi, Wang & Ramsay, 2002)
ADDED * included multidimensional models in rasch.mml2
NOTE  * added corrected AIC (AICc) in rasch.mml2 and rasch.copula2
NOTE  * corrected mean and SD estimation in rasch.mml2
FIXED * fixed a bug in the calculation of the number of estimated parameters
        in rasch.copula2
FIXED * corrected rasch.mml2 function in case of fixed weights of
        trait distribution
FIXED * corrected a bug in wle.rasch
ADDED * included probabilistic Guttman model
ADDED * added analytical bias correction method for JML estimation of the Rasch model
NOTE  * accelerated PMML estimation algorithm
ADDED * added 2PL estimation in rasch.pml

------------------------------------------------------------------------
Version 0.25  -- 2012-10-16
------------------------------------------------------------------------

FIXED * fixed bad numerical behavior in rasch.copula2 for Cook-Johnson
        and Frank copula models
NOTE  * improved speed in yen.q3 and extended output
NOTE  * speed improvement in rasch.mml and rasch.copula2
NOTE  * included version rasch.mml2 with substantial speed improvements
NOTE  * speed improvements for rasch.jml function

------------------------------------------------------------------------
Version 0.24 -- 2012-09-20
------------------------------------------------------------------------

NOTE  * changed algorithms behavior of rasch.copula2 
        (parameter increments depend on number of iterations)
FIXED * corrected deviance calculation in rasch.copula

------------------------------------------------------------------------
Version 0.23  -- 2012-08-31
------------------------------------------------------------------------

NOTE  * removed functions for running ConQuest from this package
ADDED * included Cook-Johnson and Frank copula in rasch.copula2 function
ADDED * included examples for wle.rasch.jackknife
FIXED * removed a minor printing bug in rasch.copula
FIXED * fixed a bug in jackknife.rasch.jml
NOTE  * included item parameter constraints in jackknife.rasch.jml
FIXED * corrected handling of extreme responses in rasch.prox

------------------------------------------------------------------------
Version 0.22 -- 2012-07-17
------------------------------------------------------------------------

ADDED * included estimation of residual error correlations in rasch.pml
NOTE  * restructured rasch.testlet.glmer function
DATA  * included data set reading data.read
NOTE  * set a different default in rasch.mml (estimation of trait SD seemed incorrect)
NOTE  * rasch.testlet.glmer: output EAPs and EAP reliability
NOTE  * included loglog and cloglog link functions in rasch.testlet.glmer
ADDED * included jackknife estimation of the joint maximum likelihood
        Rasch model
NOTE  * included a speeded version of rasch.copula and labelled it 
        as rasch.copula2 -> The old version rasch.copula remains in the package.
NOTE  * output posterior distribition, EAP estimates and
        EAP reliability in rasch.copula    
ADDED * introduced probit and logit version of rasch.pml: pairwise marginal 
        likelihood estimation
FIXED * removed some bugs (or inefficiencies) in numerical differentiation 
        in rasch.mml and rasch.copula
NOTE  * renamed sim.rasch.copula into sim.rasch.dep
ADDED * included function rasch.pairwise.itemcluster for the conditional 
        pairwise estimation method for locally dependent items   
NOTE  * package structure of sirtr is created
ADDED * included simulation function for Rasch copula model ('sim.rasch.copula')


**************************************************************************
# older sirt versions (formerly sirtr up to 0.21)

Version 0.21 -- 2012-06-23
Version 0.20 -- 2012-06-18
Version 0.19 -- 2012-04-26
Version 0.18 -- 2012-03-29
Version 0.17 -- 2012-02-22
Version 0.16 -- 2012-02-17
Version 0.15 -- 2011-12-19
Version 0.14 -- 2011-10-06
Version 0.13 -- 2010-08-26
Version 0.12 -- 2010-01-13
Version 0.11 -- 2010-01-12
Version 0.10 -- 2010-01-02
Version 0.9  -- 2009-11-01
Version 0.8  -- 2009-03-08
Version 0.7  -- 2009-03-02
Version 0.6  -- 2009-12-02
Version 0.5  -- 2008-11-12
Version 0.4  -- 2008-08-25
Version 0.3  -- 2008-05-06
Version 0.2  -- 2008-01-29
Version 0.1  -- 2007-12-22
Version 0.0  -- 2007-12-18
