INNER CODE UNIT · Python
_spearman
jialuechen/flowforge · flowforge/diagnostics/flow.py:55
def _spearman(a: pd.Series, b: pd.Series) -> float:
return float(a.rank().corr(b.rank()))
part = o["participation"].to_numpy(dtype=float)
tail = np.sort(part[part > 0])
k = max(len(tail) // 10, 10)
top = tail[-k:]
if len(top) > 1 and top[0] > 0:
denom = float(np.mean(np.log(top / top[0])))
hill = 1.0 / denom if denom > 0 else np.nan
else:
hill = np.nan
return {
"corr_size_participation": _spearman(size_pct_adv, o["participation"]),
"corr_size_marketcap": _spearman(size_pct_adv, o["market_cap"]),
"participation_tail_exponent": float(hill),
"mean_participation": float(part.mean()),