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 知识体系总览
下面这张图帮你理清肯德尔系数的核心逻辑:
说白了,肯德尔系数就是那个“不管风吹浪打,我自岿然不动”的稳健型选手。在做资产配置时,如果你发现皮尔逊系数给出的相关矩阵波动太大,或者数据里明显有异常值,不妨试试肯德尔系数。我个人经验是,它往往能帮你看到更真实、更稳定的资产间关系。
公众号:蓝海资料掘金营,微信deep3321