找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3464

积分

0

好友

474

主题
发表于 2026-2-15 07:04:16 | 查看: 38| 回复: 0

这个行业里有个挺反直觉的现象:真正为数据发愁的,往往不是没数据的人,而是数据太多的人。当你能看到的东西越多,你看清的东西反而越少。

新人入行,最大的兴奋点是“我终于爬完了全网的财经新闻”或者“我搞到了某家机构的供应链数据”。眼里闪着光,觉得信息差就是阿尔法。而在这个行当里待了七八年的人,看到一堆新数据的第一反应,往往是皱眉头——不是不认可数据的价值,而是太清楚接下来要面对什么了。

当数据的维度膨胀到一定程度,你离真相未必更近,反而可能更远。因为信噪比,正在以一种你未必察觉的方式,快速衰减。

数字隧道中寻找自然绿意的视觉隐喻

一、信噪比衰减的数学本质:为什么维度越高,信号越弱

先做一个思想实验。

假设你有一个理想的预测信号,它对未来收益的真实相关系数是ρ。在单变量模型里,你只需要估计这一个参数。现在你把维度扩大到p维,其中只有前k个维度包含真实信号,其余p-k个都是纯噪声。

如果只考虑线性关系,你需要估计p个参数。但如果考虑所有二阶交互项,参数数量会膨胀到O(p²)——而这在高维数据挖掘中很常见,因为你往往不知道信号是线性的还是非线性的。

问题在于,在有限样本T下,参数空间的膨胀会带来估计误差的累积。每个噪声变量都会贡献一部分虚假的相关性。当p接近T时,你几乎可以完美拟合任何随机序列——这就是统计学里常说的“维数灾难”。

更麻烦的是,这些噪声变量不是独立存在的。它们会通过模型筛选过程,与真实信号产生复杂的交互。比如两个噪声变量,恰好与真实信号存在某种虚假的相关结构,模型就可能错误地保留它们,而把真实信号挤出去。这种“虚假结构”的出现概率,随着维度升高而非线性增长。

这也是为什么很多高维因子模型,样本内曲线漂亮得像教科书,一上实盘就崩。它们捕捉的不是真实的预测关系,而是高维空间里的偶然相关性。

二、另类数据的三个系统性偏差:谁在贡献真正的信息

另类数据的普及,把这个问题放得更大了。

卫星影像、供应链数据、舆情文本、搜索指数……听起来都很fancy。但真正用过的人都知道,这些数据带着三类很难绕开的偏差。

第一类是样本选择偏差。 以卫星影像为例,能被卫星持续监测的企业,往往需要具备几个特征:固定资产规模够大(有厂房)、地理位置够集中(便于成像)、业务模式够稳定(便于建立预测模型)。这些企业在全市场占比不到10%,而且集中在制造业、零售、物流这几个行业。你用这套数据构建因子,本质上是在一个有偏的子集上找规律,而这个子集的收益特征,和全市场是两回事。更麻烦的是,这些能被监测到的企业,往往是机构研究覆盖最充分的那一批——你想通过卫星数据获得的信息优势,可能早就被卖方的分析师用调研电话覆盖了。

第二类是时间窗口偏差。 多数另类数据的有效预测窗口,比传统财务数据短得多。供应链数据可能只在季报发布前两周有预测能力,舆情情绪指标的有效半衰期,可能只有三到五个交易日。但常见的处理方式,是用固定窗口滚动计算,结果就是把不同时效性的信号混在一起,算出来的因子早就滞后于市场了。比如你用过去30天的舆情均值预测下个月的收益,但舆情的预测能力其实只集中在事件发生后的48小时,那你这30天均值里,有28天都是噪声。

第三类是清洗过程引入的人为偏差。 文本数据的实体识别、情感打分,卫星图像的目标检测、车流统计——每个环节都需要人工设计的规则或训练好的模型。这些规则和模型本身,就带着设计者的先验判断。当多个团队用相似的工具链(比如通用的BERT模型或开源的YOLO算法)处理相同的数据时,最后生成的因子会高度同源。原本指望的差异化信息,早就稀释得差不多了。更隐蔽的问题是,这些清洗规则本身也可能过拟合——你为了提升样本内的回测表现,不断调整情感词典的权重,最后得到的可能是一个只对历史数据有效的清洗流程。

