Changelog
Source:NEWS.md
ssdtools 1.0.6.9015
Additions
 Added to
ssd_hc()
andssd_hp()

multi_est = TRUE
argument to calculate model averaged estimates treating the distributions as constituting a single mixture distribution. 
method_ci = "weighted_samples"
to specify whether to use"weighted_samples"
,"weighted_arithmetic"
,"multi_free"
or"multi_fixed"
methods to generate confidence intervals. 
samples
argument to include bootstrap samples as list of numeric vector(s). 
save_to
argument to specify a directory in which to save the bootstrap datasets as csv files and parameter estimates as rds files. The files are nameddata_000000001_xx.csv
andestimates_000000001_xx.rds
etc wherexx
is the distribution. The parent data set and estimates are namedboot_000000000_xx.csv
andestimates_000000000_xx.csv
.

 Added
ssd_hp_bcanz()
andssd_hp.fitburrlioz()
function to get hazard proportions.  Added
trans = "log10"
andadd_x = 0
arguments tossd_plot()
andssd_plot_data()
.  Added
ssd_pmulti()
,ssd_qmulti()
andssd_rmulti()
for combined mixture distributions.  Added
ssd_exx()
functions to get default parameter estimates for distributions.  Added David Fox and Rebecca Fisher as coauthors.
 Added
npars
argument tossd_dists_bcanz()
.
Modifications
 Changed to
min_pboot = 0.95
for all functions. 
estimates.fitdists()
now includes weights in returned parameters as well as anall_estimates = FALSE
argument to allow parameter values for all implemented distributions to be included. 
ssd_fit_bcanz()
,ssd_wqg_bc()
andssd_wqg_burrlioz()
no longer rescale data by default. 
rescale = TRUE
now divides by the geometric mean of the minimum and maximum positive finite values as opposed to dividing by the geometric mean of the maximum finite value.  Replaced column percentage between 0 and 100 with proportion between 0 and 1 in output of
ssd_hc()
 Changed
delta = 7
todelta = 9.21
to weight of included models no more than 0.01.  seeds now allocated to bootstrap samples as opposed to distributions (this results in a speed gain when more cores than the number of distributions).
 Exported
dists = ssd_dists_bcanz()
argument tossd_fit_bcanz()
to allow other packages to modify.  Check
...
unused where appropriate. 
ssd_plot_cdf()
now includes average with other distributions ifaverage = NA
(@poissonconsulting, #351).  switched from
logit_pmix
topmix
in mixture distributions 
lnorm
no longer initializes optimization with maximum likelihood estimates  Offset starting values for
gompertz
distribution.
Deprecation
 Softdeprecated argument
percent = 5
forproportion = 0.05
forssd_hc()
andpredict()
. 
is_censored()
,ssd_plot_cf()
andcomma_signif(...)
now warn deprecated unconditionally. 
plot.fitdists()
now defunct.  Removed defunct
ssd_cfplot()
 Removed
ccme_data
andccme_boron
data set.
ssdtools 1.0.4
CRAN release: 20230517
 Added contributors.
 Now tests table values to 6 significant figures.
 Fixed bug that was not preserving NaN (returning NA_real_) for cumulative distribution and quantile functions.
ssdtools 1.0.3
CRAN release: 20230412
 Replaced
size = 0.5
withlinewidth = 0.5
ingeom_hcintersect()
andgeom_xribbon()
.  Replaced
aes_string()
withaes()
in examples (and internally).  Removed use of
tidyverse
package.  Now tests values to 12 significant digits.
 Fixed description of
ssd_hp()
to be percent affected rather than percent protected.
ssdtools 1.0.2
CRAN release: 20220514
 Fixed bug that was producing estimates of 0 for lower HCx values for lognormal mixture model with rescaled data spanning many orders of magnitude.
ssdtools 1.0.0
CRAN release: 20220401
ssdtools version 1.0.0 is the first major release of ssdtools
with some important improvements and breaking changes.
Fitting
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.
BCANZ
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 {r} > 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.
Convergence
In the previous version of ssdtools
a distribution was considered to have converged if the following condition was met

stats::optim()
returns a code of 0 (indicating successful completion).
In the new version an additional two conditions must also be met
 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)  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
 a finite value for the left column that is smaller than the finite value in the right column (interval censored)
 a zero or missing value for the left column and a finite value for the right column (left censored)
