评估预测
核心问题除了“准不准”,一个预测还需要回答什么?
视频
待发布
预计 2026-10-18 17:30(北京时间)发布,以实际公开时间为准。
视频发布后会嵌入在这里,并加入 Bilibili 合集“量化与机器学习入门”。 预计时长约 10 分钟。
学习目标
- 区分三种预测:平均结果、结果范围、超过门槛的概率。
- 用 IC、分组和校准图评估预测。
- 识别过拟合的信号:样本内外落差、参数稍改结果就大变。
交互演示合成数据
制作中
校准图:改变模型的“自信程度”,看校准曲线
让 AI 带你做模拟数据
把下面的提示词整段复制给任意一个 AI 助手。它会先生成一份模拟的股票月度数据(设定对每一节都一样),再带你把这一节的分析做一遍。数据是模拟的,具体数字会和视频不同,但应该看到同样的规律。
任务(第 11 节):把三种预测各做一遍,再各自检验。
1. 按第 07 节的滚动方式训练岭回归(alpha=100),得到第 60 个月以后的分数。每个月把分数分成十组,算每组“相对收益”(ret_next 减当月平均)的平均,以及每组里相对收益大于 0 的比例。
2. 用同样的滚动方式训练两个分位数模型(HistGradientBoostingRegressor,loss="quantile",分位数取 0.1 和 0.9,150 棵树),预测相对收益的 80% 范围。数一数实际有多少比例落在范围里;再按 sigma 把股票分成五组,比较最稳和最不稳两组的平均范围宽度。
3. 训练逻辑回归(C=0.01),预测“相对收益大于 0”的概率。把概率分成 ≤45%、45%–50%、50%–55%、>55% 四档,每档比较平均预测概率和实际跑赢的比例。提示词开头的模拟数据设定
请用 Python(numpy、pandas,需要时用 scikit-learn)带我做一个量化入门练习。先生成一份模拟的股票月度数据,随机种子用 42:
1. 300 只股票,192 个月(月份编号 0–191,相当于 16 年)。
2. 每只股票有一个固定的波动 sigma,从 0.05 到 0.13 均匀抽取;它的 beta = 0.5 + 5 × sigma。
3. 每个月有五个特征:mom(动量)、val(估值,越大越便宜)、size(规模)、lowvol(低波动)、prof(盈利)。
- mom、val、size、prof:第 0 个月取标准正态;之后每个月,新值 = 0.9 × 上月值 + 0.44 × 标准正态。
- lowvol = −sigma + 0.02 × 标准正态。
- 每个月把五个特征各自在 300 只股票之间标准化(减平均、除以标准差)。
4. 每个月抽一个下个月的大盘收益 mkt_next ~ 正态(0.005, 0.05);再给五个特征各抽一个当月系数 = 基础系数 + 0.01 × 标准正态,基础系数依次是 0.004、0.003、0、0.005、0.002。
5. 下个月收益 ret_next = beta × mkt_next + Σ(当月系数 × 特征) + sigma × 标准正态。
6. 整理成一张长表:每行是一只股票的一个月,列为 month、stock、sigma、五个特征、mkt_next、ret_next。打印前几行和总行数。
后面统一的口径:
- IC:每个月,某一列和 ret_next 在 300 只股票之间的 Spearman 秩相关。
- 年化收益:把每月收益连乘,再按 12 / 月数 开方后减 1。
- 等权基准:每个月 300 只股票 ret_next 的平均。
- 第 m 个月这一行的特征在第 m 个月月底已知,标签 ret_next 是第 m+1 个月的收益。训练模型时,在第 s 个月月底打分,训练只用月份 ≤ s−2 的行(中间隔开一个月)。
接下来按我的要求一步一步做。每一步先用一两句话说明在做什么,再给代码和结果。应该看到
- 最高一组每个月平均跑赢大约 1%,最低一组跑输大约 1%;可最高一组里,也只有 55%–57% 的股票跑赢平均。
- 落在 80% 范围里的比例接近 80%;最不稳那组的范围,比最稳那组宽四成左右。
- 预测的概率几乎都挤在 40%–60% 之间;四档里,预测概率和实际比例大多只差一两个百分点。
对不上的时候,把你的结果和这几条一起发给 AI,让它解释是哪一步出了问题。
自测
分数最高的一组里,只有 56% 的股票跑赢平均。这说明什么?
- A. 分数没用
- B. 应该只买一只
- C. 模型出错了
- D. 分数提高的是胜率,单只股票仍然很不确定,要靠分散
看答案
答案 D。56% 比一半多一点,放到几十只股票、很多个月上,才变成稳定的优势。
怎样检验一个“80% 范围”的预测?
- A. 看范围是不是很窄
- B. 数一数实际落在范围里的比例,看是不是接近 80%
- C. 看平均预测对不对
- D. 没法检验
看答案
答案 B。说八成,就该真的装下八成左右。装得太少是太自信,装得太多是太保守。
有人说,他的模型对单只股票下个月跑赢平均有九成把握。你最该怀疑什么?
- A. 是不是偷看了未来,或者严重过拟合
- B. 模型是不是太简单
- C. 股票是不是太少
- D. 没什么可怀疑的
看答案
答案 A。在月度选股里,一个诚实的概率通常离 50% 只有几个百分点。
常见坑
- 把概率当成收益
- 只看平均表现,不看区间宽度
下一节
有了分数,怎样变成真实的持仓?
12从分数到组合同一个分数,怎样变成持仓?换手和成本会吃掉多少?