三、过拟合的另一种形态:参数化路径依赖

还有一个更隐蔽的问题,我把它叫做“参数化路径依赖”。

假设你有一套包含1000个潜在特征的高维数据。你决定先用互信息排序选出前50个,然后用LASSO做二次筛选,再用随机森林训练。这一套流程跑下来,你在每个环节都做了基于样本内信息的选择——特征筛选的阈值、LASSO的惩罚系数、随机森林的树深度和叶子节点。每一个选择,都是在一个条件分布上做优化。

问题在于,这些选择之间不是独立的。特征筛选阶段保留的变量,会影响LASSO的最优惩罚系数;LASSO筛选后的特征集,又会影响随机森林的超参数选择。这种链式依赖,使得整个建模过程的自由度,远大于各环节自由度的简单相加。最后得到的模型,不仅拟合了数据,还拟合了你选择的路径。

这就好比一个人先选了考试范围,再选了复习资料,最后选了答题策略,然后用这套流程考了满分。你说他考的是知识,还是他自己设的局?

要识别这种路径依赖带来的过拟合,学术圈给出的答案是嵌套交叉验证——相当于让你在多个不同的“考试范围、资料、策略”组合上反复测试,看哪一套流程真正能经得起换题的考验。但在高维数据场景下,嵌套交叉验证的计算成本,高到大多数团队根本跑不起。

更常见的做法是,把建模流程固定下来,尽量减少自由选择的环节。用一部分样本内拟合,换流程的稳定性。

这其实是一个取舍:你要的是一个看起来漂亮的模型,还是一个不容易垮掉的模型?

四、降维的两个技术方向:稀疏性与结构化

面对信噪比困境,主流的应对思路其实就两条,对应两种不同的降维哲学。

一条是稀疏性路径。 核心假设是:真实的有效信号是稀疏的,p维特征里真正起作用的就那么几个。目标是通过正则化,让这几个特征被识别出来,其余的被压缩成零。LASSO是这个思路的代表,它的目标函数是 min ||y - Xβ||² + λ||β||₁,通过L1惩罚实现稀疏解。后来的非凸惩罚(比如SCAD、MCP)和自适应LASSO,在理论上能做到“选择一致性”——样本量够大时,能以概率1选出正确的特征集。

但稀疏性路径有个前提:真实信号确实能用少数线性特征表示。如果信号本身就是高度非线性的,或者分布在大片弱信号里,稀疏性假设就不成立了。比如动量效应可能是由过去20个交易日每天的交易行为共同贡献的,硬要选出其中最重要的几天,反而会丢失信息。

另一条是结构化路径。 思路是:与其在原始特征空间里硬筛,不如先把特征分组或变换,在更低的维度上建模。主成分分析(PCA)是最经典的做法,但它只能捕捉线性相关结构。近几年受到关注的方法,包括自编码器的非线性降维、因子模型里的拟最大似然估计(如Bai和Ng提出的PANEL方法)、还有基于互信息的特征聚类(如簇质心选择)。

结构化路径的好处是能保留数据的整体结构,不是硬性截断。但代价是降维后的新特征,往往说不清是什么——你很难解释第五个主成分到底对应哪条经济逻辑。而且这类方法对数据质量要求很高,如果原始数据里混着大量噪声,降维后的结果也可能被噪声主导。

这两条路没有绝对的对错,更多取决于你的研究场景和目标。是想把模型解释清楚,还是只要能赚钱就行?是相信稀疏的强信号,还是押注分布的弱信号?不同的选择,通向不同的方法论,也通向不同的风险敞口。

五、实践中如何取舍:基于信号来源的分类处理

从实践看,比较务实的做法是根据信号来源做分类处理。

对于结构化数据(比如财务指标、价量数据),信号往往有经济学解释,信噪比也相对高。这类数据适合用稀疏性路径,目标是剔除冗余、保留核心。可以先按业务逻辑筛一轮(比如只保留和盈利能力、估值、成长性相关的指标),再用统计方法做二次筛选。比如你可以先用Fama-MacBeth两步法筛选出显著的单因子,再用LASSO处理多重共线性。这样兼顾可解释性和统计稳健性。

