清风数学建模学习笔记——主成分分析(PCA)原理详解及案例分析

主成分分析(PCA)是一种降维算法,通过线性组合原始变量形成互不相关的主成分,保留数据的主要信息。文章介绍了PCA的基本思想、计算步骤,并通过案例分析展示如何选取主成分。PCA常用于数据简化、聚类分析和解决回归中的多重共线性问题,但在解释主成分含义时可能较为模糊。
摘要由CSDN通过智能技术生成

主成分分析

  本文将介绍主成分分析(PCA),主成分分析是一种降维算法,它能将多个指标转换为少数几个主成分,这些主成分是原始变量的线性组合,且彼此之间互不相关,其能反映出原始数据的大部分信息。 一般来说,当研究的问题涉及到多变量且变量之间存在很强的相关性时,我们可考虑使用主成分分析的方法来对数据进行简化。



一、主成分分析简介

  主成分分析可以用较少的新变量替换原来较多的新变量,而且是这些较少的新变量尽可能多地保留原来所反映的信息。
  主成分分析是数据降维算法的一种,降维是将高维度的数据(指标太多)保留下最重要的一些特征,去除噪声和不重要的特征,从而实现提升数据处理速度的目的。


二、主成分分析的思想

 假设有 n n n 个样本, p p p 个指标,则可构成大小为 n × p n\times p n×p 的样本矩阵 x x x

X = [ x 11 x 12 ⋯ x 1 p x 21 x 22 ⋯ x 2 p ⋮ ⋮ ⋱ ⋮ x n 1 x n 2 ⋯ x n p ] = ( x 1 , x 2 , ⋯   , x p ) X= \begin{bmatrix} x_{11} & x_{12} & \cdots &x_{1p} \\ x_{21}& x_{22} & \cdots &x_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n1}& x_{n2} & \cdots &x_{np} \end{bmatrix}=(x_1,x_2,\cdots,x_p) X=x11x21xn1x12x22xn2x1px2pxnp=(x1,x2,,xp)

 假设我们想找到新的一组变量 z 1 , z 2 , … , z m ( m ≤ p ) z_1,z_2,…,z_m( m ≤ p) z1,z2,,zm(mp),且它们满足:
{ z 1 = l 11 x 1 + l 12 x 2 + ⋯ + l 1 p x p z 2 = l 21 x 1 + l 22 x 2 + ⋯ + l 2 p x p ⋯ z m = l m 1 x 1 + l m 2 x 2 + ⋯ + l m p x p \begin{cases} z_1=l_{11}x_1+l_{12}x_2+\cdots+l_{1p}x_p\\ z_2=l_{21}x_1+l_{22}x_2+\cdots+l_{2p}x_p\\ \cdots\\ z_m=l_{m1}x_1+l_{m2}x_2+\cdots+l_{mp}x_p \end{cases} z1=l11x1+l12x2++l1pxpz2=l21x1+l22x2++l2pxpzm=lm1x1+lm2x2++lmpxp

 系数 l i j l_{ij} lij 的确定原则:

  1. z i z_i zi z j z_j zj (i≠j; i,j=1,2,…,m) 相互无关;
  2. z 1 z_1 z1 x 1 , x 2 , . . . , x p x_1,x_2,...,x_p x1,x2,...,xp 的一切线性组合中方差最大者;
  3. z 2 z_2 z2 是与 z 1 z_1 z1 不相关的 x 1 , x 2 , . . . , x p x_1,x_2,...,x_p x1,x2,...,xp 的所有线性组合中方差最大者;
  4. 以此类推, z m z_m zm是与 z 1 , z 2 , … , z m − 1 z_1,z_2,…,z_{m-1} z1,z2,,zm1 不相关的 x 1 , x 2 , . . . , x p x_1,x_2,...,x_p x1,x2,...,xp 的所有线性组合中方差最大者;
  5. 新变量指标 z 1 , z 2 , … , z m z_1,z_2,…,z_m z1,z2,,zm 分别称为原变量指标 x 1 , x 2 , . . . , x p x_1,x_2,...,x_p x1,x2,...,xp 的第一,第二,…,第 m m m 主成分。

三、主成分分析的计算步骤

 假设有 n n n 个样本, p p p 个指标,则可构成大小为 n × p n×p n×p 的样本矩阵 x x x
x = [ x 11 x 12 ⋯ x 1 p x 21 x 22 ⋯ x 2 p ⋮ ⋮ ⋱ ⋮ x n 1 x n 2 ⋯ x n p ] = ( x 1 , x 2 , ⋯   , x p ) x= \begin{bmatrix} x_{11} & x_{12} & \cdots &x_{1p} \\ x_{21}& x_{22} & \cdots &x_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n1}& x_{n2} & \cdots &x_{np} \end{bmatrix}=(x_1,x_2,\cdots,x_p) x=x11x21xn1x12x22xn2x1px2pxnp=(x1,x2,,xp)

