我有两组主题,A和B,每组的大小大约为400,预测变量大约为300。我的目标是为二进制响应变量建立预测模型。我的客户希望看到从A到B应用从A构建的模型的结果。(在他的书《回归建模策略》中,@ FrankHarrell提到最好将两个数据集结合起来并以此为基础构建模型,因为这样做会增加强大和精确---参见第90页,外部验证,考虑到收集我拥有的数据类型非常昂贵且耗时,我倾向于同意他的看法,但是我无法选择客户想要的东西。)我的许多预测变量都是高度相关的,而且也很偏斜。我正在使用逻辑回归来建立预测模型。
我的预测指标主要来自力学。例如,总时间的主题是一个应力比阈值高的下为时间段[ 吨1,吨2 ]中,出于各种值α > 0和。显然,仅从它们的定义来看,这些总时间中有许多是代数相关的。许多与代数无关的预测变量由于其性质而相互关联:在时间段中处于高压力下的对象在时间段[ t 3,t 4趋于高压力下 [ 吨1,吨2 ],即使 [ 吨1,吨2 ] ∩ [ 吨3,吨4 ] = ∅。为了减少数据量,我将相关的预测变量聚在一起(例如,所有总应力时间都聚在一起),并使用主成分分析来表示每个聚类。由于变量存在偏差,因此我尝试了两种替代方法:
- 在进行PCA之前,我使用了对数转换来减少变量的偏斜。
- 我使用了Mia Hubert的ROBPCA算法(由R中的rrcov包(PcaHubert)实施)来找到健壮的主成分。
我将ROC曲线的整体形状,精度召回曲线的形状以及ROC曲线下的面积(AUC)用作我的性能指标,并且我希望对数据集A和B都获得相似的结果我原本希望使用健壮的主成分会得到更好的结果,但是令我惊讶的是,第一种方法做得更好:A和B数据集的AUC值都更好,ROC曲线之间的相似度更高,而精确度调用也更相似曲线。
这有什么解释?以及如何使用健壮的主成分,而不是试图使数据看起来正常?您是否建议使用任何特定的健壮PCA方法代替ROBPCA?