R: Class "AbscontDistribution"

AbscontDistribution-class {distr} | R Documentation

## Class "AbscontDistribution"

### Description

The `AbscontDistribution`-class is the mother-class of the classes `Beta`, `Cauchy`, `Chisq`, `Exp`, `F`, `Gammad`, `Lnorm`, `Logis`, `Norm`, `T`, `Unif` and `Weibull`. Further absolutely continuous distributions can be defined either by declaration of own random number generator, density, cumulative distribution and quantile functions, or as result of a convolution of two absolutely continuous distributions or by application of a mathematical operator to an absolutely continuous distribution.

### Objects from the Class

Objects can be created by calls of the form `new("AbscontDistribution", r, d, p, q)`. More comfortably, you may use the generating function `AbscontDistribution`. The result of these calls is an absolutely continuous distribution.

### 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 an absolutely continuous distribution"

`r`

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

`d`

  Object of class `"function"`: density function

`p`

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

`q`

  Object of class `"function"`: quantile function

`gaps`

  [from version 1.9 on] Object of class `"OptionalMatrix"`, i.e.; an object which may either be `NULL` ora `matrix`. This slot, if non-`NULL`, contains left and right endpoints of intervals where the density of the object is 0. This slot may be inspected by the accessor `gaps()` and modified by a corresponding replacement method. It may also be filled automatically by `setgaps()`. For saved objects from earlier versions, we provide functions `isOldVersion` and `conv2NewVersion`.

`.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 = "AbscontDistribution")`: initialize method

Math

  `signature(x = "AbscontDistribution")`: application of a mathematical function, e.g. `sin` or `exp` (does not work with `log`, `sign`!), to this absolutely continouos distribution

  - `abs`: `signature(x = "AbscontDistribution")`: exact image distribution of `abs(x)`.

  - `exp`: `signature(x = "AbscontDistribution")`: exact image distribution of `exp(x)`.

  - `sign`: `signature(x = "AbscontDistribution")`: exact image distribution of `sign(x)`.

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

  - `log`: `signature(x = "AbscontDistribution")`: (with optional further argument `base`, defaulting to `exp(1)`) exact image distribution of `log(x)`.

  - `log10`: `signature(x = "AbscontDistribution")`: exact image distribution of `log10(x)`.

  - `gamma`: `signature(x = "AbscontDistribution")`: exact image distribution of `gamma(x)`.

  - `lgamma`: `signature(x = "AbscontDistribution")`: exact image distribution of `lgamma(x)`.

  - `digamma`: `signature(x = "AbscontDistribution")`: exact image distribution of `digamma(x)`.

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

-

  `signature(e1 = "AbscontDistribution")`: application of ‘-’ to this absolutely continuous distribution.

*

  `signature(e1 = "AbscontDistribution", e2 = "numeric")`: multiplication of this absolutely continuous distribution by an object of class `"numeric"`

/

  `signature(e1 = "AbscontDistribution", e2 = "numeric")`: division of this absolutely continuous distribution by an object of class `"numeric"`

+

  `signature(e1 = "AbscontDistribution", e2 = "numeric")`: addition of this absolutely continuous distribution to an object of class `"numeric"`.

-

  `signature(e1 = "AbscontDistribution", e2 = "numeric")`: subtraction of an object of class `"numeric"` from this absolutely continuous distribution.

*

  `signature(e1 = "numeric", e2 = "AbscontDistribution")`: multiplication of this absolutely continuous distribution by an object of class `"numeric"`.

+

  `signature(e1 = "numeric", e2 = "AbscontDistribution")`: addition of this absolutely continuous distribution to an object of class `"numeric"`.

-

  `signature(e1 = "numeric", e2 = "AbscontDistribution")`: subtraction of this absolutely continuous distribution from an object of class `"numeric"`.

+

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

-

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

plot

  `signature(object = "AbscontDistribution")`: plots density, cumulative distribution and quantile function.

### Internal subclass "AffLinAbscontDistribution"

To enhance accuracy of several functionals on distributions, mainly from package distrEx, from version 1.9 of this package on, there is an internally used (but exported) subclass `"AffLinAbscontDistribution"` which has extra slots `a`, `b` (both of class `"numeric"`), and `X0` (of class `"AbscontDistribution"`), 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 = "AbscontDistribution")`

*

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

/

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

+

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

-

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

*

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

+

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

-

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

-

  `signature(e1 = "AffLinAbscontDistribution")`

*

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

/

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

+

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

-

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

*

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

+

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

-

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

There also is a class union of `"AffLinAbscontDistribution"`, `"AffLinDiscreteDistribution"`, `"AffLinUnivarLebDecDistribution"` and called `"AffLinDistribution"` which is used for functionals.

### Internal virtual superclass "AcDcLcDistribution"

As many operations should be valid no matter whether the operands are of class `"AbscontDistribution"`, `"DiscreteDistribution"`, or `"UnivarLebDecDistribution"`, there is a class union of these classes called `"AcDcLcDistribution"`; in partiucalar methods for `"*"`, `"/"`, `"^"` (see operators-methods) and methods `Minimum`, `Maximum`, `Truncate`, and `Huberize`, and `convpow` are defined for this class union.

### Author(s)

Thomas Stabla statho3@web.de,
Florian Camphausen fcampi@gmx.de,
Peter Ruckdeschel peter.ruckdeschel@uni-oldenburg.de,
Matthias Kohl Matthias.Kohl@stamats.de

### See Also

`AbscontDistribution` `Parameter-class` `UnivariateDistribution-class` `Beta-class` `Cauchy-class` `Chisq-class` `Exp-class` `Fd-class` `Gammad-class` `Lnorm-class` `Logis-class` `Norm-class` `Td-class` `Unif-class` `Weibull-class` `DiscreteDistribution-class` `Reals-class` `RtoDPQ`

### Examples

    N <-  Norm() # N is a normal distribution with mean=0 and sd=1.
    E <-  Exp() # E is an exponential distribution with rate=1.
    A1 <-  E+1 # a new absolutely continuous distributions with exact slots d, p, q
    A2 <-  A1*3 # a new absolutely continuous distributions with exact slots d, p, q
    A3 <- N*0.9 + E*0.1 # a new absolutely continuous distribution with approximated slots d, p, q
    r(A3)(1) # one random number generated from this distribution, e.g. -0.7150937
    d(A3)(0) # The (approximated) density for x=0 is 0.43799.
    p(A3)(0) # The (approximated) probability that x <= 0 is 0.45620.
    q(A3)(.1) # The (approximated) 10 percent quantile is -1.06015.
    ## in RStudio or Jupytier IRKernel, use q.l(.)(.) instead of q(.)(.)

[Package distr version 2.8.0 Index]