时通过 PCA 的马氏距离n < pn<p

机器算法验证 相关性 主成分分析 遗传学 协方差 距离函数
2022-03-21 16:37:21

我有一个矩阵,其中是基因数,是患者数。任何处理过此类数据的人都知道总是大于使用特征选择我已经将降低到一个更合理的数字,但是仍然大于n×ppnpnppn

我想根据患者的遗传特征计算患者的相似性;我可以使用欧几里得距离,但是 Mahalanobis 似乎更合适,因为它考虑了变量之间的相关性。问题(如本文所述)是马氏距离,特别是协方差矩阵,时不起作用当我在 R 中运行 Mahalanobis 距离时,我得到的错误是:n<p

 Error in solve.default(cov, ...) :    system is computationally
 singular: reciprocal condition number = 2.81408e-21

到目前为止,为了解决这个问题,我使用了 PCA,而不是使用基因,而是使用组件,这似乎让我可以计算 Mahalanobis 距离;5 个分量代表大约 80% 的方差,所以现在n>p

我的问题是:我可以使用 PCA 有意义地获得患者之间的马氏距离,还是不合适?变量之间也有很大的相关性时,是否有其他距离度量有效?n<pn

3个回答

如果您保留 PCA 中的所有组件 - 那么新 PCA 空间中患者之间的欧几里得距离将等于观察变量空间中的马氏距离。如果你跳过一些组件,那会改变一点,但无论如何。在这里,我指的是单位方差 PCA 组件,而不是方差等于特征值的那种(我不确定您的 PCA 实现)。

我的意思是,如果您想评估患者之间的马氏距离,您可以应用 PCA 并评估欧几里得距离。在应用 PCA 后评估马氏距离对我来说似乎毫无意义。

看看下面的论文:

Zuber, V., Silva, APD 和 Strimmer, K. (2012)。一种在高维全基因组关联研究中同时选择 SNP 的新算法BMC 生物信息学13 (1), 284。

它恰好解决了您的问题。作者假设使用新的变量重要性测量,除了他们之前为适合您的问题的解释变量的相关矩阵引入了一种惩罚估计方法。他们还使用马氏距离进行去相关!

这些方法包含在 R-package 'care' 中,可在 CRAN 上获得

文献中使用 PCA 分数(或 PCA 结果)来计算样本与样本分布之间的马氏距离。例如,请参阅这篇文章在“分析方法”部分,作者指出:

通过评估相关矩阵 (681 × 681) 的主成分 (PC),将荧光光谱 (681) 的数据集缩减为较低维度 (11)。通过沿 PC 投影原始数据来估计 PC 分数。数据集之间的分类是使用马氏距离模型通过计算 PC 分数的马氏距离来完成的。

我在文献和 GRAMS IQ 化学计量学软件的帮助菜单中看到了基于 PCA/Mahalanobis 距离的判别分析的其他示例。这种组合是有意义的,因为当变量的数量大于可用样本的数量时,马氏距离不能很好地工作,而 PCA 会减少变量的数量。

一类分类机器学习算法(即 Isolation Forest、One-ClassSVM 等)是基于 PCA/Mahalanobis 距离的判别分析的可能替代方案。在我们实验室,隔离森林结合数据预处理在近红外光谱的分类中取得了很好的效果。

稍微相关的是,对于高维数据,使用 PCA/Mahalanobis 距离进行异常值或新奇检测通常需要计算 Mahalanobis 距离截止值本文建议,假设数据呈正态分布,可以将截止值计算为卡方分布临界值 的平方根。此临界值需要与数据相关的自由度数和概率值。该文章似乎暗示保留的主成分数量等于计算临界值所需的自由度数量,因为作者使用数据集中的特征数量进行计算。