The LatticeDistribution-class is the mother-class of the
classes Binom, Dirac, Geom, Hyper, Nbinom and
Poisson. It formalizes a distribution on a regular affine
linear lattice.
LatticeDistribution(lattice = NULL, supp = NULL, prob = NULL,
.withArith = FALSE, .withSim = FALSE,
DiscreteDistribution = NULL, check = TRUE,
Symmetry = NoSymmetry())The usual way to generate objects of class LatticeDistribution is to call
the generating function LatticeDistribution() (see details).
Somewhat more flexible, but also proner to inconsistencies is a call to
new("LatticeDistribution"), where you may explicitly specify random
number generator, (counting) density, cumulative distribution and quantile
functions. For conveniance, in this call to new("LatticeDistribution"),
an additional possibility is to only specify the random number generator. The
function RtoDPQ.d then approximates the three remaining slots d,
p and q by random sampling.
an object of class DiscreteDistribution
or AffLinDiscreteDistribution to be
coerced to LatticeDistribution or AffLinLatticeDistribution,
respectively
lattice (of class Lattice) which determines the support
of the discrete distribution.
numeric vector which forms the support of the discrete distribution.
vector of probability weights for the
elements of supp.
normally not set by the user, but if determining the entries
supp, prob distributional arithmetics was
involved, you may set this to TRUE.
normally not set by the user, but if determining the entries
supp, prob simulations were involved, you may
set this to TRUE.
logical: if TRUE, LatticeDistribution() throws an
error if argument lattice and other arguments are
inconsistent or if there is no way to automatically generate
a lattice argument. If check == FALSE,
LatticeDistribution()
returns an object of DiscreteDistribution, ignoring
argument lattice
you may help R in calculations if you tell it whether
the distribution is non-symmetric (default) or symmetric with respect
to a center; in this case use Symmetry=SphericalSymmetry(center).
Peter Ruckdeschel peter.ruckdeschel@uni-oldenburg.de
Typical usages are
LatticeDistribution(DiscreteDistribution)
LatticeDistribution(lattice, DiscreteDistribution)
LatticeDistribution(lattice, supp, prob, .withArith, .withSim, check = FALSE)
LatticeDistribution(lattice, supp, prob)
LatticeDistribution(supp)
For the generating function LatticeDistribution(), the arguments
are processed in the following order:
Arguments .withSim and .withArith are used in any case.
If there is an argument DiscreteDistribution (of the respective class),
all its slots (except for .withSim and .withArith)
will be used for filling the slots of the object of class
LatticeDistribution()/AffLinLatticeDistribution().
If in addition, there is an argument lattice of class Lattice,
it will be checked for consistency
with argument DiscreteDistribution and if oK will be used for slot
lattice of the object of class
LatticeDistribution()/AffLinLatticeDistribution(). In case
there is no lattice argument, slot lattice will be constructed
from slot support from argument DiscreteDistribution.
If there is no argument DiscreteDistribution, but there are arguments
supp and lattice (the latter of class Lattice) then
these are checked for consistency and if oK, generating function
DiscreteDistribution() is called with arguments supp,
prob, .withArith, and .withSim to produce an object
of class DiscreteDistribution the slots of which will be used for the
filling the slots of the object of class
LatticeDistribution()/AffLinLatticeDistribution().
If in this case, argument prob is not given explicitely, all elements
in supp are equally weighted.
If there is no argument DiscreteDistribution, but there is an argument
lattice of class Lattice (but no argument slot) then
if Length(lattice) is finite, a corresponding support vector supp
is generated from argument lattice and generating function
DiscreteDistribution() is called with arguments supp,
prob, .withArith, and .withSim to produce an object
of class DiscreteDistribution the slots of which will be used for the
filling the slots of the object of class LatticeDistribution().
If in the same situation Length(lattice) is not finite, a finite length
for the support vector is extracted from argument prob and after
generating supp one procedes as in the finite Length(lattice)
case.
If there is no argument DiscreteDistribution and no argument
lattice of class Lattice but an argument supp then
it will be checked if supp makes for a lattice, and if so,
DiscreteDistribution() is called with arguments supp,
prob, .withArith, and .withSim to produce an object
of class DiscreteDistribution the slots of which will be used for the
filling the slots of the object of class LatticeDistribution(). The
corresponding lattice-slot will be filled with information from
argument supp.
The price for this flexibility of arguments, LatticeDistribution() may
be called with, is that you should call LatticeDistribution() with
named arguments only.
Note that internally we suppress lattice points from the support where
the probability is 0.
Parameter-class
Lattice-class
LatticeDistribution-class
Reals-class
RtoDPQ.d
LatticeDistribution(DiscreteDistribution = DiscreteDistribution(supp =
c(4,3,2), prob=c(0.3,0.1,0.6)))
LatticeDistribution(supp = c(4,3,2))
Run the code above in your browser using DataLab