1. 首先对其进行标准化处理:
按 列 计 算 均 值 : x ˉ j = 1 n ∑ i = 1 n x i j , 标 准 差 : S j = ∑ i = 1 n ( x i j − x ˉ j ) 2 n − 1 , 标 准 化 数 据 : X i j = x i j − x ˉ j S j 原 始 样 本 矩 阵 经 过 标 准 化 变 化 : X = [ X 11 X 12 ⋯ X 1 p X 21 X 22 ⋯ X 2 p ⋮ ⋮ ⋱ ⋮ X n 1 X n 2 ⋯ X n p ] = ( X 1 , X 2 , ⋯   , X p ) 按列计算均值:\bar x_j=\frac{1}{n} \sum_{i=1}^{n}x_{ij},\quad 标准差:S_j=\sqrt{\frac{\displaystyle\sum_{i=1}^{n}(x_{ij}-\bar x_j)^2}{n-1}},\quad 标准化数据:X_{ij}=\frac{x_{ij}-\bar x_j}{S_j}\\ 原始样本矩阵经过标准化变化: X= \begin{bmatrix} X_{11} & X_{12} & \cdots &X_{1p} \\ X_{21}& X_{22} & \cdots &X_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ X_{n1}& X_{n2} & \cdots &X_{np} \end{bmatrix}=(X_1,X_2,\cdots,X_p) xˉj=n1i=1nxij,Sj=n1i=1n(xijxˉj)2 ,Xij=SjxijxˉjX=X11X21Xn1X12X22Xn2X1pX2pXnp=(X1,X2,,Xp)


2. 计算标准化样本查的协方差矩阵:
R = [ r 11 r 12 ⋯ r 1 p r 21 r 22 ⋯ r 2 p ⋮ ⋮ ⋱ ⋮ r p 1 r p 2 ⋯ r p p ] R= \begin{bmatrix} r_{11} & r_{12} & \cdots &r_{1p} \\ r_{21}& r_{22} & \cdots &r_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ r_{p1}& r_{p2} & \cdots &r_{pp} \end{bmatrix} R=r11r21rp1r12r22rp2r1pr2prpp r i j = 1 n − 1 ∑ k = 1 n ( X k i − X ‾ i ) ( X k i − X ‾ j ) = 1 n − 1 ∑ k = 1 n X k i X k j r_{ij}=\frac{1}{n-1}\sum_{k=1}^{n}{(X_{ki}-\overline X_i)(X_{ki}-\overline X_j)}=\frac{1}{n-1}\sum_{k=1}^{n}{X_{ki}X_{kj}} rij=n11k=1n(XkiXi)(XkiXj)=n11k=1nXkiXkj


 1、2步骤可以合成一步:
R = ∑ k = 1 n ( x k i − x ‾ i ) ( x k i − x ‾ j ) ∑ k = 1 n ( x k i − x ‾ i ) 2 ∑ k = 1 n ( x k j − x ‾ j ) 2 R=\frac{\displaystyle\sum_{k=1}^{n}{(x_{ki}-\overline x_i)(x_{ki}-\overline x_j)}}{\sqrt{\displaystyle\sum_{k=1}^{n}{(x_{ki}-\overline x_i)^2}\sum_{k=1}^{n}{(x_{kj}-\overline x_j)^2}}} R=k=1n(xkixi)2k=1n(xkjxj)2 k=1n(xkixi)(xkixj)


3. 计算 R 的特征值和特征值向量:
特 征 值 λ 1 ≥ λ 2 ≥ ⋯ ≥ λ p ≥ 0 , ( R 是 半 正 定 矩 阵 , 且 t r ( R ) = ∑ k = 1 p λ k = p ) 特 征 向 量 : a 1 = [ a 11 a 21 ⋮ a p 1 ] , a 2 = [ a 12 a 22 ⋮ a p 2 ] , ⋯   , a p = [ a 1 p a 2 p ⋮ a p p ] 特征值 \lambda_1≥\lambda_2≥\cdots≥\lambda_p≥0,\quad(R是半正定矩阵,且tr(R)=\sum_{k=1}^{p}\lambda_k=p)\\ 特征向量:a_1=\left[ \begin{array}{c} a_{11}\\a_{21}\\ \vdots\\a_{p1} \end{array} \right],a_2=\left[ \begin{array}{c} a_{12}\\a_{22}\\ \vdots\\a_{p2} \end{array} \right],\cdots,a_p=\left[ \begin{array}{c} a_{1p}\\a_{2p}\\ \vdots\\a_{pp} \end{array} \right] λ1λ2λp0,(Rtr(R)=k=1pλk=p)a1=a11a21ap1,a2=a12a22ap2,,ap=a1pa2papp


4. 计算主成分共享率以及累计贡献率:
贡 献 率 = λ i ∑ k = 1 p λ k , 累 加 贡 献 率 = ∑ k = 1 i λ k ∑ k = 1 p λ k , ( i = 1 , 2 , ⋯   , p ) 贡献率=\frac{\lambda_i}{\displaystyle\sum_{k=1}^{p}{\lambda_k}},\quad累加贡献率=\frac{\displaystyle\sum_{k=1}^{i}{\lambda_k}}{\displaystyle\sum_{k=1}^{p}{\lambda_k}},\quad(i=1,2,\cdots,p) =k=1pλkλi,=k=1pλkk=1iλk,(i=1,2,,p)


