f/fundlab/factors.log
Greg Pomerantz f68b239b9a Factor screen (v2, 35 drivers) + return-driver clusters
factors.py: full OLS of all 2,384 funds on a 35-driver basis
(overinclusive, no portfolio-corr screening - corr is a replacement
signal, not a rejection). v1's 21 + lqd/hyg/prefs/emb/tip/shy/vtv/
8 sectors/CTA/commodities. Basis fixes: drop vea/vug (dupes of
efa/qqq), drop finux (TERMINATED 2017 - silently zeroed the
complete-case mask; v1 forward selection never hit this), drop bil
(shv/bil near-null -> offsetting shv+64/bil-54 noise fits),
residualize vblix on ivv+tlt (pure vol axis), ridge 0.02.

cluster.py: hierarchical tree saved but fixed-k cuts degenerate
(most funds are blends -> one 2250-fund blob); k-means++ (deterministic)
is the useful grouping, re-run live in-app for any k.

app: Return-driver clusters expander (k slider 10-60, summary table,
member table sorted by alpha-t). Findings at k=30 in RESEARCH.md.
2026-08-27 08:35:42 -04:00

15 lines
378 B
Plaintext

07:30:21 factor screen: 2384 funds, 2384 to do
07:30:21 building driver panel (37 axes)
07:30:23 200/2384
07:30:26 400/2384
07:30:29 600/2384
07:30:33 800/2384
07:30:36 1000/2384
07:30:40 1200/2384
07:30:44 1400/2384
07:30:47 1600/2384
07:30:51 1800/2384
07:30:54 2000/2384
07:30:57 2200/2384
07:31:00 factor screen done: 2384 funds -> factor_results.json