12.1 统计基础:相关性、回归、显著性
课前导读
本节目标
你将学会:把“我觉得这个指标有用”改写成可以检查的统计问题。
适合对象:已经学完 Python、因子、回测、组合和实盘工程化的 A 股投资者。
难度:advanced
预计用时:约 40 分钟
在前面的课程里,你已经能写出因子、做回测、看资金曲线,也知道实盘会遇到成本、滑点、涨跌停和数据质量问题。
从第 12 章开始,我们把研究再往前推进一步:不急着寻找“神奇指标”,而是更严格地验证想法。
统计不是预测水晶球。
它更像研究室里的显微镜:帮助你看清一个关系是否稳定、是否可能只是巧合、是否足以覆盖现实交易摩擦。
这一节会围绕三个词展开:相关性、回归、显著性。
请记住主线:关系不等于因果,显著不等于可赚钱。
知识正文
1. 类比:相关性像两个人经常同路
想象你每天上班时都看到两个人在同一个地铁站出现。
他们经常同时出现,说明两件事“有关系”。
但这不代表 A 让 B 出现。
他们可能住在同一小区,也可能只是同一条线路拥挤。
A 股研究里也一样。
你发现“成交量放大后,某些股票次日更容易上涨”。
这只是观察到一种同行关系。
它可能来自真实资金关注。
也可能来自短期热点、指数大涨、样本太少,甚至来自你无意中挑了已经涨过的股票。
关键直觉
统计先问“关系是否存在”,再问“关系能不能解释”,最后才问“是否值得交易”。这三个问题不能跳步。
2. 术语一:样本、均值和标准差
统计研究的第一步不是建模型,而是确认你手里有什么样本。
样本就是你拿来检查想法的一组历史记录。
例如:2018 年到 2024 年所有沪深 300 成分股的日收益、成交额、换手率和财务指标。
均值是样本的平均水平。
标准差是样本围绕平均水平晃动的程度。
对于投资者来说,标准差可以粗略理解为“路有多颠”。
如果一个因子平均收益看起来不错,但标准差很大,说明体验可能非常不稳定。
公式可以先这样理解:
如果 5 笔样本收益分别是 2%、-1%、3%、-2%、1%,平均收益是:
0.6% 听起来不错,但你还要看每一笔的波动是否能承受。
3. 术语二:相关性
相关性用来描述两个变量是否经常同方向变化。
相关系数通常在 -1 到 1 之间。
接近 1,表示大多同涨同跌。
接近 -1,表示一个上升时另一个常下降。
接近 0,表示线性关系不明显。
在 A 股量化里,你可能会检查:
| 研究问题 | 变量 A | 变量 B | 可能含义 |
|---|---|---|---|
| 放量是否有用 | 今日成交额变化 | 明日收益 | 情绪或资金关注是否延续 |
| 估值是否有用 | PE 分位数 | 未来 60 日收益 | 便宜是否更容易修复 |
| 风险是否集中 | 银行股收益 | 地产链收益 | 组合是否暴露在共同风险下 |
| 因子是否重复 | 动量因子 | 均线因子 | 两个因子是否本质相似 |
但相关性有两个常见陷阱。
第一,相关不等于因果。
第二,相关不等于可交易。
例如某个因子与未来 5 日收益相关性为 0.04。
这个数字可能在统计上不算完全随机。
但扣掉印花税、佣金、滑点、涨跌停买不到卖不掉的影响后,可能没有任何实用价值。
常见误区
看到相关系数为正,就以为“这个指标能预测上涨”。实际上你还需要检查样本长度、分组收益、交易频率、成本和样本外表现。
4. 术语三:回归
回归可以理解为“用一把尺子量关系”。
如果相关性只是说两个人经常同路,回归会进一步问:A 每变化一点,B 大约变化多少。
最简单的线性回归可以写成:
截距像基础水平。
系数像斜率,表示因子值变化时,未来收益平均怎样变化。
残差是模型解释不了的部分。
在 A 股案例中,假设你研究“低波动股票未来一个月是否更稳”。
你可以把每只股票的 20 日波动率作为因子值。
把未来 20 日收益作为结果。
回归会告诉你:波动率越高,未来收益平均是更高、更低,还是看不出线性关系。
但这仍然只是历史关系。
它不是交易指令。
5. 显著性:像判断成绩是不是碰巧
显著性是用来判断“观察到的关系是否可能只是运气”。
你可以把它想成考试成绩。
一个学生这次考了 95 分,可能是真的掌握了,也可能刚好题目都背过。
如果他连续多次、在不同题型、不同考场都表现好,你才更愿意相信能力存在。
统计显著性常用 p 值、t 值、置信区间等工具表达。
你不需要一开始就背公式。
先抓住直觉:显著性越强,关系越不容易被“纯随机波动”解释。
但金融市场里还有一个更严格的问题:即使关系不是随机的,它是否能产生扣成本后的可执行收益?
这就是“显著不等于可赚钱”。
风险提醒
A 股历史样本中出现过的显著关系,可能来自某个阶段的政策、流动性或风格偏好。市场环境变了,统计关系也可能失效。
6. 研究流程:从观察到可复核结论
一个合格的统计研究,不是只输出一个相关系数。
它应该像审计报告一样留下证据链。
graph TD
A["提出投资观察"] --> B["定义样本和字段"]
B --> C["计算相关或回归"]
C --> D["检查显著性"]
D --> E["分组与分时期验证"]
E --> F["扣除成本和约束"]
F --> G["写出结论边界"]每一步都在减少“自我说服”。
提出观察:例如“高 ROE 公司长期更稳定”。
定义样本:例如只看非 ST、上市满一年、流动性合格的 A 股。
计算关系:看 ROE 与未来一年收益、回撤、波动之间的关系。
检查显著性:看结果是否可能只是少数年份或少数行业贡献。
扣除约束:考虑调仓频率、停牌、涨跌停、交易成本。
写出边界:说明这个结论在哪些样本、时期、行业中成立或不成立。
7. A 股案例:成交额变化与次日收益
假设你观察到一个现象:某些股票突然放量后,第二天更容易继续上涨。
不要马上写策略。
先把问题拆成统计版本。
研究对象:沪深 A 股中非 ST、日成交额大于 1 亿元的股票。
变量 A:今日成交额相对过去 20 日均值的倍数。
变量 B:下一交易日收益率。
可检查问题:变量 A 越高,变量 B 是否平均更高?
更严格的问题:这种关系在牛市、震荡市、下跌市是否都存在?
再进一步:如果第二天开盘追入,扣掉滑点和成本后是否仍有优势?
这时你可能发现:
- 全市场平均相关性很弱。
- 小市值或热门行业中关系更明显。
- 高开太多时,实际可买入价格已经吃掉大部分空间。
- 样本内看起来有效,换一个年份就明显变弱。
这不是失败。
这是统计研究最有价值的地方:它帮你更早发现边界。
8. Python 小例子:只演示思路
下面代码不需要真实外部数据。
它假设你已经有一个按日期排序的 DataFrame。
# df 至少包含 close 和 amount 两列,并且已经按日期升序排列
# ret_next 是“下一日收益”,只能作为研究标签,不能作为当日可用特征
df["ret_next"] = df["close"].pct_change().shift(-1)
df["amount_ratio"] = df["amount"] / df["amount"].rolling(20).mean()
sample = df.dropna(subset=["ret_next", "amount_ratio"])
corr = sample["amount_ratio"].corr(sample["ret_next"])
print(round(corr, 4))直觉解释:
amount_ratio 问的是“今天成交额相对过去是否异常”。
ret_next 问的是“明天价格有没有继续变化”。
如果相关性很低,不代表完全没用。
它可能需要分行业、分市值、分市场环境再看。
如果相关性很高,也不要兴奋。
你要先检查是否使用了未来数据,是否样本太少,是否由少数极端日贡献。
9. 多重检验:试太多次总会撞上好运
量化研究很容易出现“试到有效为止”。
你试 200 个因子、10 个参数、5 个持有期、3 个股票池。
总共就是 30000 种组合。
其中总会有几组历史表现很好。
这就像一直抽奖,总会抽到一次看起来惊人的结果。
因此,看到一个漂亮统计结果时,要追问:这是先有逻辑再验证,还是试了无数次后挑出来的?
更可靠的做法包括:
- 先写研究假设,再跑数据。
- 保留没有成功的实验记录。
- 用样本外时期复核。
- 用不同股票池、不同成本假设做压力检查。
- 不把单次 p 值当成投资结论。
10. 专业老师、投资者、开发者三重视角
老师视角:统计是表达怀疑的方法,不是制造确定性的方法。
投资者视角:你关心的不只是关系存在,而是关系能否经受亏损、成本、等待和情绪压力。
量化开发视角:你要让每个字段、每个时间点、每个计算步骤都能复现。
三者合在一起,就是一句话:用统计把想法变成可审计的证据。
交互实验室
练习 1:给一个因子写统计问题
请选择你熟悉的一个 A 股观察,例如“低估值股票更容易反弹”。
把它写成下面四行:
| 项目 | 你的填写 |
|---|---|
| 样本范围 | 例如:2016-2024 年非 ST A 股,剔除上市未满 250 日股票 |
| 变量 A | 例如:PE 历史分位数 |
| 变量 B | 例如:未来 60 日收益率 |
| 结论边界 | 例如:只在低波动年份更明显,牛市后段可能失效 |
练习 2:判断下面说法是否严谨
请逐条判断“可以接受”还是“需要补证据”。
- 某因子过去 5 年 RankIC 为正,所以可以直接实盘。
- 某因子在 2020 年收益很好,但 2021-2024 年没有优势。
- 某因子 p 值很小,但调仓频率很高,扣成本后收益接近 0。
- 两个行业收益相关性高,所以组合分散效果可能有限。
参考答案:
- 第 1 条需要补证据,还要看成本、稳定性和样本外。
- 第 2 条需要解释市场环境,否则可能只是阶段风格。
- 第 3 条说明统计关系未必有交易价值。
- 第 4 条比较严谨,但仍需看更长样本和极端行情。
练习 3:写一段研究结论
请用 80 字写出一个谨慎结论。
模板如下:
在本样本中,某因子与未来收益呈现弱正相关,但关系主要集中在若干年份和部分行业。扣除交易成本后优势明显下降,因此目前只适合继续观察,不适合作为独立买入规则。
如果你的结论里出现“必然”“一定”“稳定盈利”等词,请删掉。
进阶统计的目标不是让话说得更满,而是让边界说得更清楚。
核心复盘
知识清单:
- [ ] 我能解释“相关不等于因果”。
- [ ] 我知道回归系数只是在样本中量化平均关系。
- [ ] 我理解显著性只能说明“不太像随机”,不能说明“值得交易”。
- [ ] 我会检查样本范围、成本、极端值和样本外表现。
- [ ] 我能把一个投资观察写成变量 A、变量 B 和结论边界。
金句总结
统计不是收益捷径,而是让投资想法经受更严格盘问的工具。