Probabilities
Entropies.probabilities
— MethodPermutation-based symbol probabilities
probabilities(x::AbstractDataset, est::SymbolicPermutation) → Vector{<:Real}
probabilities(x::AbstractVector, est::SymbolicPermutation; m::Int = 2, τ::Int = 1) → Vector{<:Real}
probabilities!(s::Vector{Int}, x::AbstractDataset, est::SymbolicPermutation) → Vector{<:Real}
probabilities!(s::Vector{Int}, x::AbstractVector, est::SymbolicPermutation; m::Int = 2, τ::Int = 1) → Vector{<:Real}
Compute the unordered probabilities of the occurrence of symbol sequences constructed from the data x
.
If x
is a multivariate Dataset
, then symbolization is performed directly on the state vectors. If x
is a univariate signal, then a delay reconstruction with embedding lag τ
and embedding dimension m
is used to construct state vectors, on which symbolization is then performed.
A pre-allocated symbol array s
can be provided to save some memory allocations if the probabilities are to be computed for multiple data sets. If provided, it is required that length(x) == length(s)
if x
is a Dataset
, or length(s) == length(x) - (m-1)τ
if x
is a univariate signal.
See also: SymbolicPermutation
.
Entropies.probabilities
— MethodWeighted permutation-based symbol probabilities
probabilities(x::AbstractDataset, est::SymbolicWeightedPermutation) → Vector{<:Real}
probabilities(x::AbstractVector{<:Real}, est::SymbolicWeightedPermutation; m::Int = 3, τ::Int = 1) → Vector{<:Real}
probabilities!(s::Vector{Int}, x::AbstractDataset, est::SymbolicWeightedPermutation) → Vector{<:Real}
probabilities!(s::Vector{Int}, x::AbstractVector, est::SymbolicWeightedPermutation; m::Int = 3, τ::Int = 1) → Vector{<:Real}
Compute the unordered probabilities of the occurrence of weighted symbol sequences constructed from x
.
If x
is a multivariate Dataset
, then symbolization is performed directly on the state vectors. If x
is a univariate signal, then a delay reconstruction with embedding lag τ
and embedding dimension m
is used to construct state vectors, on which symbolization is then performed.
A pre-allocated symbol array s
can be provided to save some memory allocations if the probabilities are to be computed for multiple data sets. If provided, it is required that length(x) == length(s)
if x
is a Dataset
, or length(s) == length(x) - (m-1)τ
if x
is a univariate signal`.
See also: SymbolicWeightedPermutation
.
Entropies.probabilities
— MethodAmplitude-aware permutation-based symbol probabilities
probabilities(x::AbstractDataset, est::SymbolicAmplitudeAwarePermutation) → Vector{<:Real}
probabilities(x::AbstractVector{<:Real}, est::SymbolicAmplitudeAwarePermutation; m::Int = 3, τ::Int = 1) → Vector{<:Real}
probabilities!(s::Vector{Int}, x::AbstractDataset, est::SymbolicAmplitudeAwarePermutation) → Vector{<:Real}
probabilities!(s::Vector{Int}, x::AbstractVector, est::SymbolicAmplitudeAwarePermutation; m::Int = 3, τ::Int = 1) → Vector{<:Real}
Compute the unordered probabilities of the occurrence of amplitude-encoding symbol sequences constructed from x
.
If x
is a multivariate Dataset
, then symbolization is performed directly on the state vectors. If x
is a univariate signal, then a delay reconstruction with embedding lag τ
and embedding dimension m
is used to construct state vectors, on which symbolization is then performed.
A pre-allocated symbol array s
can be provided to save some memory allocations if the probabilities are to be computed for multiple data sets. If provided, it is required that length(x) == length(s)
if x
is a Dataset
, or length(s) == length(x) - (m-1)τ
if x
is a univariate signal`.
See also: SymbolicAmplitudeAwarePermutation
.
Entropies.probabilities
— MethodProbabilities based on binning (visitation frequency)
probabilities(x::AbstractDataset, est::VisitationFrequency) → Vector{Real}
Superimpose a rectangular grid (bins/boxes) dictated by est
over the data x
and return the sum-normalized histogram (i.e. frequency at which the points of x
visits the bins/boxes in the grid) in an unordered 1D form, discarding all non-visited bins and bin edge information.
Performances Notes
This method has a linearithmic time complexity (n log(n)
for n = length(data)
) and a linear space complexity l
for l = dimension(data)
). This allows computation of histograms of high-dimensional datasets and with small box sizes ε without memory overflow and with maximum performance.
See also: VisitationFrequency
, RectangularBinning
.
Example
using Entropies, DelayEmbeddings
D = Dataset(rand(100, 3))
# How shall the data be partitioned?
# Here, we subdivide each coordinate axis into 4 equal pieces
# over the range of the data, resulting in rectangular boxes/bins
ϵ = RectangularBinning(4)
# Feed partitioning instructions to estimator.
est = VisitationFrequency(ϵ)
# Estimate a probability distribution over the partition
probabilities(D, est)
Entropies.probabilities
— MethodWavelet-based time-scale probability estimation
probabilities(x::AbstractVector{<:Real}, est::TimeScaleMODWT, α = 1;
base = 2) → ps::AbstractVector{<:Real}
Compute the probability distribution of energies from a maximal overlap discrete wavelet transform (MODWT) of x
. The probability ps[i]
is the relative/total energy for the i-th wavelet scale.
using Entropies, Wavelets
N = 200
a = 10
t = LinRange(0, 2*a*π, N)
x = sin.(t .+ cos.(t/0.1)) .- 0.1;
# Pick a wavelet (if no wavelet provided, defaults to Wavelets.WL.Daubechies{12}())
wl = Wavelets.WT.Daubechies{12}()
# Compute the probabilities (relative energies) at the different wavelet scales
Entropies.probabilities(x, TimeScaleMODWT(wl))
See also: TimeScaleMODWT
.