M/05 · Variedade de Estratégias
Geometria PCA + UMAP da população de estratégias
Embeddar 100.000 estratégias walk-forward de um espaço métrico 90-D em 2-D, então perguntar se a robustez é uma região contígua ou uma constelação de ilhas isoladas.
A matemática
Cada estratégia é um ponto x ∈ ℝᵈ em um espaço de features de alta dimensão cujos componentes são (Sharpe, PF, MaxDD) por janela nas últimas 6 janelas walk-forward, avaliados sob a suíte de perturbações proprietária da Daru Finance. Com N = 100.000 estratégias temos uma matriz N × d X. Perguntamos: nesse espaço, estratégias robustas se agrupam em cluster, e se sim o cluster forma uma única região conexa ou muitas ilhas isoladas?
Projeção em componentes principais
Centralize as colunas de X e tome a decomposição em valores singulares:
é a projeção linear sobre as duas direções principais líderes. No corpus de produção PC1 explica 16,6% da variância e PC2 explica 10,0%, ou seja, o embedding é intrinsecamente de baixa dimensão; duas coordenadas já capturam cerca de um quarto do sinal em 90.
UMAP como lente não-linear
PCA preserva geometria global mas ignora vizinhanças. UMAP (McInnes & Healy 2018) ajusta um conjunto simplicial fuzzy μ no espaço de entrada (cada aresta k-NN ponderada por uma métrica Riemanniana local) e um conjunto correspondente ν em 2-D, então minimiza sua entropia cruzada
Sob hipóteses de continuidade em uma variedade Riemanniana uniforme isso preserva topologia local ao mesmo tempo em que rasga a geometria global. O resultado é um layout que expõe vizinhanças apertadas que o PCA achata.
Conectividade e modularidade
Construa o grafo k-NN (k = 15) no embedding 2-D. Seja A sua matriz de adjacência, k_i o grau do nó i, m a contagem de arestas, e c_i um rótulo em {robusto, frágil}. A modularidade de Newman
mede o quanto a densidade de arestas dentro de cada rótulo excede o nulo do modelo de configuração. Usamos um proxy barato Q̃ = fração de arestas cujos endpoints compartilham um rótulo. A baseline de chance é r̄² + (1−r̄)²; com r̄ = 0,0687 isso dá 0,872. O valor empírico no embedding de produção é Q̃ ≈ 0,903, um lift real mas pequeno sobre a chance, consistente com clusterização fraca.
Exemplo trabalhado
- 10 ativos com WFO mais profundo, subamostragem estratificada de 100.000 estratégias, feature de métricas de 6 janelas.
- Taxa de robustez
r̄= 6,87% → 6.869 robustas vs 93.131 frágeis. - Proxy de modularidade UMAP 0,903 (vs baseline 0,872); proxy PCA 0,911.
- Número de componentes conexos no subgrafo k-NN apenas-robustas: 1.229 para UMAP e 938 para PCA. Média ≈ 5,6 estratégias robustas por ilha.
O demo interativo abaixo recomputa a estatística de conectividade toda vez que você move o slider τ, arraste-o para baixo e o conjunto robusto se mescla; arraste-o para cima e ele se estilhaça.
Demo: synthetic strategy manifold
N points sampled from one diffuse fragile cloud + K tight robust islands. Sweep the robustness threshold τ; watch how the robust subset partitions.
Amber: r ≥ τ (robust). Grey: r < τ (fragile). Connectivity is computed on an 8-NN graph over the amber subset using union-find. Lift over baseline = +0.027. With the production corpus (N=100,000, real metrics) the analogous numbers are 6,869 robust points, ~1,229 components, Q̃ ≈ 0.903.
Figuras
Por que isso importa para estratégias sistemáticas
Muitos procedimentos de busca sobre o espaço de estratégias, subida de gradiente em um score suavizado, crossover evolutivo, otimização Bayesiana, assumem implicitamente que a região robusta é localmente convexa: que pequenas perturbações de uma estratégia robusta permanecem robustas. A análise de conectividade contradiz diretamente essa suposição. A população robusta não é uma única variedade conexa em qualquer escala que verificamos; é uma constelação de ilhas de ~5–8 estratégias separadas por gaps frágeis.
Operacionalmente, duas consequências. Primeiro, edge não pode ser confiavelmente alcançado perturbando uma estratégia conhecida como boa, os vizinhos de uma estratégia robusta são frágeis com alta probabilidade. Segundo, o subconjunto robusto deve ser enumerado combinatorialmente sobre a grade de indicador/transformação/confluência, não recuperado por busca local. O pipeline que os modelos a jusante consomem já respeita isso: candidatos são gerados combinatorialmente e só então filtrados, nunca otimizados em direção a.
Reprodutibilidade
DaruFinance / strategy-manifold
Python · implementação de referência open-source
Invocação mínima
import numpy as np
from sklearn.decomposition import PCA
from sklearn.neighbors import kneighbors_graph
import umap
# X: N x d feature matrix (rows = strategies, cols = per-window metrics).
# r: length-N {0,1} vector, 1 = passed the proprietary robustness funnel.
N, d = X.shape
# 1) Linear baseline.
pca = PCA(n_components=2).fit(X)
T_pca = pca.transform(X)
print("PC1 var:", pca.explained_variance_ratio_[0])
# 2) Non-linear embedding.
emb = umap.UMAP(n_neighbors=15, min_dist=0.1, random_state=0).fit_transform(X)
# 3) Connectivity of the robust subset under the 15-NN graph.
A = kneighbors_graph(emb, n_neighbors=15, mode="connectivity")
A_robust = A[r == 1][:, r == 1]
from scipy.sparse.csgraph import connected_components
n_components, _ = connected_components(A_robust, directed=False)
print("robust components:", n_components)
Referências
- [1]Pearson, K. (1901). On Lines and Planes of Closest Fit to Systems of Points in Space. Philosophical Magazine 2(11), 559–572.
- [2]McInnes, L., Healy, J., & Melville, J. (2018). UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction. arXiv:1802.03426.
- [3]Newman, M. E. J. (2006). Modularity and community structure in networks. PNAS 103(23), 8577–8582.

