Online downside / semicovariance (lower-partial-moment) covariance skater
Why
The allocation package's Thurstone "ability tilt" becomes tail-risk-consistent when the correlated race is driven by a downside covariance instead of the ordinary (symmetric) covariance. The result (tail-consistency, written up in allocation/papers/thurstone-portfolios): a cluster of assets that crash together (lower-tail dependence) de-duplicates to a single competitor and is de-weighted, with the decorrelated hedge up-weighted — a de-weighting keyed to genuine tail co-movement that a symmetric Σ cannot see.
A simulation sweep (A + 99-name Clayton lower-tail cluster) shows the downside semicovariance recovers almost all of the effect that the full tail copula produces, while full covariance is tail-blind. So the practical lever is an online downside-covariance estimator.
Ask
A skater-style online estimator (same partial_fit / covariance_ shape as the existing precise covariance skaters, so it drops straight into ThurstonePortfolio(covariance=...) in allocation) that maintains a co-lower-partial-moment matrix:
S_ij = E[ min(r_i - τ_i, 0) · min(r_j - τ_j, 0) ]
with:
- online/EWMA means for the threshold
τ (running mean, or a fixed target return),
- the usual streaming
partial_fit(dict-or-row) / covariance_ interface,
- an option to return the downside correlation (unit diagonal) and a PSD / nearest-correlation repair (the race needs a valid correlation to sample from),
- ideally a
precise-style f-function wrapper for the buffered/streaming convention.
Note
I think precise used to carry a semivariance estimator — if so, this may be a restore/port rather than a fresh build. Worth checking the history.
Acceptance
- streams row-by-row and over a changing key set (river-style), like the other skaters;
- matches a batch downside-semicovariance on static data;
- handles
τ = running mean and τ = fixed threshold;
- returns a valid (PSD, unit-diagonal) downside correlation on request.
Filed from the tail-consistent Thurstone work in microprediction/allocation.
Online downside / semicovariance (lower-partial-moment) covariance skater
Why
The
allocationpackage's Thurstone "ability tilt" becomes tail-risk-consistent when the correlated race is driven by a downside covariance instead of the ordinary (symmetric) covariance. The result (tail-consistency, written up inallocation/papers/thurstone-portfolios): a cluster of assets that crash together (lower-tail dependence) de-duplicates to a single competitor and is de-weighted, with the decorrelated hedge up-weighted — a de-weighting keyed to genuine tail co-movement that a symmetric Σ cannot see.A simulation sweep (A + 99-name Clayton lower-tail cluster) shows the downside semicovariance recovers almost all of the effect that the full tail copula produces, while full covariance is tail-blind. So the practical lever is an online downside-covariance estimator.
Ask
A skater-style online estimator (same
partial_fit/covariance_shape as the existingprecisecovariance skaters, so it drops straight intoThurstonePortfolio(covariance=...)inallocation) that maintains a co-lower-partial-moment matrix:with:
τ(running mean, or a fixed target return),partial_fit(dict-or-row)/covariance_interface,precise-stylef-function wrapper for the buffered/streaming convention.Note
I think
preciseused to carry a semivariance estimator — if so, this may be a restore/port rather than a fresh build. Worth checking the history.Acceptance
τ= running mean andτ= fixed threshold;Filed from the tail-consistent Thurstone work in
microprediction/allocation.