2807 字
14 分钟
高级统计方法 第一轮学习 Chapter 10

高级统计方法 第一轮学习 Chapter 10 无指导学习#

主成分分析#

1.1 主成分分析#

主成分分析#

主成分分析(principal components analysis,PCA)是一种降维技术,用于将高维数据投影到低维空间,同时尽可能保留数据的变异性。可以找到具有最大方差且互不相关的变量的线性组合序列。

除了能够在有指导学习模型(线性模型选择-降维)中充当派生变量之外,PCA 还可以作为数据可视化(观测或变 量的可视化)的工具。

主成分分析:细节#

给定一组变量 X1,X2,,XpX_1, X_2, \ldots, X_p,其某种线性化组合为:

Z1(n×1)=X(n×p)×ϕ1(p×1)=[X11X12X1pX21X22X2pXn1Xn2Xnp]×[ϕ11ϕ21ϕp1]=[Z11Z21Zn1]Z_{1(n\times1)} = X_{(n\times p)} \times \phi_{1(p\times1)} = \begin{bmatrix} X_{11} & X_{12} & \ldots & X_{1p} \\ X_{21} & X_{22} & \ldots & X_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ X_{n1} & X_{n2} & \ldots & X_{np} \end{bmatrix} \times \begin{bmatrix} \phi_{11} \\ \phi_{21} \\ \vdots \\ \phi_{p1} \end{bmatrix} = \begin{bmatrix} Z_{11} \\ Z_{21} \\ \vdots \\ Z_{n1} \end{bmatrix}
  1. XnpX_{np} 代表 nnpp 列的原始数据,总共 nn 个数据点,每个数据点有 pp 个特征。

  2. 一般,使用 ii 表征某行(代表某条样本),jj 表征某列(表示某个特征)。

  3. 注意:数据的维度是 npn * p,而 ϕ\phi 的维度 p1p * 1 列(数据的 pp 个特征的对应载荷),也符合矩阵相乘的定义。

  4. ϕ\phi 的的每一行表示每个特征对应1个权重,即载荷。

主成分计算#

第一主成分是标准化线性组合中方差最大的线性组合:

Z1=X×ϕ1=ϕ11X1+ϕ21X2++ϕp1XpZ_1 = X \times \phi_1 = \phi_{11} X_1 + \phi_{21} X_2 + \ldots + \phi_{p1} X_p

可以细化:zi1=ϕ11Xi1+ϕ21Xi2++ϕp1Xipz_{i1} = \phi_{11} X_{i1} + \phi_{21} X_{i2} + \ldots + \phi_{p1} X_{ip}

标准化线性组合的含义:j=1pϕj12=1\sum_{j=1}^{p} \phi_{j1}^2 = 1,其中 ϕj1\phi_{j1} 是第 jj 个特征在第一主成分中的载荷,这些载荷构成了主成分的载荷向量 ϕ1=[ϕ11,ϕ21,,ϕp1]T\phi_1 = \begin{bmatrix}\phi_{11}, \phi_{21}, \cdots, \phi_{p1} \end{bmatrix}^{T}

标准化主要是为了防止载荷绝对值任意大而导致方差变得任意大,限定这些载荷的平方和为 11,即 j=1pϕj12=1\sum_{j=1}^{p} \phi_{j1}^2 = 1

此外,一般假定 XX 的每个变量都经过中心化、标准化处理,即每个变量(特征,纵列上)均值为 00,方差为 11

Z1Z_1 的方差为:

Var(Z1)=1ni=1n(zi1z1ˉ)2=1ni=1nzi12=1ni=1n(ϕ11Xi1+ϕ21Xi2++ϕp1Xip)2\text{Var}(Z_1) = \frac1n \sum_{i=1}^{n} (z_{i1} - \bar{z_1})^2 = \frac1n \sum_{i=1}^{n} z_{i1}^2 = \frac1n \sum_{i=1}^{n} (\phi_{11} X_{i1} + \phi_{21} X_{i2} + \ldots + \phi_{p1} X_{ip})^2

这里 z1ˉ=0\bar{z_1} = 0,因为 XX 的每个变量都经过中心化处理。

第一主成分的载荷向量在解如下的最优化问题:

maxϕ11ϕp1{1ni=1n(i=1pϕj1xij)2},subject to j=1pϕj12=1\underset{\phi_{11}\cdots\phi_{p1}}{\mathrm{max}}\left\{\frac{1}{n}\sum_{i=1}^{n}(\sum_{i=1}^{p}\phi_{j1}x_{ij})^{2}\right\}, \quad \text{subject to } \sum_{j=1}^{p} \phi_{j1}^2 = 1

优化得到的载荷向量 ϕj1(1jp)\phi_{j1}(1 \leq j \leq p) 后,即可进一步计算得出 z11,z21,,zn1z_{11}, z_{21}, \ldots, z_{n1},即为第一主成分的得分(score),即以第一主成分为新坐标系下的各个观测值。

