A wrapper for truncating any probability distribution at given limits.
distr6::Distribution
-> distr6::DistributionWrapper
-> TruncatedDistribution
new()
Creates a new instance of this R6 class.
TruncatedDistribution$new(distribution, lower = NULL, upper = NULL)
distribution
([Distribution])
Distribution to wrap.
lower
(numeric(1))
Lower limit to huberize the distribution at. If NULL
then the lower bound of
the Distribution is used.
upper
(numeric(1))
Upper limit to huberize the distribution at. If NULL
then the upper bound of
the Distribution is used.
TruncatedDistribution$new( Binomial$new(prob = 0.5, size = 10), lower = 2, upper = 4 )
# alternate constructor truncate(Binomial$new(), lower = 2, upper = 4)
setParameterValue()
Sets the value(s) of the given parameter(s).
TruncatedDistribution$setParameterValue( ..., lst = NULL, error = "warn", resolveConflicts = FALSE )
...
ANY
Named arguments of parameters to set values for. See examples.
lst
(list(1))
Alternative argument for passing parameters. List names should be parameter names and list values
are the new values to set.
error
(character(1))
If "warn"
then returns a warning on error, otherwise breaks if "stop"
.
resolveConflicts
(logical(1))
If FALSE
(default) throws error if conflicting parameterisations are provided, otherwise
automatically resolves them by removing all conflicting parameters.
clone()
The objects of this class are cloneable with this method.
TruncatedDistribution$clone(deep = FALSE)
deep
Whether to make a deep clone.
The pdf and cdf of the distribution are required for this wrapper, if unavailable decorate with FunctionImputation first.
Truncates a distribution at lower and upper limits on a left-open interval, using the formulae $$f_T(x) = f_X(x) / (F_X(upper) - F_X(lower))$$ $$F_T(x) = (F_X(x) - F_X(lower)) / (F_X(upper) - F_X(lower))$$ where \(f_T\)/\(F_T\) is the pdf/cdf of the truncated distribution T = Truncate(X, lower, upper) and \(f_X\), \(F_X\) is the pdf/cdf of the original distribution. T is supported on (].
Other wrappers:
Convolution
,
DistributionWrapper
,
HuberizedDistribution
,
MixtureDistribution
,
ProductDistribution
,
VectorDistribution
# NOT RUN {
## ------------------------------------------------
## Method `TruncatedDistribution$new`
## ------------------------------------------------
TruncatedDistribution$new(
Binomial$new(prob = 0.5, size = 10),
lower = 2, upper = 4
)
# alternate constructor
truncate(Binomial$new(), lower = 2, upper = 4)
# }
Run the code above in your browser using DataLab