ssdtools 1.0.2

ssdtools 1.0.1

ssdtools 1.0.0

ssdtools version 1.0.0 is the first major release of ssdtools with some important improvements and breaking changes.


An important change to the functionality of ssd_fit_dists() was to switch from model fitting using fitdistrplus to TMB which has resulted in improved handling of censored data. Although it was hoped that model fitting would be faster this is currently not the case.

As a result of the change the fitdists objects returned by ssd_fit_dists() from previous versions of ssdtools are not compatible with the major release and should be regenerated.


As a result of an international collaboration British Columbia and Canada and Australia and New Zealand selected a set of recommended distributions for model averaging and settings when generating final guidelines.

The distributions are

> ssd_dists_bcanz()
[1] "gamma"       "lgumbel"     "llogis"      "lnorm"       "lnorm_lnorm" "weibull" 

The ssd_fit_bcanz() and ssd_hc_bcanz() functions were added to the package to facilitate the fitting of these distributions and estimation of hazard concentrations using the recommended settings.


In the previous version of ssdtools a distribution was considered to have converged if the following condition was met

  1. stats::optim() returns a code of 0 (indicating successful completion).

In the new version an additional two conditions must also be met

  1. Bounded parameters are not at a boundary (this condition can be turned off by setting at_boundary_ok = TRUE or the user can specify different boundary values - see below)
  2. Standard errors are computable for all the parameter values (this condition can be turned off by setting computable = FALSE)

Censored Data

Censoring can now be specified by providing a data set with one or more rows that have

It is currently not possible to fit distributions to data sets that have

Rows that have a zero or missing value for the left column and an infinite or missing value for the right column (fully censored) are uninformative and will result in an error.

Akaike Weights

For uncensored data, Akaike Weights are calculated using AICc (which corrects for small sample size). In the case of censored data, Akaike Weights are calculated using AIC (as the sample size cannot be estimated) but only if all the distributions have the same number of parameters (to ensure the weights are valid).

Weighted Data

Weighting must be positive with values <= 1000.


Previously the density functions for the available distributions were exported as R functions to make them accessible to fitdistrplus. This meant that ssdtools had to be loaded to fit distributions. The density functions are now defined in C++ as TMB templates and are no longer exported.

The distribution, quantile and random generation functions are more generally useful and are still exported but are now prefixed by ssd_ to prevent clashes with existing functions in other packages. Thus for example plnorm(), qlnorm() and rlnorm() have been renamed ssd_plnorm(), ssd_qlnorm() and ssd_rlnorm().

The following distributions were added (or in the case of burrIII3 readded) to the new version

The following arguments were added to ssd_fit_dists()

It also worth noting that the default value of

Subsets of Distributions

The following were added to handle multiple distributions


The function ssd_fit_burrlioz() was added to approximate the behaviour of Burrlioz.

Hazard Concentration/Protection Estimation

Hazard concentration estimation is performed by ssd_hc() (which is wrapped by predict()) and hazard protection estimation by ssd_hp(). By default confidence intervals are estimated by parametric bootstrapping.

To reduce the time required for bootstrapping, parallelization was implemented using the future package.

The following arguments were added to ssd_hc() and ssd_hp()

and the following columns were added to the output data frame

It also worth noting that the

Censored Data

Confidence intervals cannot be estimated for interval censored data.

Weighted Data

Confidence intervals cannot be estimated for unequally weighted data.

Goodness of Fit

The pvalue argument (by default FALSE) was added to ssd_gof() to specify whether to return p-values for the test statistics as opposed to the test statistics themselves.


There have also been some substantive changes to the plotting functionality.

Added following functions

Made the following changes to ssd_plot()

Renamed - GeomSsd to GeomSsdpoint. - StatSsd to StatSsdpoint

Soft-deprecated - geom_ssd() for geom_ssdpoint(). - stat_ssd(). - ssd_plot_cf() for fitdistrplus::descdist().



The dataset boron_data was renamed ccme_boron and moved to the ssddata R package together with the other CCME datasets.

The ssddata package provides a suite of datasets for testing and comparing species sensitivity distribution fitting software.

Data Handling Functions





ssdtools 0.3.7

ssdtools 0.3.6

ssdtools 0.3.5

ssdtools 0.3.4

ssdtools 0.3.3

ssdtools 0.3.2

ssdtools 0.3.1

ssdtools 0.3.0

Breaking Changes

Major Changes

Minor Changes

Internal Changes

ssdtools 0.2.0

Breaking Changes

Major Changes

Minor Changes

ssdtools 0.1.1

ssdtools 0.1.0

Breaking Changes

Major Features

Minor Features


Bug Fixes

ssdtools 0.0.3

ssdtools 0.0.2

ssdtools 0.0.1