Changelog¶
0.2.11¶
This version include the following:
- Simplification of simulator logic inside HSSM random variables (see the
ssm-simulators0.11.3release as well) - Plotting functions now allow
prior_predictiveplots wherever suitable. - A new tutorial on using bayeux for sampling
- Consolidated
plottingtutorial - New tutorial on how to use the
do-operatorfrom PyMC to control forward simulations
0.2.8¶
This version of HSSM incorporated the following changes:
- Addition of tutorials for RLSSM paradigms.
- Restructure
rldm.pyto make it more template-based to allow easy introduction of new models.
0.2.7¶
This version of HSSM incorporated the following changes:
- Bugfix in
mkdocs.yml. No tutorial notebooks should be actively executed when re-building docs.
0.2.6¶
This version of HSSM incorporated the following changes:
- Overhaul of our development infrastructure to depend on
uv - Addition of various new tutorials (highlight: how to fit RL+SSM models)
- New
rldmlikelihoods - Major internal refactor (e.g.
DataValidatorclass for pre-processing)
0.2.5¶
This version of HSSM incorporated the following changes:
- We added a new tutorial on how to use custom likelihood functions with HSSM.
- Added convenience function
compile_logp()to return a compiled log-likelihood function to be used freely downstream. - Some improvements to internals to allow for (1.)
- Major improvments to plotting with
model_cartoon_plots() - Refactoring and minor improvements to pre-existing plots
- Added functionality to save and load models with
save_model()andload_model().
0.2.4¶
This version of HSSM incorporated the following changes:
- We updated HSSM to be compatible with the major API changes in
bambiv0.14.0. - We fixed various graphing issues in
pymc5.16.0+, thanks to the API changes inbambi. - We added variational inference via native
pymc. - We can now use
float64inference. - We fixed some minor bugs in providing initial values.
- We added a model.dic() convenience function.
- We added a model.restore_traces() convenience function.
- Other minor bug fixes.
0.2.3¶
This is a maintenance release of HSSM, mainly to add a version constraint on bambi in light of the many breaking changes that version 0.1.4 introduces. This version also improved compatibility with PyMC>=5.15 and incorporated minor bug fixes:
- We incorporated a temporary fix to graphing which broke after
PyMC>=5.15. - We deprecated
ndimandndim_suppdefinition inSSMRandomVariableinPyMC>-5.16. - We fixed a bug that prevents new traces from being returned if
model.sample()is called again.
0.2.2¶
HSSM is now on Conda! We now recommend installing HSSM through conda install -c conda-forge hssm. For advanced users, we also support installing the GPU version of JAX through pip install hssm[cuda12].
This version incorporates various bug fixes:
- We fixed a major bug that causes divergences for models using
approx_differentiableandblackboxlikelihoods. We are still looking into the issues of divergence withanalyticallikelihoods. - We made the model creation process more robust, fixing errors when categorical variables are used with group identifiers.
- We updated the codebase according to the deprecations in higher versions of JAX.
- We implemented a temporary fix to an issue that might cause the kernel to die due to OOM.
0.2.1¶
We added a few new features in 0.2.1:
- We have finished updating the HSSM code base to support go-nogo data and deadline. We will provide documentation once the networks are added to our huggingface repo.
- We updated
hssm.distribution_utilsto streamline the creation ofpm.Distributions. - We now support response variables other than
rtandresponse. They can be specified throughmodel_configvia the newresponsefield. - We have fixed some of the issues with convergence when using
log-logitlink functions and/or safe priors.
Other minor updates
- Fixed an incompatible shape error during posterior predictive sampling when
p_outlieris estimated as a parameter. - Updated documentation for using
make_distributionwith PyMC.
Bug fixes:
- Fixed default list of parameters for
ddm_fullmodel and the bounds forddm_sdvmodel.
0.2.0¶
This is a major version update! Many changes have taken place in this version:
Breaking changes¶
When hierarchical argument of hssm.HSSM is set to True, HSSM will look into the
data provided for the participant_id field. If it does not exist, an error will
be thrown.
New features¶
-
Added
link_settingsandprior_settingsarguments tohssm.HSSM, which allows HSSM to use intelligent default priors and link functions for complex hierarchical models. -
Added an
hssm.plottingsubmodule withplot_predictive()andplot_quantile_probabilityfor creating posterior predictive plots and quantile probability plots. -
Added an
extra_fieldsargument tohssm.HSSMto pass additional data to the likelihood function computation. -
Limited
PyMC,pytensor,numpy, andjaxdependency versions for compatibility.
0.1.x¶
0.1.5¶
We fixed the errors in v0.1.4. Sorry for the convenience! If you have accidentally downloaded v0.1.4, please make sure that you update hssm to the current version.
- We made Cython dependencies of this package available via pypi. We have also built wheels for (almost) all platforms so there is no need to build these Cython dependencies.
0.1.4¶
- Added support of
blackboxlikelihoods forddmandddm_sdvmodels. - Added support for
full_ddmmodels viablackboxlikelihoods. - Added the ability to use
hssm.Paramandhssm.Priorto specify model parameters. - Added support for non-parameter fields to be involved in the computation of likelihoods.
- Major refactor of the code to improve readability and maintainability.
- Fixed a bug in model.sample_posterior_predictive().
0.1.3¶
- Added the ability to specify
infs in bounds. - Fixed an issue where
nuts_numpyrosampler fails with regression and lapse distribution. - Defaults to
nuts_numpyrosampler withapprox_differentiablelikelihoods andjaxbackend. - Added a
hssm.show_defaults()convenience function to print out default configs. - Added default
blackboxlikelihoods forddmandddm_sdvmodels. - Various under-the-hood documentation improvements.
0.1.2¶
- Improved numerical stability of
analyticallikelihoods. - Added the ability to handle lapse distributions.
- Added the ability to perform prior predictive sampling.
- Improved model information output - now default priors provided by
bambiis also printed. - Added a
hierarchicalswitch which turns all parameters into hierarchical whenparticipant_idis provided in data. -
Parameters are now named more consistently (group-specific terms are now aliased correctly).
-
Fixed a bug where information about which parameter is regression is incorrectly passed.
- Added links to Colab to try out hssm in Google Colab.
0.1.1¶
- Handle
floattypes inPyTensorandJAXmore consistently and explicitly. - Updated model output format to include likelihood kinds and display bounds more consistently.
- Support for
infs in bounds. - Convenient method for simulating data with
ssm_simulators. - More test coverage.
- CI workflows for publishing package to PyPI.
- Enhancement to documentations.