# LatticeDistribution-class: Class "LatticeDistribution"

Description Objects from the Class Slots Extends Methods Internal subclass "AffLinLatticeDistribution" Note Author(s) See Also Examples

### Description

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.

### Objects from the Class

The usual way to generate objects of class `LatticeDistribution` is to call the generating function `LatticeDistribution`.
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.

### Slots

`img`

Object of class `"Reals"`: the space of the image of this distribution which has dimension 1 and the name "Real Space"

`param`

Object of class `"Parameter"`: the parameter of this distribution, having only the slot name "Parameter of a discrete distribution"

`r`

Object of class `"function"`: generates random numbers

`d`

Object of class `"function"`: (counting) density/probability function

`p`

Object of class `"function"`: cumulative distribution function

`q`

Object of class `"function"`: quantile function

`support`

Object of class `"numeric"`: a (sorted) vector containing the support of the discrete density function

`lattice`

Object of class `"Lattice"`: the lattice generating the support.

`.withArith`

logical: used internally to issue warnings as to interpretation of arithmetics

`.withSim`

logical: used internally to issue warnings as to accuracy

`.logExact`

logical: used internally to flag the case where there are explicit formulae for the log version of density, cdf, and quantile function

`.lowerExact`

logical: used internally to flag the case where there are explicit formulae for the lower tail version of cdf and quantile function

`Symmetry`

object of class `"DistributionSymmetry"`; used internally to avoid unnecessary calculations.

### Extends

Class `"UnivariateDistribution"`, directly.
Class `"Distribution"`, by class `"UnivariateDistribution"`.

### Methods

`initialize`

`signature(.Object = "LatticeDistribution")`: initialize method

-

`signature(e1 = "LatticeDistribution")`: application of ‘-’ to this lattice distribution

*

`signature(e1 = "LatticeDistribution", e2 = "numeric")`: multiplication of this lattice distribution by an object of class ‘numeric’

/

`signature(e1 = "LatticeDistribution", e2 = "numeric")`: division of this lattice distribution by an object of class ‘numeric’

+

`signature(e1 = "LatticeDistribution", e2 = "numeric")`: addition of this lattice distribution to an object of class ‘numeric’

-

`signature(e1 = "LatticeDistribution", e2 = "numeric")`: subtraction of an object of class ‘numeric’ from this lattice distribution

*

`signature(e1 = "numeric", e2 = "LatticeDistribution")`: multiplication of this lattice distribution by an object of class ‘numeric’

+

`signature(e1 = "numeric", e2 = "LatticeDistribution")`: addition of this lattice distribution to an object of class ‘numeric’

-

`signature(e1 = "numeric", e2 = "LatticeDistribution")`: subtraction of this lattice distribution from an object of class ‘numeric’

+

```signature(e1 = "LatticeDistribution", e2 = "LatticeDistribution")```: Convolution of two lattice distributions. Slots p, d and q are approximated by grids.

-

```signature(e1 = "LatticeDistribution", e2 = "LatticeDistribution")```: Convolution of two lattice distributions. The slots p, d and q are approximated by grids.

`sqrt`

`signature(x = "LatticeDistribution")`: exact image distribution of `sqrt(x)`.

`lattice`

accessor method to the corresponding slot.

`coerce`

```signature(from = "LatticeDistribution", to = "DiscreteDistribution")```: coerces an object from `"LatticeDistribution"` to `"DiscreteDistribution"` thereby cancelling out support points with probability 0.

### Internal subclass "AffLinLatticeDistribution"

To enhance accuracy of several functionals on distributions, mainly from package distrEx, there is an internally used (but exported) subclass `"AffLinLatticeDistribution"` which has extra slots `a`, `b` (both of class `"numeric"`), and `X0` (of class `"LatticeDistribution"`), to capture the fact that the object has the same distribution as `a * X0 + b`. This is the class of the return value of methods

-

`signature(e1 = "LatticeDistribution")`

*

`signature(e1 = "LatticeDistribution", e2 = "numeric")`

/

`signature(e1 = "LatticeDistribution", e2 = "numeric")`

+

`signature(e1 = "LatticeDistribution", e2 = "numeric")`

-

`signature(e1 = "LatticeDistribution", e2 = "numeric")`

*

`signature(e1 = "numeric", e2 = "LatticeDistribution")`

+

`signature(e1 = "numeric", e2 = "LatticeDistribution")`

-

`signature(e1 = "numeric", e2 = "LatticeDistribution")`

-

`signature(e1 = "AffLinLatticeDistribution")`

*

`signature(e1 = "AffLinLatticeDistribution", e2 = "numeric")`

/

`signature(e1 = "AffLinLatticeDistribution", e2 = "numeric")`

+

`signature(e1 = "AffLinLatticeDistribution", e2 = "numeric")`

-

`signature(e1 = "AffLinLatticeDistribution", e2 = "numeric")`

*

`signature(e1 = "numeric", e2 = "AffLinLatticeDistribution")`

+

`signature(e1 = "numeric", e2 = "AffLinLatticeDistribution")`

-

`signature(e1 = "numeric", e2 = "AffLinLatticeDistribution")`

There is also an explicit `coerce`-method from class `"AffLinLatticeDistribution"` to class `"AffLinDiscreteDistribution"` which cancels out support points with probability 0.

### Note

Working with a computer, we use a finite interval as support which carries at least mass `1-getdistrOption("TruncQuantile")`.

### Author(s)

Peter Ruckdeschel peter.ruckdeschel@uni-oldenburg.de

`LatticeDistribution` `Parameter-class` `Lattice-class` `UnivariateDistribution-class` `DiscreteDistribution-class` `Binom-class` `Dirac-class` `Geom-class` `Hyper-class` `Nbinom-class` `Pois-class` `AbscontDistribution-class` `Reals-class` `RtoDPQ.d`

### Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11``` ```B <- Binom(prob = 0.1,size = 10) # B is a Binomial distribution w/ prob=0.1 and size=10. P <- Pois(lambda = 1) # P is a Poisson distribution with lambda = 1. D1 <- B+1 # a new Lattice distributions with exact slots d, p, q D2 <- D1*3 # a new Lattice distributions with exact slots d, p, q D3 <- B+P # a new Lattice distributions with approximated slots d, p, q D4 <- D1+P # a new Lattice distributions with approximated slots d, p, q support(D4) # the (approximated) support of this distribution is 1, 2, ..., 21 r(D4)(1) # one random number generated from this distribution, e.g. 4 d(D4)(1) # The (approximated) density for x=1 is 0.1282716. p(D4)(1) # The (approximated) probability that x<=1 is 0.1282716. q(D4)(.5) # The (approximated) 50 percent quantile is 3. ```

Search within the distr package
Search all R packages, documentation and source code

Questions? Problems? Suggestions? or email at ian@mutexlabs.com.

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.