Releases: mitchelloharawild/distributional
Releases · mitchelloharawild/distributional
distributional 0.7.0
Improvements
- Fixed default argument
sigmafordist_multivariate_normal()(#118). - Improved formatting of support regions for limited multivariate support regions.
New features
Probability distributions
- Added
dist_dirichlet()for the Dirichlet distribution (#146). - Added
dist_horseshoe()for the Horseshoe distribution.
CRAN v0.6.0
Extensively updated documentation for each distribution to include additional details about the statistics associated with each distribution.
New features
- Added
has_symmetry()generic to identify if a distribution is symmetric.
Probability distributions
- Added
dist_laplace()for the Laplace distribution. - Added
dist_multivariate_t()for the multivariate t-distribution.
Improvements
- Extended documentation for many distributions to include detailed
mathematical formulas for the statistics of each distribution (#141). hdr()now produces exact results for symmetric distributions (#123).hdr()uses more quantiles by default (512 -> 4096) for more accurate HDRs (#123).- Transformed distributions now work better for monotonic increasing functions
when the domain of the untransformed distribution is R (#129). - Added
cdf()andquantile()methods for dist_categorical() distributions with
ordered factors (#136). - Added
support()method fordist_gpd()distributions. - Added
cdf()method fordist_multinomial()distributions.
Bug fixes
- Fixed
dist_gamma()not allowing thescaleparameter to be used (#132). - Fixed
dist_negative_binomial()calculation of skewness and kurtosis for p!=0.5. - Fixed floating point issue that caused
dist_mixture()to incorrectly throw an error when weights did sum to 1 (@statasaurus, #134)
Breaking changes
- The
typeargument fordist_multivariate_normal()'squantile()method
has been renamed tokindto avoid name clashes withquantile.default().
CRAN v0.5.0
New features
support()now shows whether the interval of support is open or
closed (@venpopov, #97).- Added default method for
cdf()which estimates the CDF using Monte Carlo
integration (@robjhyndman, #122).
Probability distributions
- Added
dist_gk()for g-and-k distributions. - Added
dist_gh()for g-and-h distributions. - Added
dist_gev()for the Generalised Extreme Value distribution and
dist_gpd()for the Generalised Pareto distribution (@robjhyndman, #124).
Improvements
dist_mixture()now displays the components of the mixture when the output
width is sufficiently wide (@statasaurus, #112).generate()now respectsdimnames()for multivariate distributions.dist_mixture()now supports multivariate distributions (@robjhyndman, #122).
Bug fixes
- Fixed error when using '-' as a unary operator on a distribution different from
dist_normal()(@venpopov, #95) - Density for transformed distributions now correctly gives 0 instead of NaNs for
values outside the support of the distribution (@venpopov, #97) - Fixed
quantile()andcdf()for transformed distributions with
monotonically decreasing transformations (#100). - Fixed multivariate
dist_sample()methods not structuring multivariate
results correctly as matrices. - The
cdf()method fordist_multivariate_normal()now gives the P(X <= q)
rather than P(X > q) for consistency with all othercdf()methods. - The
quantile()method fordist_multivariate_normal()now correctly gives
the boundaries whenp=0orp=1whentype="equicoordinate". - The
quantile()method fordist_multivariate_normal()now only square roots
the diagonal elements whentype="marginal".
CRAN v0.3.2
Small patch to resolve issues with CRAN checks.
Bug fixes
- Fixed object structure resulting from transforming sample distributions (#81).
- Improved reliability of
quantile(<dist_mixture>). - Defined
cdf(<dist_sample>)as Pr(X <= x), not Pr(X < x). - Fixed S3 generic argument name
pforlog_quantile().
CRAN v0.4.0
Breaking changes
- All graphics related functionality has been removed from the package in favour
of the ggdist (https://cran.r-project.org/package=ggdist) package. This
breaking change was done to substantially reduce the package's dependencies,
focusing the functionality on representing vectors of distributions.
CRAN v0.3.1
New features
- Add Math and Ops methods for sample distribution, which applies the functions
directly to the samples. - Added
meanandsdas aliases formuandsigmarespectively in
dist_normal()anddist_student_t()to match arguments of the stats package
interface (#76). - Added
scaleargument for alternative specification fordist_burr()and
dist_gamma().
Improvements
- Generics introduced by this package now allow
na.rmand other parameters to
be passed to distribution methods, even if these parameters aren't used. The
package no longer checks the usage of...with theellipsispackage, if
you'd like to check that all...are used, you can write your own wrapping
functions. - Lists of functions can now be used in
dist_transformed(), allowing the
transformation to differ for each distribution. covariance()and other matrix output functions of multivariate distributions
now name the result using the distribution's dimension names.- Improve handling of mixture distribution quantiles at boundaries {0,1}.
Bug fixes
- Fixed issue with computing multiple values from a univariate distribution with
named dimensions (#79).
CRAN v0.3.0
New features
Probability distributions
- Added
dist_categorical()for the Categorical distribution. - Added
dist_lognormal()for the log-normal distribution. Mathematical
conversion shortcuts have also been added, soexp(dist_normal())produces
dist_lognormal().
Generics
- Added
parameters()generic for obtaining the distribution's parameters. - Added
family(<distribution>)for getting the distribution's family name. - Added
covariance()to return the covariance of a distribution. - Added
support()to identify the distribution's region of support (#8). - Added
log_likelihood()for computing the log-likelihood of observing a
sample from a distribution.
Improvements
variance()now always returns a variance. It will not default to providing
a covariance matrix for matrices. This also applies to multivariate
distributions such asdist_multivariate_normal(). The covariance can now
be obtained using thecovariance()function.dist_wrap()can now search for distribution functions in any environment,
not just packages. If thepackageargument isNULL, it will search the
calling environment for the functions. You can also provide a package name as
before, and additionally an arbitrary environment to this argument.median()methods will now ignore thena.rmoption when it does not apply
to that distribution type (#72).dist_sample()now allows for missing values to be stored. Note that
density(),quantile()andcdf()will remove these missing values by
default. This behaviour can be changed with thena.rmargument.<hilo>objects now support non-numeric and multivariate distributions.
<hilo>vectors that have different bound types cannot be mixed (#74).- Improved performance of default methods of
mean()andvariance(), which
no longer use sampling based means and variances for univariate continuous
distributions (#71, @mjskay) dist_binomial()distributions now return integers forquantile()and
generate()methods.- Added conditional examples for distributions using functions from supported
packages.
Bug fixes
- Fixed fallback
format()function for distributions classes that have not
defined this method (#67).
Breaking changes
variance()on adist_multivariate_normal()will now return the diagonal
instead of the complete variance-covariance matrix.dist_bernoulli()will now return logical values forquantile()and
generate().
CRAN v0.2.1
A small performance and methods release. Some issues with truncated
distributions have been fixed, and some more distribution methods have been
added which improve performance of common tasks.
New features
Probability distributions
- Added
dist_missing()for representing unknown or missing (NA) distributions.
Improvements
- Documentation improvements.
- Added
cdf()method fordist_sample()which uses the emperical cdf. dist_mixture()now preservesdimnames()if all distributions have the same
dimnames().- Added
density()andgenerate()methods for sample distributions. - Added
skewness()method fordist_sample(). - Improved performance for truncated Normal and sample distributions (#49).
- Improved vectorisation of distribution methods.
Bug fixes
- Fixed issue with computing the median of
dist_truncated()distributions. - Fixed format method for
dist_truncated()distributions with no upper or
lower limit. - Fixed issue with naming objects giving an invalid structure. It now
gives an informative error (#23). - Fixed documentation for Negative Binomial distribution (#46).
CRAN v0.2.0
New features
Probability distributions
- Added
dist_wrap()for wrapping distributions not yet added in the package.
Methods
- Added
likelihood()for computing the likelihood of observing a sample from a
distribution. - Added
skewness()for computing the skewness of a distribution. - Added
kurtosis()for computing the kurtosis of a distribution. - The
density(),cdf()andquantile()methods now accept alogargument
which will use/return probabilities as log probabilities.
Improvements
- Improved documentation for most distributions to include equations for the
region of support, summary statistics, density functions and moments. This is
the work of @alexpghayes in thedistributions3package. - Documentation improvements
- Added support for displaying distributions with
View(). hilo()intervals can no longer be added to other intervals, as this is a
common mistake when aggregating forecasts.- Incremented
dfornumDeriv::hessian()when computing mean and variance of
transformed distributions.
Deprecated features
- Graphics functionality provided by
autoplot.distribution()is now deprecated
in favour of using theggdistpackage. Theggdistpackage allows
distributions produced by distributional to be used directly with ggplot2 as
aesthetics.
CRAN v0.1.0
First release.
New features
Object classes
distribution: Distributions are represented in a vectorised format using the
vctrs package. This makes
distributions suitable for inclusion in model prediction output. A
distributionis a container for distribution-specific S3 classes.hilo: Intervals are also stored in a vector. Ahiloconsists of alower
bound,upperbound, and confidencelevel. Each numerical element can be
extracted using$, for example my_hilo$lower to obtain the lower bounds.hdr: Highest density regions are currently stored as lists ofhilovalues.
This is an experimental feature, and is likely to be expanded upon in an
upcoming release.
Generic functions
Values of interest can be computed from the distribution using generic functions.
The first release provides 9 functions for interacting with distributions:
density(): The probability density/mass function (equivalent tod...()).cdf(): The cumulative distribution function (equivalent top...()).generate(): Random generation from the distribution (equivalent tor...()).quantile(): Compute quantiles of the distribution (equivalent toq...()).hilo(): Compute probability intervals of probability distribution(s).hdr(): Compute highest density regions of probability distribution(s).mean(): Obtain the mean(s) of probability distribution(s).median(): Obtain the median(s) of probability distribution(s).variance(): Obtain the variance(s) of probability distribution(s).
Graphics
- Added an
autoplot()method for visualising the probability density function
([density()]) or cumulative distribution function ([cdf()]) of one or more
distribution. - Added
geom_hilo_ribbon()andgeom_hilo_linerange()geometries for ggplot2.
These geoms allow uncertainty to be shown graphically withhilo()intervals.
Probability distributions
- Added 20 continuous probability distributions:
dist_beta(),dist_burr(),dist_cauchy(),dist_chisq(),
dist_exponential(),dist_f(),dist_gamma(),dist_gumbel(),
dist_hypergeometric(),dist_inverse_exponential(),dist_inverse_gamma(),
dist_inverse_gaussian(),dist_logistic(),dist_multivariate_normal(),
dist_normal(),dist_pareto(),dist_student_t(),
dist_studentized_range(),dist_uniform(),dist_weibull() - Added 8 discrete probability distributions:
dist_bernoulli(),dist_binomial(),dist_geometric(),
dist_logarithmic(),dist_multinomial(),dist_negative_binomial(),
dist_poisson(),dist_poisson_inverse_gaussian() - Added 3 miscellaneous probability distributions:
dist_degenerate(),dist_percentile(),dist_sample()
Distribution modifiers
- Added
dist_inflated()which inflates a specific value of a distribution by
a given probability. This can be used to produce zero-inflated distributions. - Added
dist_transformed()for transforming distributions. This can be used
to produce log distributions such as logNormal:
dist_transformed(dist_normal(), transform = exp, inverse = log) - Added
dist_mixture()for producing weighted mixtures of distributions. - Added
dist_truncated()to impose boundaries on a distribution's domain via
truncation.