Lasso 滚动多因子选股策略
由bq5973r5创建,最终由bq5973r5 被浏览 6 用户
1. 策略概览
本策略是一套A股量化多因子选股方案:在沪深300与中证500成分范围内,先进行可交易性与基础质量过滤,再使用多个具备明确经济含义的因子构建特征,采用滚动训练的 Lasso 回归模型预测未来10个交易日收益,并据此排序选择Top股票构建组合,按固定节奏调仓。
- 交易市场:A股(沪深300+中证500)
- 预测目标:未来10个交易日收益
- 建模方法:标准化 + Lasso(L1正则的线性回归)
- 组合构建:Top20 等权
- 调仓频率:每10个交易日调仓一次
2. 股票池与数据过滤逻辑
为提高实盘可执行性与稳定性,股票池满足:
- 去ST、去停牌;
- 估值与规模有效:PE为正、流通市值为正;
- 剔除新股:上市天数 > 365;
- 仅在沪深300或中证500成分中选股(容量与流动性更好)。
3. 标签(预测目标)的数学定义
定义未来10日收益(标签)为:
4. 因子(特征)体系与经济含义
对每只股票构建特征向量(示例为6个因子):
5. 标准化(Z-score)的数学形式
由于因子量纲不同,先进行标准化以保证可比性。对训练集内每个因子 j:
6. Lasso 回归的数学目标函数(核心原理)
Lasso 在标准线性回归的基础上加入 L1 正则项,在每次滚动训练时求解:
它控制“克制程度”:越大越保守,越小越像 OLS。
这带来两个效果:
- 收缩(shrinkage):系数整体往0拉,减少极端权重;
- 稀疏(sparsity):部分系数直接变成0,相当于自动做变量选择。
Lasso 做的事可以一句话概括:在菱形可行域里找误差最小的点。
想象椭圆从中心一圈圈往外扩,第一次碰到菱形边界的那个相切点,就是 Lasso 的解。
关键在于:菱形有尖角。
椭圆第一次碰到边界时,很容易在尖角处相切。尖角又往往在坐标轴上。
落在坐标轴上意味着:某一个系数正好为0。
这就是 L1 正则产生稀疏性的几何直觉。
这张图讲的是:Lasso 的最优性条件(KKT)带来软阈值效应。
横轴可以理解为:不加 L1 时的估计或一次梯度更新会到哪里;纵轴是加了 L1 后最终输出的系数。
蓝线是不加正则的恒等映射 y=x。橙线是加 L1 后的输出:中间一段被压平。
所以它同时实现两件事:
小系数直接清零;大系数也会被减去一截变得更保守,这就是收缩。
举个数字例子,如果 lambda=1:
原本想更新到0.6,最后变0;原本想更新到2.3,最后变1.3。
这就是 Lasso 为什么既能做变量选择,也能抑制过拟合。
直观解释:L1 正则具有“软阈值”特性,会把弱信号或高度共线的因子系数压到0,实现“收缩 + 自动筛选”,在金融噪声环境下通常更稳健、更可解释。
7. 可扩展方向
- 加入行业/风格暴露约束、波动率目标控制;
- 从等权升级为风险平价或约束优化;
- 扩展因子维度(质量、成长、资金流、情绪等);
- 若样本更大、特征更多,可探索 LightGBM 等非线性模型,但需更严格的交叉验证与防过拟合机制。
策略源码(仅供参考):
https://bigquant.com/square/ai/2d230f50-ad5f-43b2-82d5-9b1f1f44b382