###################################################################### # News: to package distr ###################################################################### ############## v 2.0.3 ############## * under the hood: + enhanced plotting (correct dispatch; opening of new device is controlled by option("newDevice") ) + after JMC's changes: gone through setIs relations to ensure "correct" inheritance * new plot function for 'UnivarLebDecDistribution' : now plots 3 lines +first line common cdf and quantile function +second line abscont part +third line discrete part * new vignette "How to generate new distributions in packages distr, distrEx" * moved license to LGPL-3 * enhancements for arithmetics: + fixed bug with AffLinAbscontDistribution for a*X+b, distribution X >=0 + slot r is now /much/ faster and slimmer for results of *,/,^ (hint: no split in pos/neg part necessary for this!) + slot d for results of *,/, exp() now is correct at 0 by extrapolation (and deletion with .del0dmixfun of half of the part to avoid double counting in *,/) + affine linear trafos return slot X0 of AffLin-Construction if resulting a=1 and b=0 + method sqrt() for distributions * correction of small buglet in validity to Norm-class ############## v 2.0 ############## * made calls to 'uniroot()', 'integrate()', 'optim(ize)()' compliant to https://stat.ethz.ch/pipermail/r-devel/2007-May/045791.html * new generating function 'AbscontDistribution' * new class 'UnivarMixingDistribution' for mixing distributions with methods / functions: +'UnivarMixingDistribution' (generating function) +flat.mix to make out of it a distribution of class 'UnivarLebDecDistribution' * new class 'UnivarLebDecDistribution' for a distribution with a discrete and a.c. part; corresponding methods / functions: +'UnivarLebDecDistribution' (generating function) +'acPart', 'discretePart' return corresponding parts +'acWeight', 'discreteWeight' return corresponding weights +special 'plot' functions (only for cdf and quantile function) [plotting jumps in both cdf and quantile function] * new class 'AffLinUnivarLebDecDistribution' for affine linear transformations of 'UnivarLebDecDistribution' (in particular for use with E()) * new class union 'AcDcLcDistribution' as common mother class for 'UnivarLebDecDistribution', 'AbscontDistribution', 'DiscreteDistribution'; corresponding methods / functions: * enhanced arithmetic: (for 'AcDcLcDistribution') * convolution for 'UnivarLebDecDistribution' * affine linear trafos for 'UnivarLebDecDistribution' * 'numeric' / 'AcDcLcDistribution' * 'AcDcLcDistribution'^'numeric' * 'numeric'^'AcDcLcDistribution' * binary operations for independent distributions: o 'AcDcLcDistribution' * 'AcDcLcDistribution' o 'AcDcLcDistribution' / 'AcDcLcDistribution' o 'AcDcLcDistribution' ^ 'AcDcLcDistribution' * (better) exact transformations for exp() and log() * Minimum Maximum Truncation Huberization * convpow for 'UnivarLebDecDistribution' * 'decomposePM' decomposes distributions in positive / negative part (and in Dirac(0) if discrete) * 'simplifyD' tries to cast to simpler classes (e.g. if a weight is 0) ############## v 1.9 ############## * made calls to 'uniroot()', 'integrate()', 'optim(ize)()' compliant to https://stat.ethz.ch/pipermail/r-devel/2007-May/045791.html * new methods 'shape()' and 'scale()' for class Chisq with ncp=0 * methods getLow, getUp for upper and lower endpoint of support of DiscreteDistribution or AbscontDistribution (truncated to lower/upper TruncQuantile if infinite) * added S4-method 'convpow' for convolutional powers from the examples of package 'distr' with methods for + 'LatticeDistribution' and 'AbscontDistribution' + and particular methods for o Norm, Cauchy, Pois, Nbinom, Binom, Dirac, and ExpOrGammaOrChisq (if summand 'is' of class Gammad) * moved some parts from package 'distrEx' to package 'distr' + generating function 'DiscreteDistribution' + univariate methods of 'liesInSupport()' + classes 'DistrList' and 'UnivariateDistrList' + generating functions EuclideanSpace() ,Reals(), Naturals() * 'LatticeDistribution' + new class 'Lattice' to formalize an affine linearly generated grid of (support) points pivot + (0:(Length-1)) * width + usual accessor/replacement functions to handle slots + new class 'LatticeDistribution' as intermediate class between 'DiscreteDistribution' and all specific discrete distributions from 'stats' package with a particular convolution method using FFT (also for 'convpow') + usual accessor function 'lattice' for slot 'lattice' * cleaning up the sources + adapted the naming of the .R files to the use of the (later written) extension packages (and according to http://tolstoy.newcastle.edu.au/R/help/06/03/22558.html) + checked all source file to adhere to the 80char's-per-line rule * revised generating functions/initialize methods according to http://tolstoy.newcastle.edu.au/R/e2/devel/07/01/1976.html + in particular all Parameter(-sub-)classes gain a valid prototype * new exact arithmetic formulae: + 'Cauchy' + 'Cauchy' : gives 'Cauchy' + 'Weibull' * 'numeric' : gives 'Weibull' resp. 'Dirac' resp 'AbscontDistribution' : acc. to 'numeric' >, =, < 0 + 'Logis' * 'numeric' : gives 'Logis' resp. 'Dirac' resp 'AbscontDistribution' : acc. to 'numeric' >, =, < 0 + 'Logis' + 'numeric' : gives 'Logis' + 'Lnorm' * 'numeric' : gives 'Lnorm' resp. 'Dirac' resp 'AbscontDistribution' : acc. to 'numeric' >, =, < 0 + 'numeric' / 'Dirac' : gives 'Dirac' resp. error acc. to 'location(Dirac)' ==, != 0 + 'DiscreteDistribution' * 1 returns the original distribution + 'AbscontDistribution' * 1 returns the original distribution + 'DiscreteDistribution' + 0 returns the original distribution + 'AbscontDistribution' + 0 returns the original distribution * enhanced Information: + command 'distrARITH()' gains an argument 'library' + new file MASKING and corresponding command 'distrMASK()' to describe the intended maskings * mentioned in package-help: startup messages may now also be suppressed by suppressPackageStartupMessages() (from package 'base') * formals for slots p,q,d as in package stats to enhance accuracy + p(X)(q, lower.tail = TRUE, log.p = FALSE) + q(X)(p, lower.tail = TRUE, log.p = FALSE) + d(X)(x, log = FALSE) used wherever possible; but backwards compatibility: always checked whether lowert.tail / log / log.p are formals * cleaning up of environment of r,d,p,q-slot - removed no longer needed objects * enhanced plot methods + for both AbscontDistributions & DiscreteDistributions : o optional width and height argument for the display (default 16in : 9in) -opens a new window for each plot -does not work with /Sweave/; workaround: argument withSweave=TRUE in .Rnw-file: use width and height argument like in <>= .... @ o optional main, inner titles and subtitles with main / sub / inner - preset strings substituted in both expression and character vectors (x : argument with which plot() was called) ~ %A deparsed argument x ~ %C class of argument x ~ %P comma-separated list of parameter values of slot param of argument x ~ %N comma-separated = - list of parameter values of slot param of argument x ~ %D time/date at which plot is/was generated ~ %Q comma-separated list of parameter values of slot param of argument x in parenthesis or "" if empty - title sizes with cex.main, cex.inner, cex.sub - bottom / top margin with bmar, tmar - setting of colors with col / col.main / col.inner / col.sub o can cope with log-arguments o setting of plot symbols with pch / pch.a / pch.u (see ?"plot-methods") o different symbols for unattained / attained one-sided limits o do.points argument as in plot.stepfun() o verticals argument as in plot.stepfun() o setting of colors with col / col.points / col.vert / col.hor o setting of symbol size with with cex / cex.points (see ?"plot-methods") + for AbscontDistributions o (panel "q"): takes care of finite left/right endpoints of support o (panel "q"): optionally takes care of constancy regions (with do.points/verticals) o ngrid argument to set the number of grid points + for DiscreteDistributions : o using stepfun() * left-continuous c.d.f. method (p.l) and right-continuous quantile function (q.r) for DiscreteDistributions * new slot 'gaps' (a n x 2 matrix or NULL) for AbscontDistribution to cope with intervals where d-slot is 0. + new class OptionalMatrix (matrix or NULL) + accessor/replacement function gaps() + setgaps() to automatically fill gaps-slot * Version-management for changed class definitions to AbscontDistribution and to (changed by inheriting from LatticeDistribution!) subclasses of LatticeDistribution (Geom, Binom, Nbinom, Dirac, Pois, Hyper): + moved generics to isOldVersion(), conv2NewVersion() from distrSim to distr + moved (slightly generalized version of) isOldVersion() (now for signature "ANY") from distrSim to distr + new methods for conv2NewVersion for signature o "ANY" (fills missing slots with corresponding entries from prototype) o "LatticeDistribution": generates a new instance (with slot lattice(!)) by new(class(object), ) * new (internally used) classes AffLinAbscontDistribution, AffLinLatticeDistribution and AffLinLatticeDistribution to capture the results of transformations Y <- a * X0 + b for a, b numeric and X0 Abscont/Discrete/LatticeDistribution and a class union AffLinDistribution of AffLinAbscontDistribution and AffLinLatticeDistribution to use this for more exact evaluations of functionals in distrEx * analytically exact slots d,p (and higher accuracy for q) for distribution objects generated by functions abs, exp, log for classes AbscontDistribution and DiscreteDistribution DEPRECATED: * class GeomParameter --- no longer needed as this the parameter of a NBinom with size 1 ############## v 1.8 ############## * Class DExp() introduced (with documentation) * show() for UnivariateDistribution now is the same as print() * dim() method for UnivariateDistribution * distr (together with distrEx, distrSim, distrTEst) now includes a vignette --- try vignette("distr") ############## v 1.7 ############## * standardMethods() is again included (with documentation) * distroptions() / getdistrOption() now behave exactly like options() / getOption() options --- also compare mail "Re: [Rd] How to implement package-specific options?" by Brian Ripley on r-devel, Fri 09 Dec 2005 - 11:52:46, see http://tolstoy.newcastle.edu.au/R/devel/05/12/3408.html * suggested by M. Maechler: on attaching the package there is a (sort of) warning as to the interpretation of +arithmetics for distributions as well as to the +accuracy of slots p,d,q filled by means of simulations; these warnings are issued at two places: (1) on attaching the package (2) at every show/print of a distribution o (2) can be cancelled by switching off a corresponding global option in distroptions() -- see ?distroptions . * all specific distributions (those realized as [r|d|p|q] like rnorm in package stats) now have valid prototypes * fixed arguments xlim and ylim for plot(signature("AbscontDistribution" or "DiscreteDistribution")) thus: plot(Cauchy(),xlim=c(-4,4)) gives reasonable result (and plot(Cauchy()) does not) * Internationalization: use of gettext, gettextf for output * explicitly implemented is() relations: R "knows" that o an Exponential(lambda) distribution also is a Weibull(shape = 1, scale = 1/lambda) distribution, as well as a Gamma(shape = 1, scale = 1/lambda) distribution o a Uniform(0,1) distribution also is a Beta(1,1) distribution o a Cauchy(0,1) distribution also is a T(df=1, ncp=0) distribution o a Chisq(df=n, ncp=0) distribution also is a Gamma(shape=n/2, scale=2) distribution * noncentrality parameter included for Beta, T, F distribution * exact +,* for Cauchy and Dirac, for latter also -,/ * "simplifyr": changed default values (using option RtoDPQ.e) * masking of function sd from stats to have an additional ... argument * masking of function df from stats to have an additional ... argument * Internationalization: use of gettext, gettextf in output * updated citation file * noncentrality parameter included for Beta, Td, F (for new d,p,q,r, but compatible with 2.2.x) also in the documentation * Geom is now subclass of Nbinom * virtual superclass ExpOrGammaOrChisq for Chisq,Exp,Gammad * NEWS file * commented ARITHMETICS file * revised help for operators * new package documentation distr-package.Rd ############## v 1.6 ############## Our package is reorganized: * distr from now on only comprises distribution classes and methods * simulation classes and methods have been moved to the new package distrSim * evalation classes and methods have been moved to the new package distrTEst * a new class distrEx has been added by Matthias Kohl, providing additional features like distances between distributions, expectation operators etc * a new class RandVar has been added by Matthias Kohl, providing conceptual treatment of random variables as measurable mappings ############## v 1.5 ############## * package is now using lazy loading * minor changes in the help pages * minor enhancements in plot for distributions (Gamma, discrete distributions) * package now includes a demo - folder; try demo("distr") * class Gamma has been renamed Gammad to avoid name collisions * we have a CITATION file now; consider citation("distr") * enhanced demos: + convolution of uniform variables now includes exact expressions + min/ max of two variables now available for discrete distributions * rd-Files have now a keyword entry for distribution and thus may be found by the search engine * exact formula for "Unif" o "numeric" where o \in { +,-,*,/ } ############## v 1.4 ############## * to avoid name collisions with short forms for TRUE and FALSE: classes T and F (T- and F-distributions) renamed to Td and Fd * package is now loaded as a binary => considerable speed gain * using subsititute the bodies of the r,d,p,q-function-slots distributions show the parameter values with which they were generated * convolutions and applications of the math group may now be traced in r-slot of a distribution object, compare r(sin(Norm()) + cos(Unif() * 3 + 2)) * parameters of a distribution (mean, sd, etc) are now tested on length 1 + we see the objects as implementations of univaritate distributions, so vectors make no sense here; rather one could gather several objects with possibly different parameters to a vector of distributions. Of course, the original functions rnorm etc remain unchanged and still allow for vector-valued parameters. * Classes "Parameter", "Distribution" , "UnivariateDistribution" are no longer VIRTUAL * "AbscontParameter" and "DiscreteParameter" are replaced by "Parameter" * type of slots d, p, q and param changed to "OptionalFunction" and "OptionalParameter", respectively ############## v 1.3 ############## * changes in the Help-File to pass Rcmd check ############## v 1.1 ############## * implementation of further exact convolution formulae for distributions Nbinom, Gamma, Exp, Chisq * exact formulae for scale transformations for the distributions Gamma, Exp * slot "seed" in simulation classes is now controlled and set via the setRNG package by Paul Gilbert