Lower Tail Dependence Covariance
PortfolioOptimisers.LTDCovariance
— Typestruct LTDCovariance{T1, T2, T3} <: AbstractCovarianceEstimator
ve::T1
alpha::T2
threads::T3
end
Lower tail dependence covariance estimator.
LTDCovariance
implements a robust covariance estimator based on lower tail dependence, which measures the co-movement of asset returns in the lower quantiles (i.e., during joint drawdowns or adverse events). This estimator is particularly useful for capturing dependence structures relevant to risk management and stress scenarios.
Fields
ve
: Variance estimator used to compute marginal standard deviations.alpha
: Quantile level for the 5% lower tail.threads
: Parallel execution strategy.
Constructor
LTDCovariance(; ve::AbstractVarianceEstimator = SimpleVariance(), alpha::Real = 0.05,
threads::FLoops.Transducers.Executor = ThreadedEx())
Keyword arguments correspond to the fields above.
Validation
0 < alpha < 1
.
Examples
julia> ce = LTDCovariance()
LTDCovariance
ve | SimpleVariance
| me | SimpleExpectedReturns
| | w | nothing
| w | nothing
| corrected | Bool: true
alpha | Float64: 0.05
threads | Transducers.ThreadedEx{@NamedTuple{}}: Transducers.ThreadedEx()
Related
Statistics.cov
— Methodcov(ce::LTDCovariance, X::AbstractMatrix; dims::Int = 1, kwargs...)
Compute the lower tail dependence covariance matrix using a LTDCovariance
estimator.
This method computes the lower tail dependence (LTD) covariance matrix for the input data matrix X
using the quantile level and parallel execution strategy specified in ce
. The LTD covariance focuses on the co-movement of asset returns in the lower tail, making it robust to extreme events and particularly relevant for risk-sensitive applications.
Arguments
ce
: Lower tail dependence covariance estimator.X
: Data matrix of asset returns (observations × assets).dims
: Dimension along which to compute the covariance.kwargs...
: Additional keyword arguments passed to the variance estimator.
Returns
sigma::Matrix{<:Real}
: Symmetric matrix of lower tail dependence covariances.
Validation
dims
is either1
or2
.
Related
Statistics.cor
— Methodcor(ce::LTDCovariance, X::AbstractMatrix; dims::Int = 1, kwargs...)
Compute the lower tail dependence correlation matrix using a LTDCovariance
estimator.
This method computes the lower tail dependence (LTD) correlation matrix for the input data matrix X
using the quantile level and parallel execution strategy specified in ce
. The LTD correlation quantifies the probability that pairs of assets experience joint drawdowns or adverse events, as measured by their co-movement in the lower tail.
Arguments
ce
: Lower tail dependence covariance estimator.X
: Data matrix of asset returns (observations × assets).dims
: Dimension along which to compute the correlation.kwargs...
: Additional keyword arguments.
Returns
rho::Matrix{<:Real}
: Symmetric matrix of lower tail dependence correlation coefficients.
Validation
dims
is either1
or2
.
Related
PortfolioOptimisers.lower_tail_dependence
— Functionlower_tail_dependence(X::AbstractMatrix; alpha::Real = 0.05,
threads::FLoops.Transducers.Executor = SequentialEx())
Compute the lower tail dependence matrix for a set of asset returns.
The lower tail dependence (LTD) between two assets quantifies the probability that both assets experience returns in their respective lower tails (i.e., joint drawdowns or adverse events), given a specified quantile level alpha
. This function estimates the LTD matrix for all pairs of assets in the input matrix X
, which is particularly useful for risk management and stress testing.
Arguments
X
: Data matrix of asset returns (observations × assets).alpha
: Quantile level for the lower tail.threads
: Parallel execution strategy.
Returns
rho::Matrix{<:Real}
: Symmetric matrix of lower tail dependence coefficients, whererho[i, j]
is the estimated LTD between assetsi
andj
.
Details
For each pair of assets (i, j)
, the LTD is estimated as the proportion of observations where both asset i
and asset j
have returns less than or equal to their respective empirical alpha
-quantiles, divided by the number of observations in the lower tail (ceil(Int, T * alpha)
, where T
is the number of observations).
The resulting matrix is symmetric and all values are clamped to [0, 1]
.
Related