5. 写出主成分:

 一般取累计贡献率超过 80% 的特征值所对应的第一、第二、…、第 m m m m ≤ p m≤p mp)个主成分。
第 i 个 主 成 分 : F i = a 1 i X 1 + a 2 i X 2 + ⋯ + a p i X p 第i个主成分:F_i = a_{1i}X_1+a_{2i}X_2+\cdots+a_{pi}X_p iFi=a1iX1+a2iX2++apiXp


6. 根据系数分析主成分代表的意义:

 对于某个主成分而言,指标前面的系数越大,代表该指标对于该主成分的影响越大。


四、案例分析

题目来源于:《应用多元统计分析》王学民

  在制定服装标准的过程中,对128名成年男子的身材进行了测量,每人测得的指标中含有这样六项:身高( x 1 x_1 x1)、坐高( x 2 x_2 x2) 、胸围( x 3 x_3 x3) 、手臂长( x 4 x_4 x4) 、肋围( x 5 x_5 x5)和腰围( x 6 x_6 x6) 。所得样本相关系数矩阵(对称矩阵哦)列于下表。
在这里插入图片描述

注意:本题相当于直接把 第一二步骤计算好,但是我们在建模的时候得到的是最原始的数据(每一列是指标,每一行是样本)。


经过计算,相关系数矩阵的特征值、相应的特征向量以及贡献率列于下表:

在这里插入图片描述
注意:matlab 求得的特征值向量,默认进行了归一化,验证方法:每一列平方和之后开根号。

  从表中可以看到前三个主成分的累计贡献率达85.9%,因此可以考虑只取前面三个主成分,它们能够很好地概括原始变量。
在这里插入图片描述

   X i X_i Xi 均是标准化后的指标, x i x_i xi:身高、坐高、胸围、手臂长、肋围和腰围

  • 第一主成分 F 1 F_1 F1 对所有(标准化)原始变量都有近似相等的正载荷,故称第一主成分为(身材)大小成分。
  • 第二主成分 F 2 F_2 F2 X 3 X_3 X3 X 5 X_5 X5 X 6 X_6 X6。上有中等程度的正载荷,而在 X 1 X_1 X1 X 2 X_2 X2 X 4 X_4 X4 上有中等程度的负载荷,称第二主成分为形状成分(或胖瘦成分)。
  • 第三主成分 F 3 F_3 F3 X 2 X_2 X2 上有大的正载荷,在 X 4 X_4 X4 上有大的负载荷,而在其余变量上的载荷都较小,可称第三主成分为臂长成分。

 注:由于第三主成分的贡献率不高( 7.65%)且实际意义也不太重要,因此我们也可以考虑只取前两个主成分进行分析。


五、模型扩展(★)

  1. 主成分的解释其含义一般多少带有点模糊性,不像原始变量的含义那么清楚、确切,这是变量降维过程中不得不付出的代价。
  2. 主成分分析的困难之处主要在于要 能够给出主成分的较好解释,所提取的主成分中如有一个主成分解释不了,整个主成分分析也就失败了。
  3. 主成分分析不可用于评价类模型。
  4. 主成分分析可用于聚类分析,将自变量进行降维方便画图。
  5. 主成分分析也可用于回归分析解决多重共线性的问题。
  6. 主成分分析实际上是因子分析的特例,但是由于因子分析便于解释,所以建议大家多用因子分析。

  本文借鉴了数学建模清风老师的课件与思路,如果大家发现文章中有不正确的地方,欢迎大家在评论区留言,也可以点击查看下方链接查看清风老师的视频讲解~

原文链接:https://www.bilibili.com/video/BV1DW411s7wi

主成分分析(Principal Component Analysis,PCA)是一种常用的特征提取方法。它通过线性变换将原始数据投影到一个新的坐标系中,使得投影后的数据具有最大的方差。这些新的坐标轴被称为成分,它们是原始数据中最能区分样本之间差异的方向。 PCA的基本思想是找到一个最佳的投影方向,使得数据在该方向上的投影具有最大的方差,然后找到一个与第一个方向正交的第二个方向,使得数据在该方向上的投影具有次大的方差,依此类推。通过选择前k个成分,就可以将原始数据降维到k维空间中。 PCA具有以下几个应用和优点: 1. 数据降维:通过PCA可以将高维数据降低到低维空间,减少特征数量,同时保留了原始数据中最重要的信息。 2. 去除冗余信息:PCA可以去除原始数据中的冗余信息,提取出最相关的特征。 3. 数据可视化:PCA可以将高维数据映射到二维或三维空间中,便于可视化观察和分析。 4. 数据预处理:PCA可以在机器学习任务前对数据进行预处理,减少噪声和冗余信息对模型的影响。 5. 特征选择:基于PCA的方差解释率,可以选择保留多少个成分,从而选择最具代表性的特征。 需要注意的是,PCA是一种线性降维方法,对于非线性的数据分布效果可能不好。在这种情况下,可以考虑使用非线性降维方法,如核主成分分析(Kernel PCA)等。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xiu Yan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值