把交互项中心化后 p 值变了?——变的不是显著性,是你问的问题
【锚点】这一篇只钉一个判断:【在 OLS 里,均值中心化不改变交互项的系数、标准误、t 值和 p 值;如果你看到 p 值变了,说明你换的不是坐标,是模型】。
一、先给可验证的代数事实 【显式】 设模型 y = b0 + b1·X + b2·M + b3·(X·M) + e。令 Xc = X − x̄,Mc = M − m̄,用 Xc、Mc 重估。交互项系数 b3 完全不变,其标准误也不变,因此 t 与 p 一字不改。变的只有三样:截距、b1、b2。
【流程节点链路】原始 X、M → 线性变换 Xc=X−x̄、Mc=M−m̄ → 设计矩阵列空间不变(只是列做可逆线性组合)→ 残差平方和与自由度不变 → 交互项所在方向的投影不变 → b3、SE(b3)、t、p 全部不变 → 结论:中心化是坐标平移,不是模型改动。
二、那为什么你真的看到 p 值变了 【隐式】 因为绝大多数「中心化」操作在软件里不是一次平移,而是顺手改了三件事: 1. 标准化(除以 sd)而非中心化——这会把交互项系数按 sd(X)·sd(M) 缩放,SE 同比例缩放,t 与 p 仍不变,但你若只标准化了 X 没标准化 M,t 就会变; 2. 顺手删掉了主效应项(「中心化后主效应不显著就删了」)——删项是模型改动,交互项的 p 当然变; 3. 顺手加了高阶项或换了样本(缺失值处理路径变了)。
【流程节点链路】用户点「中心化」→ 软件执行 z 分数化/删项/换样本 → 设计矩阵列空间改变 → 残差与自由度改变 → 交互项 p 值改变 → 用户归因于「中心化」→ 归因错误。
三、真正会变的是主效应的解释 【细微】 中心化后 b1 的含义从「M=0 时 X 的斜率」变成「M 取均值时 X 的斜率」。在 M 从不取 0 的数据里,未中心化的 b1 是一个【没有任何观测支撑的外推值】,它的 p 值检验的是一个不存在的人群。这才是中心化该被推荐的真实理由——不是为了「让交互项显著」,是为了让主效应检验的对象存在。
四、这个传说为什么杀不死 【极难发现】 因为「中心化后交互项显著了」这句话在因果上不可能为真,但在叙事上极其有用:它把一个【模型设定问题】包装成【数据处理技巧】,让研究者不必承认自己删了项、换了样本、或选了一个 M=0 有意义却没人取到的编码方案。它是一条免责声明,不是一条统计事实。
可证伪预测:如果你手上有「中心化后交互项 p 从 0.08 变 0.03」的案例,重跑时只做平移、不动任何其他设定,p 值必须原样回到 0.08。回不去,就说明变的不是坐标。







0 评论