我有两组受试者,A 和 B,每组的大小约为 400,以及大约 300 个预测变量。我的目标是建立一个二元响应变量的预测模型。我的客户希望看到在 B 上应用从 A 构建的模型的结果。(在他的《回归建模策略》一书中,@FrankHarrell 提到最好将两个数据集结合起来并在此基础上构建模型,因为这样做会增加能力和精度 --- 见第 90 页,外部验证。我倾向于同意他的观点,考虑到收集我拥有的数据类型非常昂贵且耗时。但我无法选择客户想要什么.) 我的许多预测指标都高度相关,而且非常偏斜。我正在使用逻辑回归来构建我的预测模型。
我的预测主要来自力学。和的各种值,受试者在时间段内处于高于阈值的压力的总时间。很明显,仅从它们的定义来看,这些总时间中的许多都是在代数上相互关联的。许多在代数上不相关的预测变量因其性质而相关:在时间段内处于高压力下的受试者往往在时间段内处于高压力下,即使. 为了减少数据的维度,我将相关的预测变量聚集在一起(例如,所有的总压力时间放在一起),并使用主成分分析来表示每个集群。由于变量是倾斜的,我尝试了两种替代路径:
- 在进行 PCA 之前,我使用了对数变换来减少变量的偏斜。
- 我使用 Mia Hubert 的 ROBPCA 算法(由 R 中的 rrcov 包(PcaHubert)实现)来找到稳健的主成分。
我使用 ROC 曲线的整体形状、精确召回曲线的形状和 ROC 曲线下面积 (AUC) 作为我的性能指标,并且我希望对数据集 A 和 B 都获得相似的结果. 我原以为使用稳健的主成分会得到更好的结果,但令我惊讶的是,第一种方法做得更好:数据集 A 和 B 的 AUC 值更好,ROC 曲线之间的相似性更高,精确召回更相似曲线。
对此有何解释?我怎样才能使用健壮的主成分,而不是试图让我的数据看起来像正常的?您是否推荐任何特别强大的 PCA 方法来代替 ROBPCA?