It is currently not possible to fit distributions to data sets that have
 a infinite or missing value for the right column and a finite value for the left column (right censored)
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).
Distributions
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

burrIII3
 burrIII three parameter distribution 
invpareto
 inverse pareto (with bias correction in scale order statistic) 
lnorm_lnorm
lognormal/lognormal mixture distribution 
llogis_llogis
loglogistic/loglogistic mixture distribution
The following arguments were added to ssd_fit_dists()

rescale
(by defaultFALSE
) to specify whether to rescale concentrations values by dividing by the largest (finite) value. This alters the parameter estimates, which can help some distributions converge, but not the estimates of the hazard concentrations/protections. 
reweight
(by defaultFALSE
) to specify whether to reweight data points by dividing by the largest weight. 
at_boundary_ok
(by defaultFALSE
) to specifying whether a distribution with one or more parameters at a boundary has converged. 
min_pmix
(by default 0) to specify the boundary for the minimum proportion for a mixture distribution. 
range_shape1
(by defaultc(0.05, 20)
) to specify the lower and upper boundaries for the shape1 parameter of the burrIII3 distribution. 
range_shape2
(by default the same asrange_shape2
) to specify the lower and upper boundaries for the shape2 parameter of the burrIII3 distribution. 
control
(by default an empty list) to pass a list of control parameters tostats::optim()
.
It also worth noting that the default value of

computable
argument was switched fromFALSE
toTRUE
to enforce stricter requirements on convergence (see above).
Subsets of Distributions
The following were added to handle multiple distributions

ssd_dists()
to specify subsets of the available distributions. 
delta
argument (by default 7) to thesubset()
generic to only keep those distributions within the specified AIC(c) difference of the best supported distribution.
Burrlioz
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()

delta
(by default 7) to only keep those distributions within the specified AIC difference of the best supported distribution. 
min_pboot
(by default 0.90) to specify minimum proportion of bootstrap samples that must successfully fit. 
parametric
(by defaultTRUE
) to allow nonparametric bootstrapping. 
control
(by default an empty list) to pass a list of control parameters tostats::optim()
.
and the following columns were added to the output data frame

wt
to specify the Akaike weight. 
method
to indicate whether parametric or nonparametric bootstrap was used. 
nboot
to indicate how many bootstrap samples were used. 
pboot
to indicate the proportion of bootstrap samples which fitted.
It also worth noting that the

dist
column was moved from the last to the first position in the output data frame.
Goodness of Fit
The pvalue
argument (by default FALSE
) was added to ssd_gof()
to specify whether to return pvalues for the test statistics as opposed to the test statistics themselves.
Plotting
There have also been some substantive changes to the plotting functionality.
Added following functions

ssd_plot_data()
to plot censored and uncensored data by callinggeom_ssdpoint()
for the left and for the right column (alpha parameter values should be adjusted accordingly) 
geom_ssdsegment()
to allow plotting of the range of a censored data points using segments. 
scale_colour_ssd()
(andscale_color_ssd()
) to provide an 8 colorblind scale.
Made the following changes to ssd_plot()
 added
bounds
(by defaultc(left = 1, right = 1)
) argument specify how many orders of magnitude to extend the plot beyond the minimum and maximum (nonmissing) values.  added
linetype
(by defaultNULL
) argument to specify line type.  added
linecolor
(by defaultNULL
) argument to specify line color.  changed default value of
ylab
from “Percent of Species Affected” to “Species Affected”.
Renamed  GeomSsd
to GeomSsdpoint
.  StatSsd
to StatSsdpoint
Softdeprecated  geom_ssd()
for geom_ssdpoint()
.  stat_ssd()
.  ssd_plot_cf()
for fitdistrplus::descdist()
.
Data
ssddata
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
Added

