← 返回文章库

删掉没有未来收益的样本后,因子胜率为什么变了

2026-10-24 · L5

删掉未来收益缺失的样本,因子胜率可能变得更好,也可能变差,因为评价对象已经改变。本例二十个形成时入池候选中,十二个标签可得,八个严格正收益,完整案例胜率为三分之二;对原二十人的胜率只能给四成至八成的逻辑界限,不能把未观察八人的收益默认为零后宣布总体胜率四成。

形成名单先与未来标签分开

构造形成时刻2026年10月1日09:00Z,二十只候选全部满足预先条件,可知特征从二十依次降到一。评价截点设为10月15日09:00Z,未来标签收益单位百分数,定义“胜”为严格大于零,所以零收益不算胜。样本与日期纯属教学,不是任何真实因子选股结果。

完整构造输入如下。时间和状态按本篇约定解释,JSON中的null代表未知而非零:

{
  "evaluation_time": "构造2026-10-15 09:00Z",
  "formation_time": "构造2026-10-01 09:00Z",
  "reasons": [
    "已知",
    "已知",
    "已知",
    "已知",
    "已知",
    "已知",
    "已知",
    "已知",
    "已知",
    "已知",
    "已知",
    "已知",
    "窗口未满",
    "窗口未满",
    "窗口未满",
    "停牌未取到退出价",
    "停牌未取到退出价",
    "源缺失",
    "源缺失",
    "退市终局待核"
  ],
  "values": [
    4,
    3,
    -2,
    1,
    0,
    -1,
    5,
    -3,
    2,
    1,
    2,
    3,
    null,
    null,
    null,
    null,
    null,
    null,
    null,
    null
  ],
  "win_rule": "收益严格大于0"
}

形成时刻只使用入池状态和可知特征,不允许先查看哪些候选未来有标签再选池。前十二个标签完整,后八个缺失:三人窗口未满、两人停牌未取到退出价、两人来源缺失、一人退市终局待核。原因可以影响补证据路径,却不直接给出收益符号;特别是退市终局未知不等于必然零回收。

把二十行留在主台账,标签可得表作为评价子视图。这与“只在价格文件里保留还能下载到的证券”不同,候选身份不能随文件齐全程度变动。否则后续连缺失人数都无法确认,胜率分母悄悄从形成名单变成可得标签名单,报告却仍写成同一策略的全部观察。

二十个候选的状态逐行核对

入池原因形成时可知特征标签收益百分数标签状态证券
是已知204可得S01
是已知193可得S02
是已知18-2可得S03
是已知171可得S04
是已知160可得S05
是已知15-1可得S06
是已知145可得S07
是已知13-3可得S08
是已知122可得S09
是已知111可得S10
是已知102可得S11
是已知93可得S12
是窗口未满8—缺失S13
是窗口未满7—缺失S14
是窗口未满6—缺失S15
是停牌未取到退出价5—缺失S16
是停牌未取到退出价4—缺失S17
是源缺失3—缺失S18
是源缺失2—缺失S19
是退市终局待核1—缺失S20

S01至S12里八个正、三个负、一个零,胜数八、分母十二;标签覆盖率是十二除二十等于六成。后八人的特征排名更低,但本文没有证据说低特征者必亏,不能因为它们靠后就选择一个更乐观的总体估计。同样,缺失原因与风险可能有关,也不能凭常识给每个原因硬指定收益。

完整案例仅回答“标签可得的十二个人里有多少正收益”。它不是错误的算术,错误在于省略条件,把这个条件胜率说成二十人总体胜率。即使缺失比例很小,也应先明确总体对象;比例本身不能证明缺失随机,更不能证明剩余样本代表全部候选。

完整案例与原候选上下界

分子胜数分母口径胜率百分数
812完整案例66.666667
820缺失全部不胜的下界40.0
1620缺失全部胜的上界80.0

八个已知胜者已经确定,所以二十人中最少八胜;其余八个未知者全部胜则最多十六胜。下界四成、上界八成,中间所有离散结果都有可能。这个界限只对本篇二十个候选和严格正收益定义成立,不是置信区间,没有采样概率解释,也不是对下一批真实证券胜率的预测。

