Skip to contents

distributions3 (development version)

distributions3 0.2.2

CRAN release: 2024-09-16

  • New PoissonBinomial() distribution, a generalization of the binomial distribution. The Poisson binomial is characterized by n independent Bernoulli trials but with potentially different success probabilities. The d/p/q/r functions employ the efficient implementation from the PoissonBinomial package, if available. In case it is not available, fallback computation based on a normal approximation are provided - with a warning, by default (#100).
  • The prodist() methods for various count regression objects now distinguish between computations for the classic pscl package and the newer countreg package (currently on R-Forge, soon to be released to CRAN).
  • The simulate() method for distribution objects is now better aligned with simulate.lm() in base R: It now always returns a data.frame with seed attribute.
  • New simulate() default method which leverages prodist() and subsequently uses the simulate() method for distribution objects.
  • New prodist() methods for distribution objects which just returns the unmodified distribution object itself.
  • The format() method - and hence the print() method - for distribution objects has been simplified. For example, now Normal(mu = 0, sigma = 1) is used instead of Normal distribution (mu = 0, sigma = 1) in order to yield a more compact output, especially for vectors of distributions (#101).
  • Added an as.character() method which essentially calls format(..., digits = 15, drop0trailing = TRUE). This mimics the behavior and precision of base R for real vectors. Note that this enables using match() for distribution objects.
  • Added a duplicated() method which relies on the corresponding method for the data.frame of parameters in a distribution.
  • Enabled the inclusion of distribution vectors as columns in tibble data objects, see ?vec_proxy.distribution for further details and a practical example.
  • Fixed errors in notation of cumulative distribution function in the documentation of HurdlePoisson() and HurdleNegativeBinomial() (by @dkwhu in #94 and #96).
  • The prodist() method for glm objects can now also handle family specifications from MASS::negative.binomial(theta) with fixed theta (reported by Christian Kleiber).
  • Replace ellipsis dependency by rlang as the former will be deprecated/archived (by @olivroy in #105).
  • Further small improvements in methods and manual pages.

distributions3 0.2.1

CRAN release: 2022-09-07

  • New generics is_discrete() and is_continous() with methods for all distribution objects in the package. The is_discrete() methods return TRUE for every distribution that is discrete on the entire support and FALSE otherwise. Analogously, is_continuous() returns TRUE for every distribution that is continuous on the entire support and FALSE otherwise. Thus, for mixed discrete-continuous distributions both methods should yield FALSE (#90).
  • New logical argument elementwise = NULL in apply_dpqr() and hence inherited in cdf(), pdf(), log_pdf(), and quantile(). It provides type-safety when applying one of the functions to a vector of distributions d to a numeric argument x where both d and x are of length n > 1. By setting elementwise = TRUE the function is applied element-by-element, also yielding a vector of length n. By setting elementwise = FALSE the function is applied for all combinations yielding an n-by-n matrix. The default elementwise = NULL corresponds to FALSE if d and x are of different lengths and TRUE if the are of the same length n > 1 (#87).
  • Extended support for various count data distributions, now enompassing both the Poisson and negative binomial distributions along with various adjustments for zero counts (hurdle, inflation, and truncation, respectively). More details are provided in the following items (#86).
  • New d/p/q/r functions for hnbinom, zinbinom, ztnbinom, and ztpois similar to the corresponding nbinom and pois functions from base R.
  • New HurdleNegativeBinomial(), ZINegativeBinomial(), ZTNegativeBinomial(), and ZTPoisson() distribution constructors along with the corresponding S3 methods for the “usual” generics (except skewness() and kurtosis()).
  • New prodist() methods for extracting the fitted/predicted probability distributions from models estimated by hurdle(), zeroinfl(), and zerotrunc() objects from either the pscl package or the countreg package.
  • Added argument prodist(..., sigma = "ML") to the lm method for extracting the fitted/predicted probability distribution from a linear regression model. In the previous version the prodist() method always used the least-squares estimate of the error variance (= residual sum of squares divided by the residual degrees of freedom, n - k), as also reported by the summary() method. Now the default is to use the maximum-likelihood estimate instead (divided by the number of observations, n) which is consistent with the logLik() method. The previous behavior can be obtained by specifying sigma = "OLS" (#91).
  • Similarly to the lm method the glm method prodist(..., dispersion = NULL) now, by default, uses the dispersion estimate that matches the logLik() output. This is based on the deviance divided by the number of observations, n. Alternatively, dispersion = "Chisquared" uses the estimate employed in the summary() method, based on the Chi-squared statistic divided by the residual degrees of freedom, n - k.
  • Small improvements in methods for various distribution objects: Added support() method for GEV-based distributions (GEV(), GP(), Gumbel(), Frechet()). Added a random() method for the Tukey() distribution (using the inversion method).

distributions3 0.2.0

CRAN release: 2022-06-21

  • Vectorized univariate distribution objects by Moritz Lang and Achim Zeileis (#71 and #82). This allows representation of fitted probability distributions from regression models. New helper functions are provided to help setting up such distribution objects in a unified way. In particular, apply_dpqr() helps to apply the standard d/p/q/r functions available in base R and many packages. The accompanying manual page provides some worked examples and further guidance.
  • New vignette (by Achim Zeileis) on using distributions3 to go from basic probability theory to probabilistic regression models. Illustrated with Poisson GLMs for the number of goals per team in the 2018 FIFA World Cup explained by the teams’ ability differences. (#74)
  • New generic function prodist() to extract fitted (in-sample) or predicted (out-of-sample) probability distributions from model objects like lm, glm, or arima. (#83)
  • Extended support for count data distributions (by Achim Zeileis): Alternative parameterization for negative binomial distribution (commonly used in regression models), zero-inflated Poisson, and zero-hurdle Poisson. (#80 and #81)

distributions3 0.1.2

CRAN release: 2022-01-03

  • Added a plotting generic for univariate distributions (@paulnorthrop, PR #56)
  • Added support for the Generalised Extreme Value (GEV), Frechet, Gumbel, reversed Weibull and Generalised Pareto (GP) distributions (@paulnorthrop, PR #52)
  • Added support for the Erlang distribution (@ellessenne, PR #54)
  • Various minor bug fixes

distributions3 0.1.1

CRAN release: 2019-09-03

  • Rename to distributions3 for CRAN