| E {distrEx} | R Documentation |
Generic Function for the Computation of (Conditional) Expectations
Description
Generic function for the computation of (conditional) expectations.
Usage
E(object, fun, cond, ...)
## S4 method for signature 'UnivariateDistribution,missing,missing'
E(object,
low = NULL, upp = NULL, Nsim = getdistrExOption("MCIterations"), ...)
## S4 method for signature 'UnivariateDistribution,function,missing'
E(object, fun,
useApply = TRUE, low = NULL, upp = NULL,
Nsim = getdistrExOption("MCIterations"), ...)
## S4 method for signature 'AbscontDistribution,missing,missing'
E(object, low = NULL, upp = NULL,
rel.tol= getdistrExOption("ErelativeTolerance"),
lowerTruncQuantile = getdistrExOption("ElowerTruncQuantile"),
upperTruncQuantile = getdistrExOption("EupperTruncQuantile"),
IQR.fac = getdistrExOption("IQR.fac"), ..., diagnostic = FALSE)
## S4 method for signature 'AbscontDistribution,function,missing'
E(object, fun, useApply = TRUE,
low = NULL, upp = NULL,
rel.tol= getdistrExOption("ErelativeTolerance"),
lowerTruncQuantile = getdistrExOption("ElowerTruncQuantile"),
upperTruncQuantile = getdistrExOption("EupperTruncQuantile"),
IQR.fac = getdistrExOption("IQR.fac"), ..., diagnostic = FALSE)
## S4 method for signature 'UnivarMixingDistribution,missing,missing'
E(object, low = NULL,
upp = NULL, rel.tol= getdistrExOption("ErelativeTolerance"),
lowerTruncQuantile = getdistrExOption("ElowerTruncQuantile"),
upperTruncQuantile = getdistrExOption("EupperTruncQuantile"),
IQR.fac = getdistrExOption("IQR.fac"), ..., diagnostic = FALSE)
## S4 method for signature 'UnivarMixingDistribution,function,missing'
E(object, fun,
useApply = TRUE, low = NULL, upp = NULL,
rel.tol= getdistrExOption("ErelativeTolerance"),
lowerTruncQuantile = getdistrExOption("ElowerTruncQuantile"),
upperTruncQuantile = getdistrExOption("EupperTruncQuantile"),
IQR.fac = getdistrExOption("IQR.fac"), ..., diagnostic = FALSE)
## S4 method for signature 'UnivarMixingDistribution,missing,ANY'
E(object, cond, low = NULL,
upp = NULL, rel.tol= getdistrExOption("ErelativeTolerance"),
lowerTruncQuantile = getdistrExOption("ElowerTruncQuantile"),
upperTruncQuantile = getdistrExOption("EupperTruncQuantile"),
IQR.fac = getdistrExOption("IQR.fac"), ..., diagnostic = FALSE)
## S4 method for signature 'UnivarMixingDistribution,function,ANY'
E(object, fun, cond,
useApply = TRUE, low = NULL, upp = NULL,
rel.tol= getdistrExOption("ErelativeTolerance"),
lowerTruncQuantile = getdistrExOption("ElowerTruncQuantile"),
upperTruncQuantile = getdistrExOption("EupperTruncQuantile"),
IQR.fac = getdistrExOption("IQR.fac"), ..., diagnostic = FALSE)
## S4 method for signature 'DiscreteDistribution,function,missing'
E(object, fun, useApply = TRUE,
low = NULL, upp = NULL, ...)
## S4 method for signature 'AffLinDistribution,missing,missing'
E(object, low = NULL, upp = NULL,
..., diagnostic = FALSE)
## S4 method for signature 'AffLinUnivarLebDecDistribution,missing,missing'
E(object, low = NULL,
upp = NULL, ..., diagnostic = FALSE)
## S4 method for signature 'MultivariateDistribution,missing,missing'
E(object,
Nsim = getdistrExOption("MCIterations"), ...)
## S4 method for signature 'MultivariateDistribution,function,missing'
E(object, fun,
useApply = TRUE, Nsim = getdistrExOption("MCIterations"), ...)
## S4 method for signature 'DiscreteMVDistribution,missing,missing'
E(object, low = NULL,
upp = NULL, ...)
## S4 method for signature 'DiscreteMVDistribution,function,missing'
E(object, fun,
useApply = TRUE, ...)
## S4 method for signature 'AbscontCondDistribution,missing,numeric'
E(object, cond,
useApply = TRUE, low = NULL, upp = NULL,
rel.tol= getdistrExOption("ErelativeTolerance"),
lowerTruncQuantile = getdistrExOption("ElowerTruncQuantile"),
upperTruncQuantile = getdistrExOption("EupperTruncQuantile"),
IQR.fac = getdistrExOption("IQR.fac"), ..., diagnostic = FALSE)
## S4 method for signature 'DiscreteCondDistribution,missing,numeric'
E(object, cond,
useApply = TRUE, low = NULL, upp = NULL, ...)
## S4 method for signature 'UnivariateCondDistribution,function,numeric'
E(object, fun, cond,
withCond = FALSE, useApply = TRUE, low = NULL, upp = NULL,
Nsim = getdistrExOption("MCIterations"), ...)
## S4 method for signature 'AbscontCondDistribution,function,numeric'
E(object, fun, cond,
withCond = FALSE, useApply = TRUE, low = NULL, upp = NULL,
rel.tol= getdistrExOption("ErelativeTolerance"),
lowerTruncQuantile = getdistrExOption("ElowerTruncQuantile"),
upperTruncQuantile = getdistrExOption("EupperTruncQuantile"),
IQR.fac = getdistrExOption("IQR.fac")
, ..., diagnostic = FALSE)
## S4 method for signature 'DiscreteCondDistribution,function,numeric'
E(object, fun, cond,
withCond = FALSE, useApply = TRUE, low = NULL, upp = NULL,...)
## S4 method for signature 'UnivarLebDecDistribution,missing,missing'
E(object, low = NULL,
upp = NULL, rel.tol= getdistrExOption("ErelativeTolerance"),
lowerTruncQuantile = getdistrExOption("ElowerTruncQuantile"),
upperTruncQuantile = getdistrExOption("EupperTruncQuantile"),
IQR.fac = getdistrExOption("IQR.fac"), ..., diagnostic = FALSE )
## S4 method for signature 'UnivarLebDecDistribution,function,missing'
E(object, fun,
useApply = TRUE, low = NULL, upp = NULL,
rel.tol= getdistrExOption("ErelativeTolerance"),
lowerTruncQuantile = getdistrExOption("ElowerTruncQuantile"),
upperTruncQuantile = getdistrExOption("EupperTruncQuantile"),
IQR.fac = getdistrExOption("IQR.fac"), ..., diagnostic = FALSE )
## S4 method for signature 'UnivarLebDecDistribution,missing,ANY'
E(object, cond, low = NULL,
upp = NULL, rel.tol= getdistrExOption("ErelativeTolerance"),
lowerTruncQuantile = getdistrExOption("ElowerTruncQuantile"),
upperTruncQuantile = getdistrExOption("EupperTruncQuantile"),
IQR.fac = getdistrExOption("IQR.fac"), ..., diagnostic = FALSE )
## S4 method for signature 'UnivarLebDecDistribution,function,ANY'
E(object, fun, cond,
useApply = TRUE, low = NULL, upp = NULL,
rel.tol= getdistrExOption("ErelativeTolerance"),
lowerTruncQuantile = getdistrExOption("ElowerTruncQuantile"),
upperTruncQuantile = getdistrExOption("EupperTruncQuantile"),
IQR.fac = getdistrExOption("IQR.fac"), ..., diagnostic = FALSE )
## S4 method for signature 'AcDcLcDistribution,ANY,ANY'
E(object, fun, cond, low = NULL,
upp = NULL, rel.tol= getdistrExOption("ErelativeTolerance"),
lowerTruncQuantile = getdistrExOption("ElowerTruncQuantile"),
upperTruncQuantile = getdistrExOption("EupperTruncQuantile"),
IQR.fac = getdistrExOption("IQR.fac"), ..., diagnostic = FALSE)
## S4 method for signature 'CompoundDistribution,missing,missing'
E(object, low = NULL,
upp = NULL, ..., diagnostic = FALSE)
## S4 method for signature 'Arcsine,missing,missing'
E(object, low = NULL, upp = NULL, ..., diagnostic = FALSE)
## S4 method for signature 'Beta,missing,missing'
E(object, low = NULL, upp = NULL,
propagate.names=getdistrExOption("propagate.names.functionals"), ...,
diagnostic = FALSE)
## S4 method for signature 'Binom,missing,missing'
E(object, low = NULL, upp = NULL,
propagate.names=getdistrExOption("propagate.names.functionals"), ...)
## S4 method for signature 'Cauchy,missing,missing'
E(object, low = NULL, upp = NULL, ..., diagnostic = FALSE)
## S4 method for signature 'Cauchy,function,missing'
E(object, fun, low = NULL, upp = NULL,
rel.tol = getdistrExOption("ErelativeTolerance"),
lowerTruncQuantile = getdistrExOption("ElowerTruncQuantile"),
upperTruncQuantile = getdistrExOption("EupperTruncQuantile"),
IQR.fac = max(1e4,getdistrExOption("IQR.fac")),
..., diagnostic = FALSE)
## S4 method for signature 'Chisq,missing,missing'
E(object, low = NULL, upp = NULL,
propagate.names=getdistrExOption("propagate.names.functionals"), ...)
## S4 method for signature 'Dirac,missing,missing'
E(object, low = NULL, upp = NULL,
propagate.names=getdistrExOption("propagate.names.functionals"), ...)
## S4 method for signature 'DExp,missing,missing'
E(object, low = NULL, upp = NULL, ..., diagnostic = FALSE)
## S4 method for signature 'Exp,missing,missing'
E(object, low = NULL, upp = NULL,
propagate.names=getdistrExOption("propagate.names.functionals"), ...)
## S4 method for signature 'Fd,missing,missing'
E(object, low = NULL, upp = NULL,
propagate.names=getdistrExOption("propagate.names.functionals"), ...,
diagnostic = FALSE)
## S4 method for signature 'Gammad,missing,missing'
E(object, low = NULL, upp = NULL,
propagate.names=getdistrExOption("propagate.names.functionals"), ...,
diagnostic = FALSE)
## S4 method for signature 'Gammad,function,missing'
E(object, fun, low = NULL, upp = NULL,
rel.tol = getdistrExOption("ErelativeTolerance"),
lowerTruncQuantile = getdistrExOption("ElowerTruncQuantile"),
upperTruncQuantile = getdistrExOption("EupperTruncQuantile"),
IQR.fac = max(1e4,getdistrExOption("IQR.fac")), ..., diagnostic = FALSE)
## S4 method for signature 'Geom,missing,missing'
E(object, low = NULL, upp = NULL,
propagate.names=getdistrExOption("propagate.names.functionals"), ...)
## S4 method for signature 'Hyper,missing,missing'
E(object, low = NULL, upp = NULL,
propagate.names=getdistrExOption("propagate.names.functionals"), ...)
## S4 method for signature 'Logis,missing,missing'
E(object, low = NULL, upp = NULL,
propagate.names=getdistrExOption("propagate.names.functionals"), ...,
diagnostic = FALSE)
## S4 method for signature 'Lnorm,missing,missing'
E(object, low = NULL, upp = NULL,
propagate.names=getdistrExOption("propagate.names.functionals"), ...,
diagnostic = FALSE)
## S4 method for signature 'Nbinom,missing,missing'
E(object, low = NULL, upp = NULL,
propagate.names=getdistrExOption("propagate.names.functionals"), ...)
## S4 method for signature 'Norm,missing,missing'
E(object, low = NULL, upp = NULL,
propagate.names=getdistrExOption("propagate.names.functionals"), ...)
## S4 method for signature 'Pois,missing,missing'
E(object, low = NULL, upp = NULL,
propagate.names=getdistrExOption("propagate.names.functionals"), ...)
## S4 method for signature 'Unif,missing,missing'
E(object, low = NULL, upp = NULL,
propagate.names=getdistrExOption("propagate.names.functionals"), ...,
diagnostic = FALSE)
## S4 method for signature 'Td,missing,missing'
E(object, low = NULL, upp = NULL,
propagate.names=getdistrExOption("propagate.names.functionals"), ...,
diagnostic = FALSE)
## S4 method for signature 'Weibull,missing,missing'
E(object, low = NULL, upp = NULL,
propagate.names=getdistrExOption("propagate.names.functionals"), ...,
diagnostic = FALSE)
## S4 method for signature 'Weibull,function,missing'
E(object, fun, low = NULL, upp = NULL,
rel.tol = getdistrExOption("ErelativeTolerance"),
lowerTruncQuantile = getdistrExOption("ElowerTruncQuantile"),
upperTruncQuantile = getdistrExOption("EupperTruncQuantile"),
IQR.fac = max(1e4,getdistrExOption("IQR.fac")), ..., diagnostic = FALSE)
.qtlIntegrate(object, fun, low = NULL, upp = NULL,
rel.tol= getdistrExOption("ErelativeTolerance"),
lowerTruncQuantile = getdistrExOption("ElowerTruncQuantile"),
upperTruncQuantile = getdistrExOption("EupperTruncQuantile"),
IQR.fac = max(1e4,getdistrExOption("IQR.fac")), ...,
.withLeftTail = FALSE, .withRightTail = FALSE, diagnostic = FALSE)
Arguments
object |
object of class |
fun |
if missing the (conditional) expectation is computed
else the (conditional) expection of |
cond |
if not missing the conditional expectation
given |
Nsim |
number of MC simulations used to determine the expectation. |
rel.tol |
relative tolerance for |
low |
lower bound of integration range. |
upp |
upper bound of integration range. |
lowerTruncQuantile |
lower quantile for quantile based integration range. |
upperTruncQuantile |
upper quantile for quantile based integration range. |
IQR.fac |
factor for scale based integration range (i.e.;
median of the distribution |
... |
additional arguments to |
useApply |
logical: should |
withCond |
logical: is |
.withLeftTail |
logical: should left tail (falling into quantile range [0,0.02]) be computed separately to enhance accuracy? |
.withRightTail |
logical: should right tail (falling into quantile range [0.98,1]) be computed separately to enhance accuracy? |
diagnostic |
logical; if |
propagate.names |
logical: should names obtained from parameter
coordinates be propagated to return values of specific S4 methods
for functionals; defaults to the value of the respective
|
Details
The precision of the computations can be controlled via
certain global options; cf. distrExOptions.
Also note that arguments low and upp should be given as
named arguments in order to prevent them to be matched by arguments
fun or cond. Also the result, when arguments
low or upp is given, is the unconditional value of the
expectation; no conditioning with respect to low <= object <= upp
is done.
For the Cauchy, the Gamma and Weibull distribution for integration with
missing argument cond but given argument fun, we use
integration on [0,1] (i.e, via the respective probability transformation).
This done via helper
function .qtlIntegrate, where both arguments .withLeftTail
and .withRightTail are TRUE for the Cauchy and Gamma distributions,
and only .withRightTail ist TRUE for the Weibull distribution.
Diagnostics on the involved integrations are available if argument
diagnostic is TRUE. Then there is attribute diagnostic
attached to the return value, which may be inspected
and accessed through showDiagnostic and
getDiagnostic.
Value
The (conditional) expectation is computed.
Methods
- object = "UnivariateDistribution", fun = "missing", cond = "missing":
-
expectation of univariate distributions using crude Monte-Carlo integration.
- object = "AbscontDistribution", fun = "missing", cond = "missing":
-
expectation of absolutely continuous univariate distributions using
distrExIntegrate. - object = "DiscreteDistribution", fun = "missing", cond = "missing":
-
expectation of discrete univariate distributions using
supportandsum. - object = "MultivariateDistribution", fun = "missing", cond = "missing":
-
expectation of multivariate distributions using crude Monte-Carlo integration.
- object = "DiscreteMVDistribution", fun = "missing", cond = "missing":
-
expectation of discrete multivariate distributions. The computation is based on
supportandsum. - object = "UnivariateDistribution", fun = "missing", cond = "missing":
-
expectation of univariate Lebesgue decomposed distributions by separate calculations for discrete and absolutely continuous part.
- object = "AffLinDistribution", fun = "missing", cond = "missing":
-
expectation of an affine linear transformation
aX+basa E[X]+bforXeither"DiscreteDistribution"or"AbscontDistribution". - object = "AffLinUnivarLebDecDistribution", fun = "missing", cond = "missing":
-
expectation of an affine linear transformation
aX+basa E[X]+bforXeither"UnivarLebDecDistribution". - object = "UnivariateDistribution", fun = "function", cond = "missing":
-
expectation of
fununder univariate distributions using crude Monte-Carlo integration. - object = "UnivariateDistribution", fun = "function", cond = "missing":
-
expectation of
fununder univariate Lebesgue decomposed distributions by separate calculations for discrete and absolutely continuous part. - object = "AbscontDistribution", fun = "function", cond = "missing":
-
expectation of
fununder absolutely continuous univariate distributions usingdistrExIntegrate. - object = "DiscreteDistribution", fun = "function", cond = "missing":
-
expectation of
fununder discrete univariate distributions usingsupportandsum. - object = "MultivariateDistribution", fun = "function", cond = "missing":
-
expectation of multivariate distributions using crude Monte-Carlo integration.
- object = "DiscreteMVDistribution", fun = "function", cond = "missing":
-
expectation of
fununder discrete multivariate distributions. The computation is based onsupportandsum. - object = "UnivariateCondDistribution", fun = "missing", cond = "numeric":
-
conditional expectation for univariate conditional distributions given
cond. The integral is computed using crude Monte-Carlo integration. - object = "AbscontCondDistribution", fun = "missing", cond = "numeric":
-
conditional expectation for absolutely continuous, univariate conditional distributions given
cond. The computation is based ondistrExIntegrate. - object = "DiscreteCondDistribution", fun = "missing", cond = "numeric":
-
conditional expectation for discrete, univariate conditional distributions given
cond. The computation is based onsupportandsum. - object = "UnivariateCondDistribution", fun = "function", cond = "numeric":
-
conditional expectation of
fununder univariate conditional distributions givencond. The integral is computed using crude Monte-Carlo integration. - object = "AbscontCondDistribution", fun = "function", cond = "numeric":
-
conditional expectation of
fununder absolutely continuous, univariate conditional distributions givencond. The computation is based ondistrExIntegrate. - object = "DiscreteCondDistribution", fun = "function", cond = "numeric":
-
conditional expectation of
fununder discrete, univariate conditional distributions givencond. The computation is based onsupportandsum. - object = "UnivarLebDecDistribution", fun = "missing", cond = "missing":
-
expectation by separate evaluation of expectation of discrete and abs. continuous part and subsequent weighting.
- object = "UnivarLebDecDistribution", fun = "function", cond = "missing":
-
expectation by separate evaluation of expectation of discrete and abs. continuous part and subsequent weighting.
- object = "UnivarLebDecDistribution", fun = "missing", cond = "ANY":
-
expectation by separate evaluation of expectation of discrete and abs. continuous part and subsequent weighting.
- object = "UnivarLebDecDistribution", fun = "function", cond = "ANY":
-
expectation by separate evaluation of expectation of discrete and abs. continuous part and subsequent weighting.
- object = "UnivarMixingDistribution", fun = "missing", cond = "missing":
-
expectation is computed component-wise with subsequent weighting acc. to
mixCoeff. - object = "UnivarMixingDistribution", fun = "function", cond = "missing":
-
expectation is computed component-wise with subsequent weighting acc. to
mixCoeff. - object = "UnivarMixingDistribution", fun = "missing", cond = "ANY":
-
expectation is computed component-wise with subsequent weighting acc. to
mixCoeff. - object = "UnivarMixingDistribution", fun = "function", cond = "ANY":
-
expectation is computed component-wise with subsequent weighting acc. to
mixCoeff. - object = "AcDcLcDistribution", fun = "ANY", cond = "ANY":
-
expectation by first coercing to class
"UnivarLebDecDistribution"and using the corresponding method. - object = "CompoundDistribution", fun = "missing", cond = "missing":
-
if we are in i.i.d. situation (i.e., slot
SummandsDistris of classUnivariateDistribution) the formulaE[N]E[S]forNthe frequency distribution andSthe summand distribution; else we coerce to"UnivarLebDecDistribution". - object = "Arcsine", fun = "missing", cond = "missing":
-
exact evaluation using explicit expressions.
- object = "Beta", fun = "missing", cond = "missing":
-
for noncentrality 0 exact evaluation using explicit expressions.
- object = "Binom", fun = "missing", cond = "missing":
-
exact evaluation using explicit expressions.
- object = "Cauchy", fun = "missing", cond = "missing":
-
exact evaluation using explicit expressions.
- object = "Chisq", fun = "missing", cond = "missing":
-
exact evaluation using explicit expressions.
- object = "Dirac", fun = "missing", cond = "missing":
-
exact evaluation using explicit expressions.
- object = "DExp", fun = "missing", cond = "missing":
-
exact evaluation using explicit expressions.
- object = "Exp", fun = "missing", cond = "missing":
-
exact evaluation using explicit expressions.
- object = "Fd", fun = "missing", cond = "missing":
-
exact evaluation using explicit expressions.
- object = "Gammad", fun = "missing", cond = "missing":
-
exact evaluation using explicit expressions.
- object = "Gammad", fun = "function", cond = "missing":
-
use integration over the quantile range for numerical integration via helper function
.qtlIntegrate. - object = "Geom", fun = "missing", cond = "missing":
-
exact evaluation using explicit expressions.
- object = "Hyper", fun = "missing", cond = "missing":
-
exact evaluation using explicit expressions.
- object = "Logis", fun = "missing", cond = "missing":
-
exact evaluation using explicit expressions.
- object = "Lnorm", fun = "missing", cond = "missing":
-
exact evaluation using explicit expressions.
- object = "Nbinom", fun = "missing", cond = "missing":
-
exact evaluation using explicit expressions.
- object = "Norm", fun = "missing", cond = "missing":
-
exact evaluation using explicit expressions.
- object = "Pois", fun = "missing", cond = "missing":
-
exact evaluation using explicit expressions.
- object = "Unif", fun = "missing", cond = "missing":
-
exact evaluation using explicit expressions.
- object = "Td", fun = "missing", cond = "missing":
-
exact evaluation using explicit expressions.
- object = "Weibull", fun = "missing", cond = "missing":
-
exact evaluation using explicit expressions.
- object = "Weibull", fun = "function", cond = "missing":
-
use integration over the quantile range for numerical integration via helper function
.qtlIntegrate.
Author(s)
Matthias Kohl Matthias.Kohl@stamats.de and Peter Ruckdeschel peter.ruckdeschel@uni-oldenburg.de
See Also
distrExIntegrate, m1df, m2df,
Distribution-class
Examples
# mean of Exp(1) distribution
E <- Exp()
E(E) ## uses explicit terms
E(as(E,"AbscontDistribution")) ## uses numerical integration
E(as(E,"UnivariateDistribution")) ## uses simulations
E(E, fun = function(x){2*x^2}) ## uses simulations
# the same operator for discrete distributions:
P <- Pois(lambda=2)
E(P) ## uses explicit terms
E(as(P,"DiscreteDistribution")) ## uses sums
E(as(P,"UnivariateDistribution")) ## uses simulations
E(P, fun = function(x){2*x^2}) ## uses simulations
# second moment of N(1,4)
E(Norm(mean=1, sd=2), fun = function(x){x^2})
E(Norm(mean=1, sd=2), fun = function(x){x^2}, useApply = FALSE)
# conditional distribution of a linear model
D1 <- LMCondDistribution(theta = 1)
E(D1, cond = 1)
E(Norm(mean=1))
E(D1, function(x){x^2}, cond = 1)
E(Norm(mean=1), fun = function(x){x^2})
E(D1, function(x, cond){cond*x^2}, cond = 2, withCond = TRUE, useApply = FALSE)
E(Norm(mean=2), function(x){2*x^2})
E(as(Norm(mean=2),"AbscontDistribution"))
### somewhat less accurate:
E(as(Norm(mean=2),"AbscontDistribution"),
lowerTruncQuantil=1e-4,upperTruncQuantil=1e-4, IQR.fac= 4)
### even less accurate:
E(as(Norm(mean=2),"AbscontDistribution"),
lowerTruncQuantil=1e-2,upperTruncQuantil=1e-2, IQR.fac= 4)
### no good idea, but just as an example:
E(as(Norm(mean=2),"AbscontDistribution"),
lowerTruncQuantil=1e-2,upperTruncQuantil=1e-2, IQR.fac= .1)
### truncation of integration range; see also m1df...
E(Norm(mean=2), low=2,upp=4)
E(Cauchy())
E(Cauchy(),upp=3,low=-2)
# some Lebesgue decomposed distribution
mymix <- UnivarLebDecDistribution(acPart = Norm(), discretePart = Binom(4,.4),
acWeight = 0.4)
E(mymix)