R: Methods for function Truncate in Package 'distr'

Truncate-methods {distr} | R Documentation

## Methods for function Truncate in Package ‘distr’

### Description

Truncate-methods

### Usage

    Truncate(object, ...)
    ## S4 method for signature 'AbscontDistribution'
    Truncate(object, lower = -Inf, upper = Inf)
    ## S4 method for signature 'DiscreteDistribution'
    Truncate(object, lower= -Inf, upper = Inf)
    ## S4 method for signature 'LatticeDistribution'
    Truncate(object, lower= -Inf, upper = Inf)
    ## S4 method for signature 'UnivarLebDecDistribution'
    Truncate(object, lower = -Inf, upper = Inf,
                        withSimplify = getdistrOption("simplifyD"))

### Arguments

`object` | distribution object
`...` | not yet used; takes up `lower`, `upper`, `withSimplify`.
`lower` | numeric; lower truncation point
`upper` | numeric; upper truncation point
`withSimplify` | logical; is result to be piped through a call to `simplifyD`?

### Value

the corresponding distribution of the truncated random variable

### Methods

Truncate

  `signature(object = "AbscontDistribution")`: returns the distribution of `min(upper,max(X,lower))` conditioned to `lower<=X<=upper`, if `X` is distributed according to `object`; if slot `.logExact` of argument `object` is `TRUE` and if either there is only one-sided truncation or both truncation points lie on the same side of the median, we use this representation to enhance the range of applicability, in particular, for slot `r`, we profit from Peter Dalgaard's clever log-tricks as indicated in http://r.789695.n4.nabble.com/help-on-sampling-from-the-truncated-normal-gamma-distribution-on-the-far-end-probability-is-very-low-td868119.html#a868120. To this end we use the internal functions (i.e.; non exported to namespace) `.trunc.up` and `.trunc.low` which provide functional slots `r,d,p,q` for one-sided truncation. In case of two sided truncation, we simply use one-sided truncation successively — first left and then right in case we are right of the median, and the other way round else; the result is again of class `"AbscontDistribution"`;

Truncate

  `signature(object = "DiscreteDistribution")`: returns the distribution of `min(upper,max(X,lower))` conditioned to `lower<=X<=upper`, if `X` is distributed according to `object`; the result is again of class `"DiscreteDistribution"`

Truncate

  `signature(object = "LatticeDistribution")`: if length of the corresp. `lattice` is infinite and slot `.logExact` of argument `object` is `TRUE`, we proceed similarly as in case of `AbscontDistribution`, also using internal functions `.trunc.up` and `.trunc.low`; else we use the corresponding `"DiscreteDistribution"` method; the result is again of class `"LatticeDistribution"`

Truncate

  `signature(object = "UnivarLebDecDistribution")`: returns the distribution of `min(upper,max(X,lower))` conditioned to `lower<=X<=upper`, if `X` is distributed according to `object`; the result is again of class `"UnivarLebDecDistribution"`

### See Also

`Huberize`, `Minimum`

### Examples

    plot(Truncate(Norm(),lower=-1,upper=2))
    TN <- Truncate(Norm(),lower=15,upper=15.7) ### remarkably right!
    plot(TN)
    r(TN)(30)
    TNG <- Truncate(Geom(prob=0.05),lower=325,upper=329) ### remarkably right!
    plot(TNG)

[Package distr version 2.8.0 Index]