Distribution
is introduced with slots for a
parameter and ---most important--- for the four constitutive methods r
,
d
, p
, and q
for simulation respectively for evaluation of
density / c.d.f. and quantile function of the corresponding distribution.
Most distributions of package AbscontDistribution
or
DiscreteDistribution
, which themselves are again subclasses of
Distribution
.
Up to arguments referring to a parameter of the distribution (like
mean
for the normal distribution), these function slots have the
same arguments as those of package X
we may call these functions as
r(X)(n)
d(X)(x, log = FALSE)
p(X)(q, lower.tail = TRUE, log.p = FALSE)
q(X)(p, lower.tail = TRUE, log.p = FALSE)
rnorm
.
Note that, as usual, slots d
, p
, and q
are vectorized
in their first argument, but are not on the subsequent ones.
Arithmetics and unary mathematical transformations for distributions are
available: For Distribution
objects X
and Y
expressions
like 3*X+sin(exp(-Y/4+3))
have their natural interpretation as
corresponding image distributions.param
the class of which
is is specialized for the particualar distributions. The parameter
classes for the particular distributions have slots with names
according to the corresponding [rdpq]AbscontDistribution
and descendants have
a slot gaps
for gaps in the support.
DiscreteDistribution
and descendants have
an additional slot support
, which is again specialized
to be a lattice for class LatticeDistribution
.
For saved objects from earlier versions, we provide the methods
isOldVersion
, and conv2NewVersion
to check whether the object was generated by an older version of
this package and to convert such an object to the new format,
respectively. This applies to objects of subclasses of
AbscontDistribution
lacking a gap
-slot as well as to
to objects of subclasses of LatticeDistribution
lacking a
lattice
-slot.
To enhance accuracy, from version 1.9 on, we also provide
subclasses AffLinAbscontDistribution
, AffLinDiscreteDistribution
,
and AffLinLatticeDistribution
, as well as the class union
AffLinDistribution
, so that in particular functionals like E
from package a
, b
, and X0
to
reflect the fact, that a distribution object of theses classes has the
same distribution as a*X0+b
.
For all particular distributions, as well as for classes
AbscontDistribution
, DiscreteDistribution
,
LatticeDistribution
, UnivarDistrList
and DistrList
generating functions are provided, e.g. X <- Norm(mean = 3, sd = 2)
.
The same goes for the space classes.
All slots should be inspected / modified by means of corresponding
accessor- /replacement functions; e.g. mean(X) <- 3
Again to enhance accuracy, from version 2.0 on, we also provide
subclasses UnivarMixingDistribution
to support mixing distributions,
UnivarLebDecDistribution
, to support Lebesgue decomposed distributions
(with a discrete and an a.c. part) as well as AffLinUnivarLebDecDistribution
,
for corresponding affine linear transformations.
Class UnivarLebDecDistribution
is closed under arithmetical operations
+ /
, *
, ^
for pairs of independent variables
+ +
, -
for pairs of independent variables
+ affine linear transformations
+ truncation, huberization, min/max
which are all now available analytically.
(see Parameter classes).
[*]: there is a generating function with the same name
##########################
Distribution classes
##########################
slots: [Math
of unary (see Math) as well as
convolution are made available for distributions, see operators-methods;
in particular for convolution powers, we have method convpow.
Besides, there are plot
and print
-methods for distributions.
For the space classes, we have liesIn
, for the
DicreteDistribution
class, we have liesInSupport
, as well
as a generating function.
The "history" of distributions
obtained by chaining operations may be shortened using simplifyr
.options("StartupBanner"="off")
somewhere before loading this
package by library
or require
in your R-code / R-session.
If option "StartupBanner"
is not defined (default) or setting
options("StartupBanner"=NULL)
or
options("StartupBanner"="complete")
the complete start-up banner is
displayed.
For any other value of option "StartupBanner"
(i.e., not in c(NULL,"off","complete")
)
only the version information is displayed.
The same can be achieved by wrapping the library
or require
call into either suppressStartupMessages()
or
onlytypeStartupMessages(.,atypes="version")
.
As for general packageStartupMessage
's, you may also suppress all
the start-up banner by wrapping the library
or require
call into suppressPackageStartupMessages()
from
demo(package="distr")
require("distrDoc");vignette("distr")
a homepage to this package is available under
X <- Unif(2,3)
Y <- Pois(lambda = 3)
Z <- X+Y # generates Law of corresponding independent variables
p(Z)(0.2)
r(Z)(1000)
plot(Z+sin(Norm()))
Run the code above in your browser using DataLab