Transfer operator approximation
Grid estimator
For longer time series, we use a rectangular grid to discretize the embedding. This approach is relatively fast, because no intersections between volumes have to be explicitly computed.
Documentation
#
PerronFrobenius.transferoperator_grid — Function.
transferoperator_grid(E::Embeddings.AbstractEmbedding,
ϵ::Union{Int, Float64, Vector{Int}, Vector{Float64}};
allocate_frac::Float64 = 1.0,
boundary_condition = :exclude) ->
RectangularBinningTransferOperator
Estimates the transfer operator for an embedding.
Discretization scheme
The binning scheme is specified by ϵ, and the following ϵ are valid:
ϵ::Intdivides each axis intoϵintervals of the same size.ϵ::Floatdivides each axis into intervals of sizeϵ.ϵ::Vector{Int}divides the i-th axis intoϵᵢintervals of the same size.ϵ::Vector{Float64}divides the i-th axis into intervals of sizeϵᵢ.
Memory allocation
allocate_frac controls what fraction of the total number of possible transitions ($n_{states}^2$) we pre-allocate for. For short time series, you should leave this at the default value 1.0. However, for longer time series, the transition matrix is sparse (usually, less than $10\%$ of the entries are nonzero). In these case, you can safely lower allocate_frac.
Boundary conditions (dealing with the last point)
boundary_condition controls what to do with the forward map of the last point of the embedding. The default, :exclude, simply ignores the last point.
transferoperator_grid(pts::AbstractArray{T, 2},
ϵ::Union{Int, Float64, Vector{Int}, Vector{Float64}};
allocate_frac::Float64 = 1.0,
boundary_condition = :none) where T ->
RectangularBinningTransferOperator
Estimates the transfer operator for a set of points, given as a dim-by-npoints array.
Discretization scheme
The binning scheme is specified by ϵ, and the following ϵ are valid:
ϵ::Intdivides each axis intoϵintervals of the same size.ϵ::Floatdivides each axis into intervals of sizeϵ.ϵ::Vector{Int}divides the i-th axis intoϵᵢintervals of the same size.ϵ::Vector{Float64}divides the i-th axis into intervals of sizeϵᵢ.
Memory allocation
allocate_frac controls what fraction of the total number of possible transitions ($n_{states}^2$) we pre-allocate for. For short time series, you should leave this at the default value 1.0. However, for longer time series, the transition matrix is sparse (usually, less than $10\%$ of the entries are nonzero). In these case, you can safely lower allocate_frac.
Boundary conditions (dealing with the last point)
boundary_condition controls what to do with the forward map of the last point of the embedding. The default, :exclude, simply ignores the last point.