对于非结构化数据(比如文本、图像),信号分布稀疏且信噪比低。这类数据更适合结构化路径,先通过特征提取把原始数据压缩成低维表示,再把这些表示当输入。文本数据可以用TF-IDF或Word2Vec,图像数据可以用预训练的CNN提取特征。难点在于特征提取阶段就可能丢信息——比如用通用的Word2Vec,可能抓不住财经领域的特定语义。一个可行的补救是领域微调,用财经语料对预训练模型做二次训练。

还有一类特殊的高频时序数据,虽然也可以归为非结构化,但它的处理逻辑完全不同。对于这类数据(比如逐笔成交、订单流),信号往往藏在微观结构的动态变化里。这类数据需要的不是降维,而是特征工程——把原始的高频数据,转化成有经济含义的低频特征。比如从逐笔成交数据里提取订单不平衡度(买单量减卖单量除以总单量)、流动性消耗率(每单位价格变动消耗的订单量)、报价斜率(买卖价差除以最优报价深度)。这一步转化,本质上是用业务知识做降维。

六、降维本身也需要降维:交叉验证的不可绕过性

关于降维,还有一个经常被忽视的问题:降维方法本身的选择,也是一种形式的参数。

无论你用PCA还是自编码器,无论你保留5个主成分还是50个,这些决策本身都是基于样本内信息做出的。如果你用全部数据计算PCA载荷,然后用同样的数据评估主成分因子的预测效果,你已经在无意中引入了信息泄露——因为你用来降维的统计量(比如特征向量)是从全体数据中学习得到的,它本身就包含了未来信息。

这个问题在统计学中有系统的讨论。Hastie、Tibshirani和Friedman在《The Elements of Statistical Learning》中花了大量篇幅讲一个核心原则:

任何从数据中学习到的结构,都必须放在交叉验证的框架下评估。

对于降维来说,这意味着:

如果你要做PCA降维,正确的做法是在每一折训练集上重新计算主成分载荷,然后将这些载荷投影到验证集上。如果你要做特征筛选,应该在每一折训练集上重新计算特征重要性,而不是在整个数据集上先筛完再交叉验证。

这个原则的一个直接推论是:静态降维(用全体数据计算载荷然后做预测)必然高估模型表现。原因是降维过程本身已经用到了未来信息——那些主成分的方向,是在看到全部数据后确定的。

更隐蔽的是,这个问题的严重程度与维度成正比。当p远大于T时,第一主成分的方向可能主要由噪声主导,而用全体数据算出的这个噪声方向,在样本内当然与某些收益序列相关,但样本外这种关系会迅速瓦解。只有滚动降维——每一期只用历史数据重新估计降维变换——才能避免这种前瞻性偏差。

这个道理听起来简单,但在高维数据场景下特别容易被忽视,因为计算成本太高。比如你有10年日度数据,要做滚动PCA,意味着你要在每一天重新计算一次载荷,计算量是静态PCA的2500倍。但代价是,如果你不这么做,你根本无法确认你的降维方法本身有没有过拟合。

七、信噪比困境的终局:做减法比做加法更难

写了这么多,不是为了否定高维数据和复杂模型的价值。而是想说一个事实:当数据维度膨胀到一定程度,方法论的选择比单纯的算力投入更重要。那些还在靠堆数据、堆模型来挖因子的团队,可能会越来越吃力——不是因为别人数据更多,而是因为他们自己的信噪比,已经进了递减区间。

降维不是一个技术问题,它是一个取舍问题。放弃哪些数据、压缩哪些维度、接受多少信息损失,这些选择最终决定了你能留下多少真信号。

怎么选,没有标准答案。不同的资金属性、不同的风险偏好、不同的研究周期,对应的最优解都不一样。唯一能确定的是,不加选择的全盘接收,大概率是最差的那个解。

想清楚自己要放弃什么,往往比抓住所有机会更重要。因为在这个数据爆炸的时代,真正的核心竞争力,不是你比别人多抓到多少信号,而是你知道该忽略什么。

手持发光球体仰望数据的未来感意境图





上一篇:CTA策略因子挖掘遇瓶颈后的深度思考与进阶路径
下一篇:老金开源Claude Code多Agent编排技能:一键自动组队,告别手动拼装提示词
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-23 11:44 , Processed in 0.810489 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表