通过线性代数中的特征分解来求解上述优化问题。

第一主成分的载荷向量 ϕ1\phi_1 定义了在向量空间上数据变异最大的方向。

如果将 nn 个观测点投影到该方向上,即:

Z1=ϕ11X1+ϕ21X2++ϕp1Xp=j=1pϕj1XjZ_1 = \phi_{11} X_1 + \phi_{21} X_2 + \ldots + \phi_{p1} X_p = \sum_{j=1}^{p} \phi_{j1} X_j

这些投影值就是第一主成分的得分。

第二主成分也是 X1,X2,,XpX_1, X_2, \ldots, X_p 的线性组合,为与 Z1Z_1 不相关的各种线性组合中方差最大的。

第二主成分得分有如下形式:

zi2=ϕ12xi1+ϕ22xi2++ϕp2xipz_{i2}=\phi_{12}x_{i1}+\phi_{22}x_{i2}+\cdots+\phi_{p2}x_{ip}

其中,ϕ2\phi_2 表示的是第二主成分的载荷向量,其分量是 ϕj2\phi_{j2}

Z2Z_2Z1Z_1 不相关,相当于使 ϕ2\phi_2 的方向与 ϕ1\phi_1 的方向垂直,所以,Z2Z_2 投影到 Z1Z_1 上为 00,对 Z1Z_1 的数值没有影响。往后以此类推。

数学上,主成分方向 ϕ1,ϕ2,ϕ3,\phi_1, \phi_2, \phi_3, \ldots 是矩阵𝐗𝑇𝐗的特征向量依次排序,主成分的方差是其特征根。

数据最多可以有 min(n,p)\min(n, p) 个主成分。

主成分的另一种解释#

主成分提供了一个与观测最为接近的低维线性空间

第一主成分载荷向量有一个特殊的性质:它是 pp 维空间中一条最接近 nn 个观测的线(用平均平方欧式距离度量接近的程度)。

相应的,在平方欧式距离意义下,数据集的前两个主成分张成了与 nn 个观测最接近的平面。

nn 个观测最接近的维度方向的主成分概念是对第一主成分内涵的延展。

方差的解释比例#

对于 PCA,我们感兴趣在一个给定的数据集中,将观测投影到前几个少数的主成分上损失了多少信息。即即每个主成分的方差解释比率(proportion of variance explained, PVE)。

数据集的总方差(假设变量已中心化,其均值为 00)定义如下:

Total Variance=j=1pVar(Xj)=j=1p1ni=1nxij2\text{Total Variance} = \sum_{j=1}^{p} \text{Var}(X_j) = \sum_{j=1}^{p} \frac1n \sum_{i=1}^{n} x_{ij}^2

mm 个主成分的方差为:

Var(Zm)=1ni=1nzim2\text{Var}(Z_m) = \frac1n \sum_{i=1}^{n} z_{im}^2

主成分变换后的总方差和原始总方差相同:

m=1pVar(Zm)=j=1pVar(Xj),M=min(n1,p)\sum_{m=1}^{p} \text{Var}(Z_m) = \sum_{j=1}^{p} \text{Var}(X_j), \quad M = \min(n - 1, p)

mm 个主成分的方差解释比例定义为:

PVEm=i=1nzim2j=1pi=1nxij2\text{PVE}_m = \frac{\sum_{i=1}^{n} z_{im}^2}{\sum_{j=1}^{p} \sum_{i=1}^{n} x_{ij}^2}

每个主成分的 PVE 都是正值,在 0011 之间。一共有 min(n1,p)\min(n - 1, p) 个主成分,它们的 PVE 的和为 11。有时图示给出的是累计方差解释率,即随着主成分个数增加,累计 PVE 的逐渐增加趋于 11

主成分的数量#

我们希望用最少量的主成分来形成对数据的一个很好的理解。那么到底需要多少个主成分呢?

这个问题没有唯一的(或者说简单的)答案,因为这里我们并不能使用交叉验证。因为 PCA 是无监督学习方法,没有响应变量。

聚类分析#

2.0 聚类分析#

聚类分析方法#

聚类分析(clustering)是在一个数据集中寻找子群(subgroups)或类/簇(clusters)的技术。

聚类分析希望将数据分割到不同的类中,使每个类内的观测非常相似。

为了确切地表达相似的概念,必须对2个或更多观测的相似(similar)或者相异(different)进行定义。这个问题则必须结合问题所来源的特殊背景经数据分析后方能获得答案。

两种聚类算法#

K 均值聚类(K-means clustering)试图将观测划分到事先规定数量的类中。

系统聚类(hierarchical clustering)并不需要事先规定所需的类的总数。我们最后会通过分析观测的树型表示,即谱系图(dendrogram)来确定类数。通过看谱系图还可以马上获得从 11 类到 nn 类类数不等的分类情况。

2.1 K 均值聚类#

K 均值聚类#

