Lower Tail Dependence Covariance

PortfolioOptimisers.LTDCovarianceType
struct 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::AbstractVarianceEstimator: Variance estimator used to compute marginal standard deviations.
  • alpha::Real: Quantile level for the 5% lower tail.
  • threads::FLoops.Transducers.Executor: Parallel execution strategy.

Constructor

LTDCovariance(; ve::AbstractVarianceEstimator = SimpleVariance(),
               alpha::Real = 0.05, threads::FLoops.Transducers.Executor = ThreadedEx())

Creates a LTDCovariance object with the specified variance estimator, quantile level, and parallel execution strategy.

Related

source
PortfolioOptimisers.LTDCovarianceMethod
LTDCovariance(; ve::AbstractVarianceEstimator = SimpleVariance(),
               alpha::Real = 0.05,
               threads::FLoops.Transducers.Executor = ThreadedEx())

Construct a LTDCovariance estimator for robust lower tail dependence covariance or correlation estimation.

This constructor creates a LTDCovariance object using the specified variance estimator, quantile level, and parallel execution strategy. The estimator computes the covariance matrix by focusing on the joint lower tail events of asset returns, which is particularly relevant for risk-sensitive portfolio construction.

Arguments

  • ve::AbstractVarianceEstimator: Variance estimator.
  • alpha::Real: Quantile level for the lower tail.
  • threads::FLoops.Transducers.Executor: Parallel execution strategy.

ReturnsResult

  • LTDCovariance: A configured lower tail dependence covariance estimator.

Validation

  • Asserts that alpha is strictly in (0, 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

source
PortfolioOptimisers.lower_tail_dependenceFunction
lower_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::AbstractMatrix: Data matrix of asset returns (observations × assets).
  • alpha::Real: Quantile level for the lower tail.
  • threads::FLoops.Transducers.Executor: Parallel execution strategy.

ReturnsResult

  • rho::Matrix{Float64}: Symmetric matrix of lower tail dependence coefficients, where rho[i, j] is the estimated LTD between assets i and j.

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

source
Statistics.corMethod
cor(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::LTDCovariance: Lower tail dependence covariance estimator.
  • X::AbstractMatrix: Data matrix of asset returns (observations × assets).
  • dims::Int: Dimension along which to compute the correlation.
  • kwargs...: Additional keyword arguments.

ReturnsResult

  • rho::Matrix{Float64}: Symmetric matrix of lower tail dependence correlation coefficients.

Validation

  • Asserts that dims is either 1 or 2.

Related

source
Statistics.covMethod
cov(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::LTDCovariance: Lower tail dependence covariance estimator.
  • X::AbstractMatrix: Data matrix of asset returns (observations × assets).
  • dims::Int: Dimension along which to compute the covariance.
  • kwargs...: Additional keyword arguments passed to the variance estimator.

ReturnsResult

  • sigma::Matrix{Float64}: Symmetric matrix of lower tail dependence covariances.

Validation

  • Asserts that dims is either 1 or 2.

Related

source