将缺失都填零,会得到与下界同一个四成数字,但含义不同。下界明确保留未知,只表示最坏胜数;填零则伪造了八个确定零收益,后续均值、分布和排名都会被改变。相同汇总数字不意味着数据处理等价,必须同时保留状态和情景标签。

缺失中有多少胜者,结果就怎样改变

总分母总胜数缺失中胜数胜率百分数
208040.0
209145.0
2010250.0
2011355.0
2012460.0
2013565.0
2014670.0
2015775.0
2016880.0

八个未知里若四个胜,总胜十二除二十为六成;若六个胜,得七成。完整案例三分之二落在某些离散总体胜率之间,但没有理由把它直接填给缺失组。只有另加缺失机制或概率模型,才可能做统计推断;本篇没有这些输入,所以不把中点六成称为“修正后真实胜率”。

缺失原因台账如下:

人数缺失原因
3窗口未满
2停牌未取到退出价
2源缺失
1退市终局待核

窗口未满可以等待预先设定的观察窗真正结束,再冻结补录版;停牌缺价需要查可执行退出或明确评价政策;来源缺失可换源核对,但要保持同一标签定义;退市终局待核需要真实终止现金流证据。不同处置可能改变标签可得状态,不能把全部原因一律用前值填零来追求完整矩阵。

补到标签后怎样避免改写历史选择

假设后来取得某个候选真实标签,先在原二十行上补一格,并记录取得时刻、来源和评价窗口。形成时特征与入池决定保持冻结,因为未来补到结果不是当时已有信息。重新生成覆盖率、完整案例分母及上下界;一个未知变已知,会缩小界限,但最终方向由补到的胜负决定。

若发现标签定义本身改变,例如持有期从五日改为十日,那是另一套评价任务,不应只补缺行而保持旧十二人的五日标签。统一窗口、价格口径、费用和终止事件处理,才有可比较的胜率。本文没有交易费用与真实可成交退出建模,标签只是构造收益符号,不能据此推断策略利润或执行能力。

按特征分组统计缺失也有意义。本例缺失全落后八位,提醒审阅者原样本和完整案例的特征分布不同;但这只是构造的一种非随机结构,不能由此断言任何现实缺失都按排名发生。完整台账让读者看到选择发生在哪里,而不是用一个胜率数字隐藏选择过程。

官方方法与能做的检查

scikit-learn Common pitfalls第12.2节说明预测时不可得信息不能用于建模,本文读取该节及预处理示例,核对日2026年10月24日。它不提供本篇缺标签胜率修正公式;四成至八成来自已知胜数与未知人数的有限枚举,不能声称已经调用某个机器学习包修复偏差。

实际核对可从形成名单左连接标签开始,检查每个原候选仍有一行,输出匹配状态和原因,再计算条件胜率与原总体界限。连接后若只保留both,待核八人会消失,这种代码即使顺利运行也改变了问题。应把“样本覆盖不足”保留在报告标题或图表旁,让读者先知道分母是谁,再解释数值。

本篇不以胜率替代收益风险。八次小胜与四次大亏仍可能合计亏损,而未知者的金额影响也不能从符号上下界推出。完整案例、标签覆盖与总体界限是三个互补产物,任何一个都不自动给出因子有效、无偏或可投资的结论。

数据六项自查母文用于检查总体数据健康。样本分割基础工具只辅助理解训练与检验样本的划分;本篇专门的逐行审计由教学表和标准库脚本完成,工具没有内置这些检查。相关核对可继续阅读行情时区夏令时对齐、行情API分页截断检查。

道积君编辑组,AI辅助编写与核算。本文为构造教学样本,公开脚本只使用Python标准库,默认在脚本同目录生成UTF-8、LF换行的JSON;不依赖pandas、网络或仓库。没有实测第三方框架或实际交易系统,不据此推断真实收益、成交或数据源可靠性。

复算资料

本篇编号DJ4-051。下载Python复算脚本(文本)与构造输入输出JSON,按编号核对本篇。脚本改存为.py后可用Python标准库运行,数据不是实际用户记录。

这个页面有问题?

提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。