Increasing/decreasing
The following constraints may be used to impose sequential constraints when sampling a collection of uncertain values element-wise.
StrictlyIncreasing
UncertainData.SamplingConstraints.StrictlyIncreasing
— TypeStrictlyIncreasing(algorithm::OrderedSamplingAlgorithm;
n::Int = 50000, lq = 0.05, uq = 0.95)
Sampling scheme indicating element-wise sampling such that the resulting values are strictly increasing in magnitude.
Increasing sequential sampling is only guaranteed when distributions have finite support. Therefore, distributions are element-wise truncated to the lower and upper quantiles lq
and uq
. For each distribution, this is done by drawing n
values from it, then finding the quantiles for that sample, and finally truncating the distribution to the empirical quantile range.
algorithm
is an instance of some OrderedSamplingAlgorithm
(e.g. StartToEnd
). n
is the number of samples to draw when computing quantiles.
Typically used when there are known, physical constraints on the measurements. For example, geochemical measurements of sediments at different depths of a sediment core are taken at physically separate depths in the core. Thus, the order of the indices cannot be flipped, and must be strictly decreasing/increasing.
See also: StartToEnd
StrictlyDecreasing
UncertainData.SamplingConstraints.StrictlyDecreasing
— TypeStrictlyIncreasing(algorithm::OrderedSamplingAlgorithm; n::Int = 50000)
Sampling scheme indicating element-wise sampling such that the resulting values are strictly decreasing in magnitude.
Decreasing sequential sampling is only guaranteed when distributions have finite support. Therefore, distributions are element-wise truncated to the lower and upper quantiles lq
and uq
. For each distribution, this is done by drawing n
values from it, then finding the quantiles for that sample, and finally truncating the distribution to the empirical quantile range.
algorithm
is an instance of some OrderedSamplingAlgorithm
(e.g. StartToEnd
). n
is the number of samples to draw when computing quantiles.
Typically used when there are known, physical constraints on the measurements. For example, geochemical measurements of sediments at different depths of a sediment core are taken at physically separate depths in the core. Thus, the order of the indices cannot be flipped, and must be strictly decreasing/increasing.
See also: StartToEnd
Existence of sequences
sequence_exists
will check whether a valid sequence through your collection of uncertain values exists, so that you can know beforehand whether a particular sequential sampling constraint is possible to apply to your data.
UncertainData.SamplingConstraints.sequence_exists
— Functionsequence_exists(x, c::SequentialSamplingConstraint)
Does a point-by-point sequence through the uncertain dataset x
exist that satisfies the criteria c
?
If x
is an UncertainIndexValueDataset
, then check for a sequence through the indices only.
Before the check is performed, the distributions in x
are truncated to the quantiles provided by c
to ensure they have finite supports.
Example
# Create a set of time indices
# We construct this is such a way that we *know* an increasing sequence exists.
t = [UncertainValue(Normal, i, 2) for i in 1:N];
sequence_exists(t, StrictlyIncreasing(StartToEnd()))