同一批样本有两组变量,例如行为特征X与问卷分数Y。发现两组变量存在共同变化方向,和“能用 X 准确预测 Y”是两件事。CCA、PLSCanonical、PLSSVD 更适合先讨论共同结构;PLSRegression 则直接服务于预测目标。若目标没说清楚,把它们按一个分数排队没有意义。
本文模拟两组由共同潜在因素生成的矩阵,分别在独立留出集上观察关联成分相关性与多输出回归表现。所有标准化只在训练集拟合。模拟结构由我们预设,不代表真实业务变量一定服从线性共享因素模型。
文章目录
- 两组变量关联建模要解决什么问题
- 关联分析与预测任务如何区分
- CCA、PLSCanonical、PLSRegression 与 PLSSVD 怎么选
- 用共享潜在因素数据验证方法
- 训练相关性很高但预测不佳时如何排查
- 总结
两组变量关联建模要解决什么问题
先核对两组表是否逐行对应同一个人、设备或时间窗。若行错位,任何相关或预测结果都可能失去意义。还要明确 Y 是否是将来需要预测的目标;如果只是用于探索两组变量的共同结构,就不该只看回归误差。
| 任务目的 | 主要问题 | 合适的留出检验 |
|---|---|---|
| 关联解释 | 两组变量是否在相同样本上沿某些方向共同变化? | 在未参与拟合的样本上看成分相关性及其稳定性。 |
| 预测 Y | 只给 X 时,对新样本的 Y 预测是否优于简单基线? | 留出集上的 MAE、R²,并检查具体输出变量。 |
两类指标不能互相替代。训练成分相关性很高可能来自对训练样本的过度适配,并不自动意味着 Y 能被准确预测。
关联分析与预测任务如何区分
CCA 寻找两组线性组合,使它们的相关性尽量高;PLS 系列围绕两组变量的共同变化构造潜在成分,但不同实现的优化目标、归一化与预测接口并不相同。详细定义和 API 可参照 scikit-learn 交叉分解指南。