Skip to content

Releases: douglasrizzo/catsim

0.17.3

08 Sep 19:31
Compare
Choose a tag to compare

This release

  • updates the documentation
  • fixes unit tests
  • updates deprecated APIs of other packages
  • adds Python 3.11 to the test matrix

Full Changelog: 0.17.2...0.17.3

Fix for stratified methods

16 Jan 21:18
Compare
Choose a tag to compare
Pre-release

This version provides a tentative fix for #29.

Full Changelog: 0.17.1...0.17.2

0.17.1

28 Jun 14:10
Compare
Choose a tag to compare

In this release, I have removed the hill climbing estimation method in favor of the newly implemented ones. Some edge cases were found in my implementation of the method which make the other ones not only faster, but more precise.

There is also a wallclock time comparison among estimators in the documentation.

0.17.0

27 Jun 14:31
Compare
Choose a tag to compare

Estimation overhaul

This version presents a major overhaul in the ability estimation module. I decided to revisit the theory behind finding extrema of unimodal functions without the use of derivatives (which is the case of the log-likelihood used to estimate the most likely abilities for examinees during a CAT, given their response patterns) and bumped into this amazing playlist by @osveliz.

New estimator implementations

From that playlist, I have implemented the following methods for finding the maxima of the log-likelihood function:

New estimators from SciPy

I also found out that all minimization methods implemented in scipy.optimize.minimize_scalar work really well in catsim, so I have also made those available in the estimation module.

Better results

These changes have introduced a small but noticeable speedup in simulation times, since many of the new methods tend to evaluate the log-likelihood function fewer times than the older estimators present in catsim. In particular, all of the new methods are more theoretically sound than the HillClimbingEstimator as well as 5 to 10 times faster than the DifferentialEvolutionEstimator.

Breaking changes

Due to that, I have decided to retire the DifferentialEvolutionEstimator and joined all estimators (including the HillClimbingEstimator) into a new NumericalSearchEstimator class.

Instantiating the new estimators

For the old hill-clibing estimation method:

estimator = NumericalSearchEstimator("hillclimbing")

For the four new estimators implemented into catsim::

estimator = NumericalSearchEstimator("ternary")
estimator = NumericalSearchEstimator("dichotomous")
estimator = NumericalSearchEstimator("fibonacci")
estimator = NumericalSearchEstimator("golden2")

For the three estimators from scipy.optimize.minimize_scalar():

estimator = NumericalSearchEstimator("brent")
estimator = NumericalSearchEstimator("bounded")
estimator = NumericalSearchEstimator("golden")

Closing remarks

If everything goes right with the new GitHub Actions I've implemented, the documentation will be updated shortly. The examples in the README as well as the documentation website will have all information regarding the new estimators. After the documentation update, you find a comparison among the new estimation methods here.

0.16.0

26 Jun 10:12
Compare
Choose a tag to compare

This version mainly deals with instabilities in the HillClimbingEstimator when users feed it random response patterns. To deal with that, a small error margin was added to the location in which the estimator looks for the most probable new ability value during estimation.

Also, since it appears that most users do not want to deal with ability estimations equal to +infinity or -infinity, I have activated Dodd's estimation method by default in the HillClimbingEstimator.

Lastly, a bug was fixed related to how the HillClimbingEstimator chooses new bounds in its iterative algorithm.

0.15.7

13 Jun 19:47
Compare
Choose a tag to compare

This much needed release exists thanks to @frankier, who recently contributed with PRs #22 #25 #26 and issues #23 #24.

In other news:

Fix in HillClimbingEstimator

12 Mar 18:22
Compare
Choose a tag to compare

This fixes a rather serious issue in the HillClimbingEstimator. Discussion on the bug and the fix are on issue #13. The issue is considered fixed, but the discussion may go on.

0.9.1

23 Feb 05:24
Compare
Choose a tag to compare

Stable support for all initializers, selectors, estimators and stoppers.
Possibility to plot a variety of data, like variance, standard error of estimation, reliability, test information etc.
Fixed many bugs related to documentation, floating point numbers and function maxima estimation.

First stable release

18 Feb 20:21
Compare
Choose a tag to compare
First stable release Pre-release
Pre-release

This release of catsim contains all the basic functionalities of a package that make it useful to others, while still maintaining its beta status (pre 1.0.0).