🔴 因子分析模块正确性(分层/换手率/IC) #4

Closed
opened 2026-08-01 08:25:12 +08:00 by shellway · 0 comments
Owner

关联主报告:#1 — alpha/factors.py

待办项

  1. quantile_returns L227-238 — 未按日期分组分箱

    • 直接对全序列 pd.qcut,混合不同日期股票,分层收益不可解释
    • 按日期 groupby 后分箱(先 rank(method="first") 避免重复边界报错)
  2. turnover L240-257 — 占位代码,返回的是自相关系数不是换手率

    • 函数内有 pass # 简化处理,调用会产生误导性结果
    • 实现真实组合换手率(相邻期 Top-K 持仓变化比例)
  3. ic_decay L214-225 — 方法错误(见"未来函数" issue 第 4 项)

  4. neutralize L75-100 — 行业虚拟变量共线性/缺失值/退化组

    • get_dummies 全类别 + 无常截距 → dummy variable trap;单样本行业组矩阵不满秩
    • drop_first=True、处理缺失、退化情况保护
  5. compute_ic L191-198 — 空数据分支返回 index=[0] 的 Series,改为空 Series

  6. FactorRegistry.register L30-32 — 同名因子静默覆盖,改为重复注册抛错

关联主报告:#1 — `alpha/factors.py` ## 待办项 1. **`quantile_returns` L227-238 — 未按日期分组分箱** - 直接对全序列 `pd.qcut`,混合不同日期股票,分层收益不可解释 - 按日期 groupby 后分箱(先 `rank(method="first")` 避免重复边界报错) 2. **`turnover` L240-257 — 占位代码,返回的是自相关系数不是换手率** - 函数内有 `pass # 简化处理`,调用会产生误导性结果 - 实现真实组合换手率(相邻期 Top-K 持仓变化比例) 3. **`ic_decay` L214-225 — 方法错误**(见"未来函数" issue 第 4 项) 4. **`neutralize` L75-100 — 行业虚拟变量共线性/缺失值/退化组** - `get_dummies` 全类别 + 无常截距 → dummy variable trap;单样本行业组矩阵不满秩 - `drop_first=True`、处理缺失、退化情况保护 5. **`compute_ic` L191-198 — 空数据分支返回 `index=[0]` 的 Series**,改为空 Series 6. **`FactorRegistry.register` L30-32 — 同名因子静默覆盖**,改为重复注册抛错
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: shellway/quanxiel#4