当您进行 PCA(或任何降维)时,“维数”是多少?

机器算法验证 主成分分析 生物统计学
2022-03-23 11:34:33

基本问题

当您进行 PCA(或任何降维)时,“维数”是多少?我一直认为你测量的东西(即变量)是维度的数量:例如,如果你测量一个盒子的长度、宽度、高度,那就是 3 个维度(3 个变量);如果你测量 200 个细胞中 10,000 个基因的丰度,那就是 10,000 个维度(不是 200 个维度)。

更具体的问题

关于图 1(下图),对维数的“正确”解释是什么(在 PCA 之前);是细胞数(200)还是基因数(10,000)?

注意:我认为可以使用细胞数或基因数作为维度数,有明显不同的解释。此外,还有一些关于交叉验证的 PCA 的其他很好的讨论;但是,我的问题有点不同:在 PCA 上观看此视频后,我真的希望能对我的困惑做出回应。这是我的困惑的简要解释。

叙述者试图在这个实验的背景下解释 PCA(下图 1):

该图来自单细胞 RNA-seq。每个细胞中约有 10,000 个转录基因。

每个点代表一个单细胞及其转录谱。一般的想法是具有相似转录的细胞应该聚集在一起。

正如我以为我理解 PCA 一样,在这个实验中,基因是“维度”,细胞是观察结果;即,如果有 10,000 个基因,则有 10,000 个维度。这种理解似乎与使用 Iris 数据集(下图 2)的不同示例(参见参考资料)相吻合;如您所见,维度数是测量的花朵特征数。

然而,在视频中,叙述者继续将维度数描述为实验测量基因丰度的细胞数(见下图 3 和图 4):

问:关于图 1 中“每个点代表一个细胞”的实验,维度数(PCA 之前)是细胞数还是基因数?

在此处输入图像描述

参考:

视频链接:https ://www.youtube.com/watch?v=_UVHneBUBW0

有关 Iris 数据的参考链接,请在谷歌上搜索“Sebastian Raschka 的 3 个简单步骤中的主成分分析”(我在此站点上没有足够的声誉,无法在此问题中包含更多链接)。

4个回答

(我现在不能看视频,所以这个答案在某种程度上是对意思的猜测)

首先,是的,我们主要谈论跨越维度的变量。但是,也可以采取相反的观点(这有时称为 R 模式与 Q 模式分析)。

让我绕道聚类分析来说明这一点:变量 = 基因 = 维度的聚类分析将寻找具有相似基因表达模式的病例组。另一方面,您也可以采取“转置”的观点,并询问在相同细胞中表达相似的基因组。与第一种方法相比,基因和细胞的作用发生了变化。对于某些类型的数据,您可能会以两种方式获得相似的分组(例如,请参阅我们关于将其用于光谱数据的论文:A. Bonifacio、C. Beleites 和 V. Sergo:将 R 模式分析应用于拉曼图:一种不同的方式查看振动高光谱数据,AnalBioanalChem, 407, 4 (2015) 1089–1095. DOI 10.1007/s00216-014-8321-7) 而对于其他类型的数据,两种查看数据的方式本身都很有趣(例如,对于遗传数据)。在后一种情况下,您可以使用提供两种聚类方式的热图。

现在对于 PCA,有趣的事实是,直到一些标准化决策(用于居中和可能缩放的行与列),您都会以两种方式得到相同的解决方案 - 只是分数和载荷会改变它们的作用。(参见例如https://stats.stackexchange.com/a/147983/4598为什么通过数据的 SVD 对数据进行 PCA?了解更多详情)

维数是细胞数还是基因数?

恕我直言,这相当含糊的,如上所述,取决于您对数据的看法(即您提出的问题/手头的应用程序)。

对于 PCA,有时还会使用“维度”来指代数据矩阵的等级,这会带来额外的歧义。秩不能大于行数和列数中的较小者,并且它也是该数据矩阵的最大主成分数,因此也是所得旋转坐标系的维数(在通过截断此坐标减少维数之前)系统)。

在您的 200 个细胞和 104 个基因的示例中,无论数据分析模式是否将细胞或基因视为变量,PC 最多将跨越 200 个维度。

cbeleites 的回答中已经提供了广泛的讨论,并且在类似的问题下(PCA 和 Correspondence analysis in their relationship to Biplot),所以我将简单地评论一下具体的视频。

由于叙述者从未在整个视频中明确提及“分数”或“加载”,并且 PCA 中的“维度”一词已经含糊不清,因此从技术上讲没有错误。但是,我同意你的观点,他的介绍令人困惑:第一部分指出要减少沿细胞的维度(200 个细胞 -> 2 个 PC),而第二部分实际上侧重于减少沿基因的维度(10,000 个基因 -> 2个)。我想说 PCA 有许多更好且仍然易于理解的介绍,具有一致的演示文稿和实际术语 例如:http ://webspace.ship.edu/pgmarr/Geo441/Lectures/Lec%2017%20-%20Principal%20Component%20Analysis .pdf

向量空间的定义非常笼统,有多种方法可以将数据表示为向量空间中的向量。

从我粗略的检查来看,他们可能在做以下事情?

  • 索引基因。i=1,,m
  • 索引单元格。j=1,,n
  • 在细胞中的基因表达水平xi,jij

然后我们有一个数据矩阵您可以在或转置上运行 PCA 。XXXT

将 X 的列视为向量(您自然会想到的)

您认为我们可以为每个单元格构造一个向量:j

yj=[x1,jx2,jxm,j]

也就是说,每个向量的基因表达水平(并且每个索引是不同的基因)。yjj

将 X 的行视为向量(它们在图 3 和图 4 中似乎在做什么?)

的列形成向量X

zi=[xi,1xi,2xi,n]
即每个向量显示基因的基因表达水平(每个细胞是载体的不同索引)。zii

前进到 PCA

一旦你有一堆向量,你总是可以进行 PCA 来找到那个空间的替代基础

当然,对该基础的特定学科领域的解释将取决于您的各种向量所代表的内容。

我不喜欢这些视频。通过引入不相关的细节,它们只会使理解 PCA 变得更加困难。此外,它们又长又冗长。

在应用方面,PCA 的想法非常简单。你有几个系列的数据,称它们为变量。假设您有 N 个变量(系列)x1(t),x2(t),,xN(t)

有时有一些潜在因素推动了所有这些系列。假设有 M 个因子,并且您怀疑(或肯定知道)它们驱动变量: f1(t),f2(t),,fM(t)

x1(t)=c11f1(t)++c1MfM(t)xN(t)=cN1f1(t)++cNMfM(t)

因此,您有兴趣提取因子值和系数因此,PCA 是实现这一目标的一种方式。事实上,如果您不知道 M 的确切数量是多少,它也可以帮助您找出答案。fj(t)cij