C1,C2,,CkC_1, C_2, \ldots, C_k 表示在每个类中包含观测指标的集合。这些集合满足两个性质:

  1. CkCk=C_k \cap C_{k'} = \varnothing,即每个观测只能属于一个类。

  2. k=1KCk={1,2,,n}\bigcup_{k=1}^{K} C_k = \{1, 2, \ldots, n\},即所有观测都被分配到某个类中。

K 均值聚类(思想)#

K 均值聚类法的思想是:使类内差异(within-cluster variation)尽可能小。

CkC_k 类的类内差异是对第 CkC_k 类中观测互不相同程度的度量,记为:W(Ck)W(C_k)

因此,K 均值聚类需要解决如下的最小化问题:

minC1,C2,,CKk=1KW(Ck)\underset{C_1, C_2, \ldots, C_K}{\text{min}} \sum_{k=1}^{K} W(C_k)

定义类内差异#

通常使用平方欧式距离定义:

W(Ck)=1Cki,iCkj=1p(xijxij)2W(C_k) = \frac{1}{|C_k|} \sum_{i, i' \in C_k} \sum_{j=1}^{p} (x_{ij} - x_{i'j})^2

其中,Ck|C_k| 是第 kk 类中观测的个数。

进一步,可以得到 K 均值聚类法的最优化问题:

minC1,C2,,CKk=1K1Cki,iCkj=1p(xijxij)2\underset{C_1, C_2, \ldots, C_K}{\text{min}} \sum_{k=1}^{K} \frac{1}{|C_k|} \sum_{i, i' \in C_k} \sum_{j=1}^{p} (x_{ij} - x_{i'j})^2

算法#

  1. 为每个观测随机分配一个从 11KK 的数字。这些数字可以看作对这些观测的初始类。

  2. 重复下列操作,直到类的分配停止为止:

    1. 分别计算 KK 个类的中心(centroids),第 kk 个类中心(centroid)是第 kk 个类中的 pp 维观测向量的均值向量。

    2. 将每个观测分配到距离其最近的类中心所在的类中(用欧式距离定义“最近(closest)”)。

    • 即:对每个观测点,计算它到 kk 个类中心的距离,然后把它分配到最近(距离最小)的类中

2.2 系统聚类#

系统聚类法#

K 均值聚类法的一个潜在的不足是:需要预设类数 KK

系统聚类法(Hierarchical clustering)是一种事先不需要规定类数 KK 的聚类方法。

凝聚法,是一种自下而上的,较为常见的系统聚类法,它的谱系图(通常被形容为一棵上下颠倒的树)从叶子开始将聚类集到树干上。

我们需要首先生成谱系图,然后根据谱系图切割生成多个类。

算法#

  1. 从谱系图的底部开始,nn 个观测各自都被看作一类。

  2. 将两个最为相似的类汇合到一起,就得到了 n1n - 1 个类。

  3. 重复步骤2,直到所有观测都被汇合到一个类中为止。此时,谱系图形成。

  • 在谱系图上做水平切割,在切口下方生成的(彼此断开的)数据集即可解释为聚类所产生的不同的类。

距离计算#

  1. 评估两个点的距离:欧氏距离,相关性距离

  2. 点与集合之间,集合与集合之间的距离计算方式:

    1. 最短距离(single):两个集合中距离最近的两个点之间的距离。
    • 最短距离法会导致观测一个接一个地汇合延伸拖尾的类。
    1. 最长距离(complete):两个集合中距离最远的两个点之间的距离。

    2. 类平均(average):两个集合中所有点对之间距离的平均值。

    3. 重心法(centroid):类中心(长度为 pp 的均值向量)之间的距离。

    • 重心法会导致一种不良的倒置现象的发生。

目前我们使用的相异度指标都是欧氏距离。

另一种可选的方法是基于相关性的距离(correlation-based distance),用相关性的距离去度量两个观测的相似性。

这并非相关系数的常规用法,因为它用于变量间相关性的计算。但在这里,它计算的是每对观测的观测剖面之间的相关性。

有余弦距离、切比雪夫距离、Jaccard相似系数、曼哈顿距离等等。

聚类分析的实践问题#

聚类分析之前,需要先回答如下问题。

观测或变量需要先经过某种标准化处理吗?比如,变量中心化为均值为 00,或标准化为标准差为 11。(需要)

系统聚类法中的问题:

  • 用什么指标度量相异度?(欧氏距离、相关性)

  • 选择怎样的距离计算方法?(最短距离、最长距离、类平均、重心)

  • 在谱系图的哪个位置切割出不同的类?(剪刀的高度,类的个数)

在 K 均值聚类法中,数据分成多少类比较合适?(并没有标准答案)

使用什么特性(features)(原始特征,PCA成分等)用于聚类?

高级统计方法 第一轮学习 Chapter 10
https://blog.farewe1ll.top/posts/高级统计方法第一轮学习-chapter_10/
作者
Farewe1ll 山竹
发布于
2025-11-26
许可协议
CC BY-NC-SA 4.0