精华帖子

Lasso 滚动多因子选股策略

由bq5973r5创建,最终由bq5973r5 被浏览 8 用户

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

标签

多因子选股
{link}