Bivector component analysis decomposes the lag-moment matrix into symmetric
and antisymmetric parts, revealing the rotational lead-lag structure that
standard PCA destroys.
--
Dominant Strength (bps)
--
Antisymmetric %
--
Leaders
--
Laggers
--
Modes Detected
Supporting Evidence
Action Framework
High Rotation & Antisymmetric Dominant
Active sector allocation will be rewarded. Overweight leaders, underweight laggers. Momentum strategies have edge.
High Rotation & Symmetric Dominant
Lead-lag exists but co-movement is stronger. Sector-neutral stock-picking preferred alongside rotation tilts.
Low Rotation & Antisymmetric Dominant
Weak rotation with some directional signal. Modest sector tilts; beta exposure matters more.
Low Rotation & Symmetric Dominant
Sectors moving as a correlated block. No sector differentiation. Focus on market-level exposure.
Overview
Standard PCA decomposes the covariance matrix — a symmetric
object — into orthogonal principal components. This is useful
for understanding contemporaneous co-movement, but it fundamentally
cannot capture lead-lag relationships because symmetry
erases directionality.
The key insight is that the lag-$\tau$ moment matrix
$M_\tau = X_t^\top X_{t+\tau} / T$ is not symmetric.
Its antisymmetric component $B_\tau = \frac{1}{2}(M_\tau - M_\tau^\top)$
encodes pure rotation: which sectors lead and which lag.
Why PCA Misses Rotation
PCA uses the symmetric covariance $\Sigma = X^\top X / T$
Symmetry implies $\text{Cov}(i,j) = \text{Cov}(j,i)$ — no directionality
The lag-moment matrix breaks this symmetry: $M_\tau(i,j) \neq M_\tau(j,i)$
The antisymmetric part has purely imaginary eigenvalues $\pm i\omega_k$, encoding rotation strengths
Strengths
Captures lead-lag that PCA misses
Geometric interpretation via bivectors
Rotation strength is a scalar signal
Naturally ranks sectors by lead/lag
Limitations
Assumes linear lead-lag structure
Sensitive to choice of lag $\tau$
Requires sufficient sample length
Rotation may be unstable over time
How It Works
The method proceeds in four steps, from raw sector returns to a
ranked hierarchy of leading and lagging sectors.
Compute the lag-$\tau$ moment matrix.
Given a matrix of sector returns $X \in \mathbb{R}^{T \times n}$,
compute $M_\tau = X_t^\top X_{t+\tau} / T$. This captures how
each sector at time $t$ relates to every other sector at time $t+\tau$.
Decompose into symmetric + antisymmetric.
Split $M_\tau$ into $C_\tau = \frac{1}{2}(M_\tau + M_\tau^\top)$
(the symmetric part, analogous to covariance) and
$B_\tau = \frac{1}{2}(M_\tau - M_\tau^\top)$
(the antisymmetric part, encoding rotation).
Eigendecompose the antisymmetric part.
The eigenvalues of $B_\tau$ come in conjugate pairs $\pm i\omega_k$.
The magnitude $\omega_k$ is the rotation strength for the $k$-th
rotation plane.
Extract the sector hierarchy.
Each eigenvector $v_k = a_k + i\,b_k$ defines a rotation plane.
The real part $a_k$ points in the leading direction; the imaginary
part $b_k$ points in the lagging direction. Project sectors onto
these directions to rank them.
$B_\tau$ is skew-symmetric: $B_\tau^\top = -B_\tau$. It encodes the pure rotational component.
Eigenstructure of $B_\tau$
$$B_\tau\,v_k = i\,\omega_k\,v_k$$
Eigenvalues come in conjugate pairs $\pm i\omega_k$. The rotation strengths $\omega_k > 0$ quantify how much lead-lag structure exists in each rotation plane.