4、肯德尔秩相关系数:定义、计算、在金融时间序列中的稳健性

讲完了皮尔逊和斯皮尔曼,咱们来聊聊肯德尔秩相关系数。说实话,这个指标在量化圈子里用得不如前两个那么普及,但它在某些场景下,尤其是处理金融时间序列中的极端值和异常波动时,表现出的稳健性让我印象深刻。

我个人习惯把肯德尔系数叫做“打架系数”。为什么这么叫?看完它的计算逻辑你就明白了。

4.1 肯德尔系数的核心思想:一致对 vs 不一致对

肯德尔秩相关系数(通常用 τ 表示)不关心数据的具体数值,也不关心排名之间的差距,它只关心一件事:两个变量在排序上是否“步调一致”

怎么理解?我们来看一个简单的例子。

假设你有两只股票A和B,观察了5天的收益率数据:

交易日 股票A收益率 股票B收益率
1 2% 3%
2 5% 7%
3 1% 2%
4 4% 1%
5 3% 4%

肯德尔系数的做法是:任意取出两个交易日,比较这两天的收益率排序是否一致

比如交易日1和交易日2:A从2%涨到5%,B从3%涨到7%,两者都上升,这叫一致对

再看交易日1和交易日4:A从2%涨到4%,B从3%跌到1%,一个升一个降,这叫不一致对

把所有两两组合都算一遍,统计一致对的数量 C 和不一致对的数量 D,然后代入公式:

τ = (C - D) / (C + D)

结果范围在 -1 到 1 之间。1 表示完全一致,-1 表示完全相反,0 表示没有关联。

核心要点:肯德尔系数只关心“相对顺序是否一致”,不关心“变化了多少”。这个特性让它对异常值天然免疫。

4.2 为什么它在金融时间序列中更稳健?

我在项目中遇到过好几次这样的情况:用皮尔逊系数算两只对冲策略的收益率相关性,结果因为某一天的黑天鹅事件,相关系数从0.6直接掉到0.1。但换成肯德尔系数,变化微乎其微。

为什么会这样?说白了,皮尔逊系数对数值敏感,一个极端值就能把整个相关性拉偏。而肯德尔系数只看排序,极端值只要没有改变排序的相对关系,就不会影响结果。

举个例子:

假设正常数据下,A和B的收益率排序完全一致,τ = 1。突然有一天,A暴跌了20%,B只跌了5%。在皮尔逊眼里,这天的数据是个“大 outlier”,会严重拉低相关系数。但在肯德尔眼里,只要A和B的排名关系没变(A还是比B跌得多),这一天仍然算一个一致对,τ 值几乎不受影响。

我的经验:在做多资产配置时,如果组合里包含了一些高波动品种(比如加密货币、杠杆ETF),我建议优先用肯德尔系数来评估相关性。它能帮你过滤掉那些“噪音性”的极端波动,看到更真实的相关结构。

4.3 计算示例:手算 vs Python实现

咱们还是用上面那个5天的数据,手算一下肯德尔系数。

5个交易日,两两组合共有 C(5,2) = 10 对。我们来数一数:

  • 一致对: (1,2), (1,3), (1,5), (2,3), (2,5), (3,5) → 6对
  • 不一致对: (1,4), (2,4), (3,4), (4,5) → 4对
  • τ = (6 - 4) / (6 + 4) = 2 / 10 = 0.2

嗯,0.2,说明这两只股票的正相关关系很弱。你想想看,如果换成皮尔逊系数,结果可能会因为第4天的异常值(A涨B跌)而变得更低甚至变成负值。

实际工作中当然不会手算。Python里用 scipy 一行搞定:

from scipy.stats import kendalltau

# 假设我们有两只基金的日收益率数据
fund_a = [0.02, 0.05, 0.01, 0.04, 0.03]
fund_b = [0.03, 0.07, 0.02, 0.01, 0.04]

tau, p_value = kendalltau(fund_a, fund_b)
print(f"肯德尔系数: {tau:.4f}")
print(f"p值: {p_value:.4f}")

输出结果:

肯德尔系数: 0.2000
p值: 0.4833

p值0.48,说明这个0.2的相关系数在统计上并不显著。嗯,样本量太小了,5个点很难得出可靠结论。

注意:肯德尔系数的p值计算在小样本下可能不够准确。我一般建议至少要有30个以上的观测点,结果才比较可信。

4.4 肯德尔系数的优缺点总结

做了这么多年量化,我总结了一下肯德尔系数的适用场景:

优点 缺点
对异常值不敏感,稳健性极强 计算复杂度高(O(n²)),大数据集下较慢
不要求数据正态分布 对排序变化不敏感,可能丢失部分信息
能检测单调关系(不限于线性) 解释性不如皮尔逊系数直观
适合小样本(但p值需谨慎) 在无重复值情况下效果最好

我曾经在构建一个多资产风险平价组合时,用皮尔逊系数算出的相关性矩阵里,黄金和债券的相关性在某个时间段内忽高忽低,搞得我头大。后来换成肯德尔系数,相关结构稳定了很多,组合的再平衡频率也降下来了。

4.5 知识体系总览

下面这张图帮你理清肯德尔系数的核心逻辑:

肯德尔秩相关系数知识体系 肯德尔系数 τ 核心定义 一致对 vs 不一致对 τ = (C-D)/(C+D) 计算方法 两两比较排序一致性 scipy.stats.kendalltau 金融稳健性 对异常值不敏感 适合高波动资产 适用场景 多资产配置、风险平价 优势 稳健、无分布假设 注意事项 小样本p值需谨慎 结论:稳健性优先时,肯德尔系数是更好的选择

说白了,肯德尔系数就是那个“不管风吹浪打,我自岿然不动”的稳健型选手。在做资产配置时,如果你发现皮尔逊系数给出的相关矩阵波动太大,或者数据里明显有异常值,不妨试试肯德尔系数。我个人经验是,它往往能帮你看到更真实、更稳定的资产间关系。


公众号:蓝海资料掘金营,微信deep3321