相关性与协整分析:从相关性扫描到配对交易信号的一站式量化分析框架
- 一个框架覆盖四种分析模式:联动关系发现(相关性扫描)、收益相关性深度分析、行业聚类、动态实现相关性;再叠加完整的协整检验体系。
- 从筛选到信号形成完整流程:相关性与协整并不相同,该技能用协整检验筛掉“假相似”,再用半衰期、Kalman 动态对冲比率和 Z-Score 信号把分析结果转化为可监控的交易逻辑。
- 包含大量实践经验和边界提醒:价格序列与收益序列不能混用、跨市场之间必须对齐日期、危机期相关性会突然升高、多重检验需要做 FDR 修正。
- 开箱即用的代码与报表:内置可直接调用的 Python 函数集合,支持依赖安装,并给出标准化的 Markdown 分析报告模板和可视化模板。
- 适合量化研究、组合风控与跨市场投研:更适合需要快速验证“两个标的是否真的存在长期均衡关系”的从业者,不适合把它当作黑盒买卖信号。
1. 该技能叫什么?如何一键安装 AI 技能提升开发效率?
技能基本信息
| 项目 | 内容 |
|---|---|
| 技能中文名 | 相关性与协整分析 |
| 技能英文名 | 相关性与协整分析(框架英文标题为 Correlation and Cointegration Analysis) |
| 技能 ID | 14235 |
| 分类 | analysis(分析类) |
它解决什么问题
传统做法里,想做一次完整的配对交易研究,分析师通常要经历:拉取数据、算相关系数、画热力图、选聚类方法、跑协整检验、算半衰期、调对冲比率、生成信号、做监控。这套流程横跨 scipy、statsmodels、matplotlib 等多个库,每一步都有细节陷阱(例如价格和收益混用、协整检验方向依赖 y/x 顺序、跨市场节假日未对齐产生伪相关)。这个技能把上述流程固化成一套结构化方法、可直接复用的函数与判断标准,让使用者只需关注“数据是否正确、结论是否合理”,而不用每次都重造轮子。
一键安装的思路与步骤
AI 技能(Skill)的安装本质上是在智能体或技能的平台上把该能力注册进来,随后通过自然语言或代码方式调用。具体操作如下:
- 安装前提:准备好可运行 Python 的分析环境;该技能明确依赖
pandas、numpy、scipy、statsmodels、matplotlib、seaborn六个库,可通过pip install pandas numpy scipy statsmodels matplotlib seaborn一次性补齐。 - 获取技能:在你的 AI 技能市场/技能库中搜索技能名“相关性与协整分析”或技能 ID 14235,点击安装/启用。具体入口与安装方式以官方说明为准。
- 安装完成后的验证:进入对话或工作区,用一个最小任务试探,例如“帮我用 Pearson 和 Spearman 计算两个资产收益序列的相关系数,并说明什么时候该优先看 Spearman”。如果技能正常生效,它会返回相关系数选择建议、计算逻辑,甚至直接给出可运行的函数代码。
- 依赖自检:如果调用过程中提示缺少某个库,先按上文的 pip 命令补齐依赖,再重试;如果报错与数据格式相关,多数是传入了含缺失值的序列,需要先做对齐与清洗。
之所以强调“一键安装能提升开发效率”,原因在于:技能把相关性/协整这一整套方法论连同参数建议、阈值表、注意事项一起打包,你不需要再去翻文档确认“Ward 和 Complete 链接法该用哪个”“半衰期多少天算适合配对交易”,安装后即可直接进入分析环节。
2. 该技能的主要功能和特点
主要功能模块
- 模式一:联动关系发现(Co-Movement Discovery):给定目标资产,扫描资产池中的候选标的,支持 Pearson 与 Spearman 两种相关系数,按相关性排序保留 Top-K(通常 K=10-20),并支持最小相关性阈值过滤,输出候选池与相关性排名表。
- 模式二:收益相关性深度分析:对两个资产做完整的双变量研究,同时输出 Pearson、Spearman、Kendall 三种相关系数及显著性 p 值,以及 OLS 回归得到的 Beta、Alpha、R²、滚动相关系数、价差(spread)与 Z-Score。
- 模式三:行业聚类:对 N 个资产的相关系数矩阵做层次聚类,支持 Ward / Complete / Average 三种链接法,输出相关系数矩阵、聚类标签、按簇排序的热力图与树状图,用于发现板块结构、检验组合分散度。
- 模式四:实现相关性(Realized Correlation):计算 20/60/120 日等多窗口滚动相关系数,并按牛市 / 熊市 / 震荡 / 高波动四种市场状态做条件相关性统计,揭示相关性的动态演变。
- 协整检验框架:Engle-Granger 两步法(适合双变量,快速直观)+ Johansen 检验(适合三变量以上,可估计协整向量个数即秩),并给出秩的解释规则。
- 半衰期估计:通过 ΔSpread 对滞后价差回归,估算均值回复半衰期,并给出“小于 5 天 / 5-20 天 / 20-60 天 / 60-180 天 / 大于 180 天”的分档解读与交易建议。
- Kalman 动态对冲比率:用状态空间模型实时更新对冲比率与截距,解决静态 OLS 无法刻画协整关系缓慢漂移的问题。
- 跨市场联动分析:支持 A 股、港股、美股、加密货币等市场之间的静态相关矩阵、领先滞后(lead-lag)分析与滚动相关;并专门提供汇率调整后的相关性函数,避免汇率波动制造伪相关。
- 危机期相关性崩塌测试:对比正常期与危机期的平均两两相关性,输出相关性跳升幅度,用于组合风险预警。
- 配对交易信号生成:完整的五步流程(资产筛选 → 价差质量评估 → 对冲比率选择 → 信号生成 → 信号监控),内置 Z-Score 状态机,避免重复开仓。
- 点差健康度监控:用健康分(0-100)、半衰期倍数、价差 ADF p 值综合判断协整关系是否失效,并给出 hold / reduce / exit_now 的动作建议。
- 可视化与报告模板:内置滚动相关性时间序列图、Z-Score 与信号标注图,以及结构化的 Markdown 分析报告输出格式。
和“普通工具”比强在哪
普通工具往往只给你一个相关系数或一条折线,而这个技能给的是判断链路:
- 它明确区分价格序列用于协整检验、收益序列用于相关性分析,从源头避免最常见的误用。
- 它不止步于“相关性高”,而是用协整检验、价差 ADF、半衰期三重校验,过滤掉“看起来像、其实不成立”的伪配对。
- 它内置了大量可直接引用的经验阈值表(相关性分档、系数选择指南、链接法对比、状态相关性特征、半衰期分档、Z-Score 参数保守/标准/激进三档)。
- 它在方法论层面提示了多重检验 FDR 修正、样本外验证、节假日对齐、危机期止损收紧等真实项目中的坑。
3. 如何使用该技能?
第 1 步:明确目标,选择分析模式
先判断你的问题属于哪一类:
- “哪些标的和我手里的资产相似?”→ 模式一
- “这两个标的到底是什么关系?”→ 模式二
- “我的组合是不是偷偷重仓了同一个行业?”→ 模式三
- “相关性是不是在市场下跌时突然升高了?”→ 模式四 + 危机期相关性崩塌测试
第 2 步:准备正确形态的数据
- 相关性分析传入日收益率序列(价格取 pct_change)。
- 协整检验、半衰期、Kalman 传入价格序列(必须是非平稳的)。
- 跨市场数据用 inner join 对齐日期,不要对缺失交易日做前向填充,否则会产生虚假相关。
第 3 步:用自然语言或代码调用
自然语言示例:“这是我的目标资产和 200 只候选股票的日收益矩阵,帮我用 Pearson 扫描出相关性绝对值大于 0.5 的前 20 只,并按相关性降序排列,然后对前 10 只做 Engle-Granger 协整检验,只保留 p < 0.05 的配对。”
代码调用示例(关键函数签名):
result = scan_correlated_assets(
target_returns=target, # 目标资产日收益
universe_returns=universe, # 候选池收益矩阵,列为股票代码
top_k=20, # 保留前 20 个
min_corr=0.5, # 最小相关性绝对值
method="pearson", # 或 "spearman"
)
第 4 步:读懂输出的筛选结论
技能内置的相关性分档规则可直接对照:绝对值大于 0.8 属于强同向联动,直接送入协整检验队列;0.6-0.8 为中度联动,需先核对行业/因子暴露;小于 0.6 通常不适合配对交易;负相关且小于 -0.6 可用于对冲组合,但要注意价差方向。
第 5 步:做协整与均值回复质量评估
对候选配对调用 Engle-Granger,得到协整 p 值、对冲比率、截距与残差价差;同时注意双向检验——交换 y 与 x 再跑一次,保留 p 值更小的方向。接着调用半衰期函数,优先保留半衰期在 5-20 天(短线理想区间)或 20-60 天(中期持有)的配对。
第 6 步:选择对冲比率并生成信号
短期稳定的配对用 OLS 静态比率;存在结构性漂移的长期配对用 Kalman 动态比率。然后用 generate_pair_signals 生成信号,Z-Score 参数可参考三档配置:
| 参数 | 保守 | 标准 | 激进 | 说明 |
|---|---|---|---|---|
| entry_z(入场阈值) | 2.5 | 2.0 | 1.5 | 门槛越高交易次数越少 |
| exit_z(离场阈值) | 0.3 | 0.5 | 0.8 | 越高持仓时间越短 |
| stop_z(止损阈值) | 3.0 | 3.5 | 4.0 | 越过该水平意味着协整可能失效 |
| lookback(回看窗口) | 90 | 60 | 30 | 通常取半衰期的 2-3 倍 |
第 7 步:持续监控并输出报告
每日重算 Z-Score,每月重跑协整检验;monitor_spread_health 会在半衰期超过原始值 2 倍、或价差 ADF p 值大于 0.10 时发出预警,并自动给出持有、减仓或立即离场的建议。最终按内置报告模板输出:相关性统计表、协整检验表、均值回复特征表、分状态条件相关性表、推荐信号参数表、当前价差状态表。
4. 同类型竞品对比分析
| 方案名称 | 定位 | 核心功能 | 安装/使用门槛 | 适用场景 | 优势与不足 |
|---|---|---|---|---|---|
| 相关性与协整分析 Skill | 面向量化研究与投研的成体系分析框架 | 四种相关性模式 + Engle-Granger / Johansen 协整 + 半衰期 + Kalman 动态对冲 + 跨市场联动 + 汇率调整 + 危机期崩塌测试 + 信号生成与健康度监控 | 需具备 Python 环境,依赖 6 个常用库;通过技能市场按名称或技能 ID 安装,具体入口以官方说明为准 | 配对交易选品、组合分散度检验、跨市场投研、协整关系监控 | 优势:方法论完整、阈值经验内置、从分析直达信号;不足:仍需要使用者理解统计含义,不做自动下单 |
| 自行编写 statsmodels / scipy 脚本 | 各类统计模块的原始能力 | 提供 coint、adfuller、coint_johansen、pearsonr 等底层函数 | 门槛最高:需自行设计流程、处理对齐、选择参数 | 有明确方法论积累的团队做定制化研究 | 优势:完全可控;不足:重复造轮子,容易在价格/收益混用、多重检验等细节上出错 |
| 带统计分析模块的金融数据终端 | 数据 + 基础统计一体 | 通常提供相关系数矩阵、简单回归等基础指标 | 门槛中等,多为订阅制,价格与功能以官方说明为准 | 快速查看相关性、写常规研报 | 优势:数据获取方便;不足:协整、半衰期、Kalman 动态比率等深度分析往往缺失或需另行实现 |
| 通用表格 / BI 工具 + 简单相关系数 | 面向大众的通用数据处理 | 相关系数计算、透视表、基础图表 | 门槛最低,无需编程 | 一次性、低复杂度的相关性初筛 | 优势:上手快;不足:无法做协整检验与均值回复分析,跨市场日期对齐与汇率调整能力弱 |
选型建议:如果你只是想知道“这两条曲线像不像”,通用表格工具足够;如果目标是把结果用于配对交易或组合风险判断,那么选择具备协整检验与监控能力的方案更有价值,这也是该技能的核心差异化所在。
5. 该技能的典型应用场景与实际体验情况
场景一:量化研究员构建配对交易候选池
- 角色与痛点:研究员需要在数百只标的中快速锁定可交易配对,但手工筛选既慢又容易漏掉“低相关但协整”的组合。
- 使用方式:先用模式一扫描相关性并保留 Top-K,再用 Engle-Granger 双向检验筛出 p < 0.05 的配对,接着用半衰期过滤掉回复过慢(大于 180 天)或过快(小于 5 天、摩擦成本吞噬收益)的组合。
- 实际体验:上手难度中等,函数签名清晰、参数含义直观,基本一次就能跑通;效果上最大的价值是过滤伪配对——很多相关性 0.9 以上的标的在协整检验阶段被淘汰,避免了后续无效研究;注意事项是必须确认传入的是价格序列而非收益率序列,否则协整结论会失真。
场景二:组合经理检验持仓的真实分散度
- 角色与痛点:组合名义上横跨多个行业,但实际可能因为风格因子同源而高度同涨同跌。
- 使用方式:用模式三对全部持仓做层次聚类(默认推荐 Ward 链接法),按簇排序的热力图能让“隐性同行业”一眼可见;再用危机期相关性崩塌测试对比正常期与危机期的平均两两相关性。
- 实际体验:聚类与热力图的可读性很强,适合直接放进投研汇报;经验上危机期相关性会显著跳升,若测试结果显示跳升幅度异常大,说明组合在下行行情中几乎没有分散效果,需要提前调整仓位结构。
场景三:跨市场投研与汇率干扰排查
- 角色与痛点:研究 A 股与港股、美股、加密货币之间的联动时,汇率波动常常把真实关系掩盖掉。
- 使用方式:调用跨市场相关性函数得到静态相关矩阵与领先滞后表,再用汇率调整函数对比“原始相关性”与“汇率调整后相关性”,观察汇率贡献度是正还是负。
- 实际体验:领先滞后分析对判断传导方向很有参考价值(例如美股隔夜领先、A 股次日反应);注意事项是跨市场交易日历不一致,必须做内连接对齐,绝不能对缺失交易日填充,否则滚动相关系数会被虚假数据污染。
场景四:已持仓配对的关系健康度巡检
- 角色与痛点:配对建仓后,协整关系可能随时间悄然失效,而使用者往往缺少统一的失效判断标准。
- 使用方式:定期调用点差健康度监控,输入入场时的原始半衰期与相关系数,得到 0-100 的健康分、当前半衰期倍数、价差 ADF p 值与明确的行动建议。
- 实际体验:健康分加文字预警的组合非常实用,避免“凭感觉扛单”;建议把复核频率固定为每日重算 Z-Score、每月重跑协整检验,并在半衰期超过原始值 2 倍时主动降仓。
6. 该技能能为用户带来的价值
效率层面:把原本需要数千行重复代码与多轮参数试错的分析流程,收敛为一组职责清晰的函数调用。从相关性扫描到协整检验、半衰期评估、对冲比率选择、信号生成与监控,环节之间标准统一,研究人员的精力可以从“写代码、查文档、调参数”转移到“解读结论、验证经济逻辑”上。
门槛层面:把统计学与量化交易中的隐性经验显性化——相关性分档怎么解读、三种相关系数何时用哪个、Ward / Complete / Average 如何取舍、Johansen 秩怎么读、半衰期多少天算“适合交易”、Z-Score 参数保守与激进怎么选,这些原本依赖资深从业者口传心授的判断,现在以表格与默认参数的形式直接可用。
质量与风险层面:内置的边界提醒本身就是价值。价格与收益不能混用、Engle-Granger 需双向检验、跨市场日期必须内连接对齐、多重检验要做 FDR 修正、危机期止损要收紧、样本外必须验证——每一条都对应真实项目中容易踩的坑,能显著降低错误结论带来的决策成本。
长期价值:框架输出的标准化报告结构(相关性统计、协整检验、均值回复特征、分状态条件相关性、推荐参数、当前价差状态)可以作为团队内部的研究存档模板,便于复盘与横向对比;健康度监控把“一次性分析”升级为“持续跟踪”,让协整关系从研究结论变成可运营的资产。
7. 常见问题 FAQ
Q1:这个技能怎么安装?需要准备什么?
在你的 AI 技能市场或技能库中搜索技能名“相关性与协整分析”或技能 ID 14235,按提示安装启用即可,具体入口与流程以官方说明为准。安装前建议先准备好 Python 环境,并执行 pip install pandas numpy scipy statsmodels matplotlib seaborn 补齐依赖,否则调用时会提示缺少库。
Q2:这个技能收费吗? 技能详情中未说明价格与授权方式,请以官方说明为准。可以确定的是,它依赖的全部是开源 Python 库,运行本身不产生额外的数据或软件授权费用;如果你使用的数据源需要付费订阅,那部分成本另计。
Q3:它适合谁用?完全不懂统计能用吗? 最适合量化研究员、因子研究员、组合经理、投研分析师以及做配对交易策略的开发者。完全零基础的用户需要先理解两个核心概念:相关性衡量“同涨同跌的程度”,协整衡量“是否存在长期均衡关系”,二者不等价。技能提供了大量阈值与判读规则,能显著降低使用难度,但结论的经济含义仍需人来判断。
Q4:相关性和协整到底有什么区别?为什么要两个都做? 相关性只描述短期同向波动的强度,协整描述两条价格序列之间是否存在长期稳定的均衡关系。两个序列可能相关性很高却无法协整(同涨同跌但价差不断发散),也可能相关性不高却存在协整。实现配对交易通常要先按相关性筛选候选,再用协整检验确认长期均衡,最后用半衰期评估回复速度——三者缺一不可。
Q5:和直接写 Python 脚本或使用数据终端相比,该怎么选? 如果你的需求是定制化极强、已有成熟研究框架,自己写脚本灵活性最高;如果只是快速查看相关性,通用工具就够用。但如果你需要在较短时间内完成“筛选—协整检验—均值回复评估—信号生成—健康度监控”这条完整链路,并且希望方法论细节(参数分档、双向检验、汇率调整、多重检验修正)由框架统一保证,那么这类结构化的分析技能效率优势更明显。选型时可先用一个小样本对标自建脚本,确认结论一致后再扩大使用范围。