The function tests if x lies in the support of the
distribution object.
liesInSupport(object, x, ...)
# S4 method for UnivarLebDecDistribution,numeric
liesInSupport(object,x, checkFin = FALSE)
# S4 method for UnivarMixingDistribution,numeric
liesInSupport(object,x, checkFin = FALSE)
# S4 method for LatticeDistribution,numeric
liesInSupport(object,x, checkFin = FALSE)
# S4 method for DiscreteDistribution,numeric
liesInSupport(object,x, checkFin = FALSE)
# S4 method for AbscontDistribution,numeric
liesInSupport(object,x, checkFin = FALSE)
# S4 method for Distribution,matrix
liesInSupport(object,x, checkFin = FALSE)
# S4 method for ExpOrGammaOrChisq,numeric
liesInSupport(object,x, checkFin = TRUE)
# S4 method for Lnorm,numeric
liesInSupport(object,x, checkFin = TRUE)
# S4 method for Fd,numeric
liesInSupport(object,x, checkFin = TRUE)
# S4 method for Norm,numeric
liesInSupport(object,x, checkFin = TRUE)
# S4 method for DExp,numeric
liesInSupport(object,x, checkFin = TRUE)
# S4 method for Cauchy,numeric
liesInSupport(object,x, checkFin = TRUE)
# S4 method for Td,numeric
liesInSupport(object,x, checkFin = TRUE)
# S4 method for Logis,numeric
liesInSupport(object,x, checkFin = TRUE)
# S4 method for Weibull,numeric
liesInSupport(object,x, checkFin = TRUE)
# S4 method for Unif,numeric
liesInSupport(object,x, checkFin = TRUE)
# S4 method for Beta,numeric
liesInSupport(object,x, checkFin = TRUE)logical vector
object of class "Distribution"
numeric vector or matrix
logical: in case FALSE, we simply check whether
x lies in the numerical (i.e., possibly cut
to relevant quantile range) support; in case TRUE we try to
check this by more exact techniques (e.g. in case of lattice distributions)
and by using slot .finSupport / the return values of q.l(object)
in 0 and 1. This is only used on discrete (parts of)
distributions).
used for specific arguments to particular methods.
We return a logical vector of the same length as x with TRUE
when x lies in the support of object.
As support we use the value of support(object), so this
is possibly cut to relevant quantile ranges.
In case checkFin is TRUE, in addition, we flag those coordinates
to TRUE where x < min(support(object)) if
is.na(object@.finSupport[1]) or object@.finSupport[1]==FALSE
or q.l(object)(0)==-Inf, and similarly, where
x > max(support(object)) if is.na(object@.finSupport[2])
or object@.finSupport[2]==FALSE or q.l(object)(1)==Inf.
In addition we flag those coordinates to TRUE where
q.l(object)(0)<=x<min(support(object)) if
object@.finSupport[1]==TRUE and, similarly, where
q.l(object)(1)>=x>max(support(object)) if
object@.finSupport[2]==TRUE.
Argument x is cast to vector and then the respective
liesInSupport method for vectors is called. The method throws an
arror when the dispatch mechanism does not find a suitable, applicable
respective vector-method.
We return a logical vector of the same length as x with TRUE
where q.l(object)(0)<=x<=q.l(object)(1) (and replace the boundary
values by q.l(object)(10*.Machine$double.eps) resp.
q.l(object)(1-10*.Machine$double.eps) once the return values
for 0 or 1 return are NaN.
We return a logical vector of the same length as x with TRUE
when x lies in the support of object.
As support we use the value of support(object), so this
is possibly cut to relevant quantile ranges.
In case checkFin is TRUE, we instead use the lattice
information: We check whether all values
(x-pivot(lattice(object))/width(lattice(object)) are non-negative
integers and are non larger than Length(lattice(object))-1.
In addition, we flag those coordinates to TRUE where
x < min(support(object)) if
is.na(object@.finSupport[1]) or object@.finSupport[1]==FALSE,
and similarly, where x > max(support(object)) if
is.na(object@.finSupport[2])
or object@.finSupport[2]==FALSE.
We split up object into discrete and absolutely continuous
part and for each of them apply liesInSupport separately;
the two return values are combined by a coponentwise logical |.
We first cast object to UnivarLebDecDistribution
by flat.mix and then apply the respective method.
Matthias Kohl Matthias.Kohl@stamats.de and Peter Ruckdeschel peter.ruckdeschel@uni-oldenburg.de
Distribution-class
liesInSupport(Exp(1), rnorm(10))
# note
x <- rpois(10, lambda = 10)
liesInSupport(Pois(1), x)
# better
liesInSupport(Pois(1), x, checkFin = TRUE)
liesInSupport(Pois(1), 1000*x, checkFin = TRUE)
liesInSupport(-10*Pois(1), -10*x+1, checkFin = TRUE)
xs = c(1000*x,runif(10))
D <- UnivarMixingDistribution(Pois(1),Unif())
liesInSupport(D, xs)
Run the code above in your browser using DataLab