互相关分析
这个方法是做什么的
把两条序列在时间轴上相对错开,逐个滞后阶算一次相关,看错开多少时它们对得最齐。r(lag) 定义为“信号1 在 t 期”与“信号2 在 t+lag 期”的标准化乘积均值:滞后 0 就是两者的皮尔逊相关系数,峰值出现在正滞后说明信号1 领先、信号2 跟随,负滞后则相反。最大滞后阶留空时自动取 min(n/2, 40)。
主结果表并排给三个相关系数,口径不同不能互换:CCF 口径的 r(lag) 按 1/n 归一化,|lag| 越大衰减越强;同步的 r(0) 是标准皮尔逊相关,配 Fisher-z 置信区间;峰值滞后处还单独算了重叠区段的皮尔逊 r,它没有那层衰减,更能反映该滞后上的实际关联强度(演示里两者是 0.7994 与 0.8503)。卡④ 用“时移带来的解释力增量”把这件事说完整:r²(峰值)−r²(0)=+0.4509,意思是考虑领先关系后多解释了 45 个百分点的方差。读这份报告时的着眼点是——峰值的位置比峰值的高度可靠,跨滞后比较数值要用重叠区段那一列。
需要准备什么数据
- 放入[定量]信号1:不限
- 放入[定量]信号2:不限
数据要求
- 数据表至少 30 行。
- 单列缺失率不超过 20%。
- 不接受取值全都一样的列(零方差列没有可分析的变异)。
以上条目由系统从该方法的校验规则直接生成,与上传数据时的实际拦截规则一致。
什么时候用它
- 广告投放与销量、上游价格与下游价格这类怀疑存在传导时滞的两条序列
- 需要估计传导需要几期,用来给预测模型设定滞后项
- 两个传感器或两条工序指标之间的时移对齐
- 已知两者相关,想区分是同步共变还是有先后
前提是两条序列逐行时间对齐——同一行必须是同一时点的两个观测。这个模块没有时间列拖拽区,行序是唯一的时间信息,任一信号缺失即整行成对剔除以免错位。至少 30 行,29 行会被直接拦下。更关键的前提是两序列都平稳:含趋势的两条序列即便毫无关系,CCF 也会在大范围滞后上普遍显著。
什么时候不要用它
- 两条序列都非平稳且怀疑存在长期均衡:CCF 会给出伪相关,用「协整检验」。
- 你要的是“谁能预测谁”的正式检验而不是相关系数:用「格兰杰因果检验」,多变量场景用「时间因果模型」。
- 只关心同期的相关强度、不涉及时滞:直接用「Pearson相关性分析」,非正态或有序数据用「Spearman相关分析」。
- 想知道的是一条序列自己隔几期还相关:那是自相关,用「(偏)自相关分析」。
- 要扣掉第三个变量的影响再看两者的关系:用「偏相关分析」。
- 两条序列都是周期信号,你想比的是频率成分:用「谱分析」。
容易误读的地方
- 两条带趋势的序列几乎总能“显著”,演示数据就是标准反例。 卡① 实测两条序列的 ADF 分别是 p=0.935 与 p=0.955,都不能拒绝单位根;结果 81 个滞后阶里有 56 个超出未校正显著界。这是教科书上的伪相关,不是发现了什么。看到卡① 报出非平稳,正确的动作是先差分或去趋势再重跑,而不是去解释那些显著的滞后阶。
- ±1.96/√n 的显著界假定至少一条序列是白噪声,这里通常不成立。 演示两条序列的 lag-1 自相关是 0.9002 与 0.6380,都远超 ±0.1789。强自相关会让这条界偏窄、显著滞后个数被高估。严谨做法是先对信号1 建 ARMA 模型、用其残差对信号2 做预白化再看 CCF,而本模块没有实现预白化,卡④ 明确写了这一点——Bonferroni 只处理检验次数,不处理自相关造成的界失真。
- 最大滞后阶设多少,会直接改变多重比较的门槛。 同一份数据取 ±40 阶时共 81 次比较,Bonferroni 界是 ±0.3126;改成 ±10 阶时只有 21 次比较,界降到 ±0.2773。也就是说,滞后范围应当由业务上可能的传导期决定,而不是先看结果再回头调——调宽会让边缘的滞后阶掉出显著,调窄则相反。
- “领先”是数据的先后,不是因果的先后。 演示的结论是“月度销售额领先同期广告投放量 3 期”——按字面读像是销量导致了广告,实际更可能是广告预算按上一季度的销量来定。CCF 只能告诉你两条曲线错开几期最像,任何机制解释都要靠外部知识。卡⑤ 对此有专门提示,并指路到「格兰杰因果检验」,但那同样不是机制因果。
- 不要拿 CCF 口径的数值跨滞后比大小。 因为按 1/n 归一化,|lag| 越大参与计算的重叠样本越少、衰减越强,两端的估计天然偏小且不稳。“峰值在 +3 阶”这个位置结论是可靠的,“峰值 0.7994 比 +20 阶的 0.2521 大三倍”这种比较则受口径影响;要比数值,用报告给出的重叠区段皮尔逊 r。
看到 r = 0.62,X 导致 Y、Y 导致 X、第三个变量同时影响两者、纯属巧合这四种情况都可能,相关系数本身分不清它们。能分清的是研究设计——随机化、工具变量、断点,而不是往模型里多塞几个控制变量。
报告里有什么
- 输出结果一:数据概览与前提检验
- 输出结果二:互相关主结果
- 输出结果三:互相关函数图
- 输出结果四:效应量与事后分析
- 输出结果五:结论与学术表述
蓝线为互相关系数 r(lag),横轴为滞后阶;红色虚线为未校正的 95% 显著界(±1.96/√n),紫色点线为 Bonferroni 校正界,红点标注 |r| 最大的滞后阶。