ssd_data()
to return original data for afitdists
object. 
ssd_ecd_data()
to get empirical cumulative density for data. 
ssd_sort_data()
to sort data by empirical cumulative density.
Miscellaneous

npars()
now orders by distribution name.  All functions and arguments that were softdeprecated prior to v0.3.0 now warn unconditionally.
ssdtools 0.3.3
CRAN release: 20210219
 Increased requirement that R >= 3.5 due to VGAM.
 Modified
comma_signif()
so that now rounds to 3 significant digits by default and only appliesscales::comma()
to values >= 1000.  Softdeprecated the
...
argument tocomma_signif()
.
ssdtools 0.3.0
CRAN release: 20200709
Breaking Changes
 Softdeprecated ‘burrIII3’ distribution as poorly defined.
 Softdeprecated ‘pareto’ distribution as poor fit on SSD data.
Major Changes
 Reparameterized ‘llogis’ distribution in terms of locationlog and scalelog.
 Reparameterized ‘burrIII3’ distribution in terms of lshape1, lshape2 and lscale.
 Reparamaterized ‘burrIII2’ distribution in terms of locationlog and scalelog.
 Reparamaterized ‘lgumbel’ distribution in terms of locationlog and scalelog.
 Reparamaterized ‘gompertz’ distribution in terms of llocation and lshape.
 Standardized handling of arguments for d,p,q,r and s functions for distributions.
ssdtools 0.2.0
CRAN release: 20200415
Breaking Changes
 Changed computable (whether standard errors must be computable to be considered to have converged) to FALSE by default.
 Enforces only one of ‘llogis’, ‘llog’ or ‘burrIII2’ in all sets (as identical).
ssdtools 0.1.0
CRAN release: 20200113
Breaking Changes
 Default distributions changed to ‘burrIII2’, ‘gamma’ and ‘lnorm’ from ‘gamma’, ‘gompertz’, ‘lgumbel’, ‘llog’, ‘lnorm’ and ‘weibull’.
 Changed implicit behaviour of
ssd_hc()
andpredict()
whereci = TRUE
to explicitssd_hc(ci = FALSE)
andpredict(ci = FALSE)
.  Replaced
shape
andscale
arguments tollog()
withlshape
andlscale
.  Replaced
location
andscale
arguments tolgumbel()
withllocation
andlscale
.
Major Features
 Added Burr TypeIII TwoParameter Distribution (
burrIII2
).  Added
ssd_hp()
to calculate hazard percent at specific concentrations.  Added
ssd_exposure()
to calculate proportion exposed based on distribution of concentrations.  Optimized
predict()
and added parallel argument.  Tidyverse style error and warning messages.
Minor Features

ssd_fit_dists()
now checks if standard errors computable.  Added Burr TypeIII ThreeParameter Distribution (
burrIII3
).  Added
sdist(x)
functionality to set starting values for distributions.  Added
ssd_plot_cdf()
to plot cumulative distribution function (equivalent toautoplot()
) 
nobs()
for censored data now returns a missing value.  Default
ssd_fit_dists()
distributions now ordered alphabetically.
Deprecated
 Deprecated
ssd_hc()
argumenthc = 5L
forpercent = 5L
.  Deprecated
dllog()
etc fordllogis()
.  Deprecated
ssd_cfplot()
forssd_plot_cf()
.
ssdtools 0.0.3
CRAN release: 20181125
 added citation
 Added ssdtoolsmanual vignette
 Changed predict() and ssd_hc() nboot argument from 1001 to 1000
 Added hc5_boron data object
 No longer export ssd_fit_dist() as ssd_fit_dists() renders redundant
 geom_hcintersect() now takes multiple values
 More information in DESCRIPTION
 Added CRAN badge
 Removed dependencies: dplyr, magrittr, plyr, purrr
 Moved from depends to imports: VGAM, fitdistrplus, graphics, ggplot, stats
 Moved from imports to suggests: tibble