Skip to content

12.1 统计基础:相关性、回归、显著性

课前导读

本节目标

你将学会:把“我觉得这个指标有用”改写成可以检查的统计问题。

适合对象:已经学完 Python、因子、回测、组合和实盘工程化的 A 股投资者。

难度:advanced

预计用时:约 40 分钟

在前面的课程里,你已经能写出因子、做回测、看资金曲线,也知道实盘会遇到成本、滑点、涨跌停和数据质量问题。

从第 12 章开始,我们把研究再往前推进一步:不急着寻找“神奇指标”,而是更严格地验证想法。

统计不是预测水晶球。

它更像研究室里的显微镜:帮助你看清一个关系是否稳定、是否可能只是巧合、是否足以覆盖现实交易摩擦。

这一节会围绕三个词展开:相关性、回归、显著性。

请记住主线:关系不等于因果,显著不等于可赚钱。


知识正文

1. 类比:相关性像两个人经常同路

想象你每天上班时都看到两个人在同一个地铁站出现。

他们经常同时出现,说明两件事“有关系”。

但这不代表 A 让 B 出现。

他们可能住在同一小区,也可能只是同一条线路拥挤。

A 股研究里也一样。

你发现“成交量放大后,某些股票次日更容易上涨”。

这只是观察到一种同行关系。

它可能来自真实资金关注。

也可能来自短期热点、指数大涨、样本太少,甚至来自你无意中挑了已经涨过的股票。

关键直觉

统计先问“关系是否存在”,再问“关系能不能解释”,最后才问“是否值得交易”。这三个问题不能跳步。

2. 术语一:样本、均值和标准差

统计研究的第一步不是建模型,而是确认你手里有什么样本。

样本就是你拿来检查想法的一组历史记录。

例如:2018 年到 2024 年所有沪深 300 成分股的日收益、成交额、换手率和财务指标。

均值是样本的平均水平。

标准差是样本围绕平均水平晃动的程度。

对于投资者来说,标准差可以粗略理解为“路有多颠”。

如果一个因子平均收益看起来不错,但标准差很大,说明体验可能非常不稳定。

公式可以先这样理解:

=

如果 5 笔样本收益分别是 2%、-1%、3%、-2%、1%,平均收益是:

2%1%+3%2%+1%5=0.6%

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. 研究流程:从观察到可复核结论

一个合格的统计研究,不是只输出一个相关系数。

它应该像审计报告一样留下证据链。

mermaid
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。

python
# 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:判断下面说法是否严谨

请逐条判断“可以接受”还是“需要补证据”。

  1. 某因子过去 5 年 RankIC 为正,所以可以直接实盘。
  2. 某因子在 2020 年收益很好,但 2021-2024 年没有优势。
  3. 某因子 p 值很小,但调仓频率很高,扣成本后收益接近 0。
  4. 两个行业收益相关性高,所以组合分散效果可能有限。

参考答案:

  • 第 1 条需要补证据,还要看成本、稳定性和样本外。
  • 第 2 条需要解释市场环境,否则可能只是阶段风格。
  • 第 3 条说明统计关系未必有交易价值。
  • 第 4 条比较严谨,但仍需看更长样本和极端行情。

练习 3:写一段研究结论

请用 80 字写出一个谨慎结论。

模板如下:

在本样本中,某因子与未来收益呈现弱正相关,但关系主要集中在若干年份和部分行业。扣除交易成本后优势明显下降,因此目前只适合继续观察,不适合作为独立买入规则。

如果你的结论里出现“必然”“一定”“稳定盈利”等词,请删掉。

进阶统计的目标不是让话说得更满,而是让边界说得更清楚。


核心复盘

知识清单

  • [ ] 我能解释“相关不等于因果”。
  • [ ] 我知道回归系数只是在样本中量化平均关系。
  • [ ] 我理解显著性只能说明“不太像随机”,不能说明“值得交易”。
  • [ ] 我会检查样本范围、成本、极端值和样本外表现。
  • [ ] 我能把一个投资观察写成变量 A、变量 B 和结论边界。

金句总结

统计不是收益捷径,而是让投资想法经受更严格盘问的工具。

本文档仅供学习交流用途,不构成任何投资建议。股市有风险,入市需谨慎。