Truncate-methods
Truncate(object, ...)
# S4 method for AbscontDistribution
Truncate(object, lower = -Inf, upper = Inf)
# S4 method for DiscreteDistribution
Truncate(object, lower= -Inf, upper = Inf)
# S4 method for LatticeDistribution
Truncate(object, lower= -Inf, upper = Inf)
# S4 method for UnivarLebDecDistribution
Truncate(object, lower = -Inf, upper = Inf,
withSimplify = getdistrOption("simplifyD"))
the corresponding distribution of the truncated random variable
distribution object
not yet used; takes up lower
,
upper
, withSimplify
.
numeric; lower truncation point
numeric; upper truncation point
logical; is result to be piped through a call to
simplifyD
?
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
https://stat.ethz.ch/pipermail/r-help/2008-September/174321.html. 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"
;
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"
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"
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"
Huberize
, Minimum
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)
Run the code above in your browser using DataLab