Windowed variance
PortfolioOptimisers.WindowedVariance — Type
struct WindowedVariance{__T_ve, __T_w, __T_window} <: AbstractVarianceEstimatorVariance estimator that restricts computation to a rolling or indexed observation window.
WindowedVariance wraps another variance estimator and applies it to a subset of observations defined by a window and/or custom observation weights. This enables time-varying or recency-weighted variance estimation.
Fields
ve: Variance estimator.w: Optional observation weights vectorobservations × 1, or a concrete subtype ofDynamicAbstractWeights. Ifnothing, the computation is unweighted.window: Observation window. An integer selects the lastwindowobservations, and a vector of indices selects those observations.
Constructors
WindowedVariance(; ve::AbstractVarianceEstimator = SimpleVariance(), w::Option{<:ObsWeights} = nothing, window::Option{<:Int_VecInt} = nothing) -> WindowedVarianceKeywords correspond to the struct's fields.
Validation
- If
wis notnothing,!isempty(w). - If
windowis provided, it must be nonempty, nonnegative, and finite.
Propagated parameters
When factory is called on this type, the following @fprop-tagged fields are automatically propagated:
ve: Recursively updated viafactory.w: Replaced with the incomingObsWeights.
View parameters
When port_opt_view is called on this type, the following @vprop-tagged fields are automatically subset to the selected indices:
ve: Recursively viewed viaport_opt_view.
Observation weight parameters
When obs_weights_view is called on this type, the following fields are automatically indexed to the selected observations:
ve: Recursively indexed viaobs_weights_view.w: Indexed to the selected observations viaobs_weights_view.
Examples
julia> WindowedVariance()WindowedVariance ve ┼ SimpleVariance │ me ┼ SimpleExpectedReturns │ │ w ┴ nothing │ w ┼ nothing │ corrected ┴ Bool: true w ┼ nothing window ┴ nothingRelated
Statistics.var — Method
Statistics.var(ve::WindowedVariance, X::MatNum; dims::Int = 1, mean = nothing, iv::Option{<:MatNum} = nothing, kwargs...)Compute Statistics.var over a rolling or indexed observation window (matrix input).
This method selects a window of observations from X (and applies observation weights if specified), then delegates to the underlying variance estimator.
Algorithm
- Resolve the window and the observation weights with
windowed_preamble, givinginner, a copy ofve.vethat carries the windowed weights, together with the windowedXand the windowediv. - Call
Statistics.varoninnerand the windowedX, and return its result. The inner estimator alone decides the value, so the window and the weights are the whole of this method's contribution.
Arguments
ve: Windowed variance estimator.X: Data matrix of asset returns (observations × assets).dims: Dimension along which to perform the computation.mean: Optional pre-computed mean passed to the underlying estimator.iv: Optional implied volatility matrix. Used if any internal covariance estimator is an instance ofImpliedVolatility.kwargs...: Additional keyword arguments passed to the underlying estimator.
Returns
vr::ArrNum: Variance vector ofX, reshaped to be consistent with the dimension along which the value is computed.
Related
Statistics.var — Method
Statistics.var(ve::WindowedVariance, X::VecNum; mean = nothing)Compute Statistics.var over a rolling or indexed observation window (vector input).
This method selects a window of observations from X (and applies observation weights if specified), then delegates to the underlying variance estimator.
Algorithm
- Resolve the window and the observation weights with
windowed_preamble, givinginner, a copy ofve.vethat carries the windowed weights, together with the windowedX. - Call
Statistics.varoninnerand the windowedX, and return its result. The inner estimator alone decides the value, so the window and the weights are the whole of this method's contribution.
Arguments
ve: Windowed variance estimator.X: Data vector of returns.mean: Optional pre-computed mean passed to the underlying estimator.
Returns
vr::Number: Variance ofX.
Related
Statistics.std — Method
Statistics.std(ve::WindowedVariance, X::MatNum; dims::Int = 1, mean = nothing, iv::Option{<:MatNum} = nothing, kwargs...)Compute Statistics.std over a rolling or indexed observation window (matrix input).
This method selects a window of observations from X (and applies observation weights if specified), then delegates to the underlying variance estimator.
Algorithm
- Resolve the window and the observation weights with
windowed_preamble, givinginner, a copy ofve.vethat carries the windowed weights, together with the windowedXand the windowediv. - Call
Statistics.stdoninnerand the windowedX, and return its result. The inner estimator alone decides the value, so the window and the weights are the whole of this method's contribution.
Arguments
ve: Windowed variance estimator.X: Data matrix of asset returns (observations × assets).dims: Dimension along which to perform the computation.mean: Optional pre-computed mean passed to the underlying estimator.iv: Optional implied volatility matrix. Used if any internal covariance estimator is an instance ofImpliedVolatility.kwargs...: Additional keyword arguments passed to the underlying estimator.
Returns
sd::ArrNum: Standard deviation vector ofX, reshaped to be consistent with the dimension along which the value is computed.
Related
Statistics.std — Method
Statistics.std(ve::WindowedVariance, X::VecNum; mean = nothing)Compute Statistics.std over a rolling or indexed observation window (vector input).
This method selects a window of observations from X (and applies observation weights if specified), then delegates to the underlying variance estimator.
Algorithm
- Resolve the window and the observation weights with
windowed_preamble, givinginner, a copy ofve.vethat carries the windowed weights, together with the windowedX. - Call
Statistics.stdoninnerand the windowedX, and return its result. The inner estimator alone decides the value, so the window and the weights are the whole of this method's contribution.
Arguments
ve: Windowed variance estimator.X: Data vector of returns.mean: Optional pre-computed mean passed to the underlying estimator.
Returns
sd::Number: Standard deviation ofX.
Related