量化多因子模型中异常值清洗的“三倍标准差法(3-Sigma)”代码落地

发布时间:2026-06-11 14:12:32 来源: 财金股小编

“通达信选股/做T/主力检测器”炒股指标(付费版免费送,附教程和学习视频)

在构建A股量化多因子选股模型或运行复杂的策略回测时,散户投资者最常遇到的底层痛点之一是:某些计算出来的因子得分在绝大多数股票上表现很正常(如普遍在10%左右),但由于市场上某一只股票当天遭遇了突发停牌、极端对倒或者进行了罕见的重大资产重组,导致这只个股对应的因子数值出现了一个大到令人匪夷所思的惊天数字(例如暴增至 10000%)。

如果不对这些极端的数据异常值(Outliers)进行提前清洗,直接将原始矩阵扔进Python代码中进行标准化排序或线性回归,这个孤立的巨大异常值会瞬间将整个全市场因子的平均值(Mean)和标准差(Std)强行拉偏。这会导致后续所有正常股票的打分结果发生严重扭曲,导致量化模型完全失真。因此,在多因子流水线中,必须强制执行第一道工序——基于三倍标准差法(3-Sigma Rule)的去极值处理。

三倍标准差法的底层统计学原理

三倍标准差法(又称拉依达准则)的科学依据建立在概率论经典的正态分布(Gaussian Distribution)基石之上。

在统计学中,如果一组海量的随机实验数据整体服从或近似服从正态分布,那么根据其概率密度曲线的数学特征可以得知:

测量值分布在距离平均值 ±1 倍标准差(μ±σ)范围内的概率约为 68.27%。

测量值分布在距离平均值 ±2 倍标准差(μ±2σ)范围内的概率约为 95.45%。

测量值分布在距离平均值 ±3 倍标准差(μ±3σ)范围内的概率高达 99.73%。

这意味着,在统计学概率上,偏离数据集平均值超过3倍标准差之外的数据(即分布在99.73%正常区间之外的边缘地带),其出现的概率仅为 0.27%。在量化工程中,我们可以判定这类数据不是源于市场的正常价格博弈,而是由于突发黑天鹅、数据接口报错或清算扰动引发的“野生噪点”,必须对其执行代码级的强制物理隔离或平滑修正。

核心技术实现:基于Pandas的3-Sigma去极值函数编写

在QMT本地原生Python环境或MiniQMT的多因子流水线中,我们通常使用 Pandas 和 NumPy 库来编写这道横截面清洗模块。标准的去极值实操代码实现如下:

import pandas as pd

import numpy as np

def winsorize_three_sigma(df_factor, factor_name):

"""

对指定的因子列执行标准的3-Sigma去极值清洗(Winsorization)

"""

第一步:计算该因子当前横截面全市场的平均值和标准差

factor_mean = df_factor[factor_name].mean()

factor_std = df_factor[factor_name].std()

第二步:精准确立数学意义上的上下安全边界红线

upper_bound = factor_mean + 3 * factor_std

lower_bound = factor_mean - 3 * factor_std

第三步:执行截断平滑(盖帽法修正)

凡是超越上限的极大异常值,强制将其覆写强行修改为上限值

凡是跌破下限的极小异常值,强制将其覆写强行修改为下限值

df_factor[factor_name] = np.where(df_factor[factor_name] > upper_bound, upper_bound, df_factor[factor_name])

df_factor[factor_name] = np.where(df_factor[factor_name] < lower_bound, lower_bound, df_factor[factor_name])

return df_factor

实操运行中的硬核避坑点:严防偏态分布下的数据误杀

虽然3-Sigma法在数学上非常完美,但在A股市场的实际量化建模中,散户投资者必须防范其在偏态分布(Skewed Distribution)下的致命红线。

3-Sigma法成立的硬性前置条件是“数据必须近似服从对称的正态分布”。然而,A股市场的部分基本面因子(如上市公司的总市值、单季度营业收入总量)在横截面上的分布具有极其强烈的“右偏特性”——市场上存在极少数市值高达数万亿元的巨型蓝筹航母,而绝大多数都是市值几十亿元的小盘股

如果在计算“市值因子”时直接套用上述 3-Sigma 代码,由于那些巨型蓝筹股的市值偏离均值过远,程序会无情地将它们判定为“数据噪点”,并将贵州茅台、工商银行等核心权重的市值得分全部强制盖帽强行修改为与中等市值股票相同的数值。这会导致后续的市值中性化回归彻底失效。

针对这类天生具有偏态属性的因子,在执行 3-Sigma 去极值之前,代码的第一行必须强制对原始因子值执行一次“自然对数变换(ln 或 log)”。通过对数轴的极度压缩,将狂野的右偏长尾分布强行拉回到完美的对称正态分布轨道上,此时再调用三倍标准差去极值,才能确保数据的绝对纯净与量化策略的稳健运行。

量化交易的核心优势,是用程序代替人工,规避情绪干扰、提升交易效率。而国金证券打破“验资等待”的限制,10万资金即开QMT/PTrade专业版,再加上线上办理的便捷、专业量化社群答疑与全程指导、超优惠的佣金费率加持,让普通投资者也能轻松解锁智能交易工具。



《量化多因子模型中异常值清洗的“三倍标准差法(3-Sigma)”代码落地》由财金股债券知识频道小编撰写,部分内容来自于网络,如有侵权请及时联系我们进行删除。如需转载请注明文章来源,理财有风险,投资需警慎。

“通达信选股/做T/主力检测器”炒股指标(付费版免费送,附教程和学习视频)
最新文章
热门标签
热门推荐