Chapter 12 Priciple Component Analysis

本篇是第十二章,内容是主成分分析。

  • Chapter 12 Priciple Component Analysis

    • 主成分分析基本思想
    • 几何解释与数学模型
      • 1 几何解释
      • 2 数学模型
    • 主成分的推导
    • 主成分的性质
    • 主成分分析的步骤
    • 主成分的应用与回归
    • 主成分分析的R语言实现

1 主成分分析基本思想

依旧从问题开始本篇的介绍。地理学和生态学研究里经常遇到的问题就是,影响变量非常之多,而且地球表层地理生态环境现象无法使用控制变量的方式进行实验。同时影响变量非常多,经常出现变量冗余、冗杂的现象,同时多元分布数据本身对人类的认知就是一种挑战。这里举个栗子:比如在研究城市经济发展的时候,我们会考虑到的因素会包括第一产业、第二产业、第三产业占比,城市人口,城市地理位置,城市气候适宜度,政策扶持等等很多因子,但是这里有很多因子存在共线性的情况,也就是变量冗余冗杂。用矛盾论的话说,要抓住主要矛盾,那么如何在多元分布数据中分离出主要的因子,这就是本篇的主角主成分分析(Priciple Component Analysis,PCA)。

所以它的基本思想是。

在社会经济的研究中,为了全面系统的分析和研究问题,必须考虑许多经济指标,这些指标能从不同的侧面反映我们所研究的对象的特征,但在某种程度上存在信息的重叠,具有一定的相关性。这种信息的重叠有时甚至会抹杀事物的真正特征与内在规律。
主成分分析是利用降维的思想, 在力求数据信息丢失最少的原则下,对高维的变量空间降维,即在众多变量中找出少数几个综合指标(原始变量的线性组合),并且这几个综合指标将尽可能多地保留原来指标变异方面的信息,且这些综合指标互不相关。这些综合指标就称为主成分。主成分的数目少于原始变量的数目。
在一个低维空间识辨系统要比在一个高维空间容易得多。因此,更容易抓住主要矛盾,揭示事物内部变量之间的规律性,使问题得到简化,提高分析效率。指标间具有相关性是做主成分分析的前提。
主成分分析是一种数学变换方法,它把给定的一组变量通过线性变换转换为一组不相关的变量。在这种变换中,保持变量的总方差不变,同时,使第一主成分具有最大方差,第二主成分具有次大方差,依此类推。
主成分与原始变量间的关系
(1)每一个主成分是原始变量的线性组合。
(2)主成分的数目少于原始变量的数目。
(3)主成分保留了原始变量的大多数变异信息。
(4)各主成分间互不相关。

2 几何解释与数学模型

2.1 几何解释

假定只有二维,即只有两个变量,由横坐标和纵坐标所代表;每个观测值都有相应于这两个坐标轴的坐标值。如果这些数据形成一个椭圆形状的点阵(这在二维正态的假定下是可能的)该椭圆有一个长轴和一个短轴。在短轴方向上数据变化较少。在极端的情况,短轴如退化成一点,长轴的方向可以完全解释这些点的变化,由二维到一维的降维就自然完成了。

由图可以看出这些样本点无论是沿着 xl x_l轴方向或 x2 x_2轴方向都具有较大的离散性,其离散的程度可以分别用观测变量 xl x_l的方差和 x2 x_2的方差定量地表示。显然,如果只考虑 x1 x_1和 x2 x_2中的任何一个,那么包含在原始数据中的经济信息将会有较大的损失。
当坐标轴和椭圆的长短轴平行,那么代表长轴的变量就描述了数据的主要变化,而代表短轴的变量就描述了数据的次要变化。但是,坐标轴通常并不和椭圆的长短轴平行。因此,需要寻找椭圆的长短轴,并进行变换,使得新变量和椭圆的长短轴平行。如果长轴变量代表了数据包含的大部分信息,就用该变量代替原先的两个变量(舍去次要的一维),降维就完成了。椭圆的长短轴相差得越大,降维也越有道理。

2.2 数学模型

如果我们将xl轴和x2轴先平移,再同时按逆时针方向旋转 θ \theta角度,得到新坐标轴Fl和F2。Fl和F2是两个新变量。根据旋转变换的公式:

{y1=x1cosθ+x2sinθy2=−x1sinθ+x2cosθ

\begin{cases} y_1=x_1\cos\theta+x_2\sin\theta\\y_2=-x_1\sin\theta+x_2\cos\theta \end{cases}

(y1y2)=(cosθ\-sinθsinθcosθ)(x1x2)=U′x

\begin{pmatrix} y_1\\y_2 \end{pmatrix}=\begin{pmatrix} \cos\theta & \sin\theta\\\-sin\theta & \cos\theta \end{pmatrix} \begin{pmatrix} x_1\\x_2 \end{pmatrix}=U'x
U′ U'为旋转变换矩阵,它是正交矩阵,即有 U′=U−1,U′U−1=I U'=U^{-1},U'U^{-1}=I。
旋转变换的目的是为了使得n个样品点在 Fl F_l轴方向上的离散程度最大,即 Fl F_l的方差最大。变量 Fl F_l代表了原始数据的绝大部分信息,在研究某经济问题时,即使不考虑变量 F2 F_2也无损大局。经过上述旋转变换原始数据的大部分信息集中到 Fl F_l轴上,对数据中包含的信息起到了浓缩作用。
Fl F_l, F2 F_2除了可以对包含在 Xl X_l, X2 X_2中的信息起着浓缩作用之外,还具有不相关的性质,这就使得在研究复杂的问题时避免了信息重叠所带来的虚假性。二维平面上的个点的方差大部分都归结在 Fl F_l轴上,而 F2 F_2轴上的方差很小。 Fl F_l和 F2 F_2称为原始变量, x1 x_1和 x2 x_2的综合变量。 简化了系统结构,抓住了主要矛盾。
多维情形
多维变量的情况和二维类似。正如二维椭圆有两个主轴,三维椭球有三个主轴一样,有几个变量,就有几个主轴。和二维情况类似,高维椭球的主轴也是互相垂直的。首先把高维椭球的主轴找出来,再用代表大多数数据信息的最长的几个轴作为新变量。这些互相正交的新变量是原先变量的线性组合,叫做主成分(principal component)。
假设我们所讨论的实际问题中,有p个指标,我们把这p个指标看作p个随机变量,记为 X1,X2,⋯,Xp X_1, X_2, \cdots,X_p,主成分分析就是要把这个p指标的问题,转变为讨论p个指标的线性组合的问题,而这些新的指标 F1,F2,⋯,Fk(k≤p) F_1, F_2, \cdots, F_k(k\le p),按照保留主要信息量的原则充分反映原指标的信息,并且相互独立。
这种由讨论多个指标降为少数几个综合指标的过程在数学上就叫做降维。主成分分析通常的做法是,寻求原指标的线性组合Fi。

F1=u11X1+u21X2+⋯+up1XpF2=u12X1+u22X2+⋯+up2Xp⋯Fp=u1pX1+u2pX2+⋯+uppXp

F_1=u_{11}X_1+u_{21}X_2+\cdots+u_{p1}X_p\\F_2=u_{12}X_1+u_{22}X_2+\cdots+u_{p2}X_p\\\cdots\\F_p=u_{1p}X_1+u_{2p}X_2+\cdots+u_{pp}X_p
满足条件
每个主成分的系数平方和为1。即

u21i+u22i+⋯+u2pi=1

u_{1i}^2+u_{2i}^2+\cdots+u_{pi}^2=1
主成分之间相互独立,即无重叠的信息。即

Cov(Fi,Fj)=0,i≠j,i,j=1,2,⋯,p

Cov(F_i,F_j)=0,i\neq j,i,j=1,2,\cdots,p
主成分的方差依次递减,重要性依次递减,即

Var(F1)≥Var(F2)≥⋯≥Var(Fp)

Var(F_1)\ge Var(F_2)\ge \cdots \ge Var(F_p)

3 主成分的推导

两个线性代数的结论
1、若A是p阶实对称矩阵,则一定可以找到正交阵U,使

U−1AU=⎡⎣⎢⎢⎢⎢⎢λ10⋮00λ2⋮0⋯⋯⋱⋯00⋮λp⎤⎦⎥⎥⎥⎥⎥p×p

U^{-1}AU=\begin{bmatrix} \lambda_1 & 0 & \cdots & 0\\0 & \lambda_2 & \cdots & 0\\\vdots & \vdots & \ddots & \vdots\\0 & 0 & \cdots & \lambda_p \end{bmatrix}_{p\times p}
其中 λi,i=1,2,⋯,p \lambda_i,i=1,2,\cdots,p 是A的特征根。
2、若上述矩阵的特征根所对应的单位特征向量为 u1,⋯,up u_1,\cdots,u_p。

U=(u1,⋯,up)=⎡⎣⎢⎢⎢⎢⎢u11u21⋮up1u12u22⋮up2⋯⋯⋯u1pu2p⋮upp⎤⎦⎥⎥⎥⎥⎥

U=(u_1,\cdots,u_p)=\begin {bmatrix} u_{11} & u_{12} & \cdots & u_{1p}\\u_{21} & u_{22} & \cdots & u_{2p}\\\vdots & \vdots & & \vdots\\u_{p1} & u_{p2} & \cdots & u_{pp} \end {bmatrix}
则实对称阵A属于不同特征根所对应的特征向量是正交的,即有 U′U=UU′=I U'U=UU'=I
第一主成分
设X的协方差阵为

Σx=⎡⎣⎢⎢⎢⎢⎢σ11σ21⋮σp1σ12σ22⋮σp2⋯⋯⋯σ1pσ2p⋮σpp⎤⎦⎥⎥⎥⎥⎥

\Sigma_x=\begin {bmatrix} \sigma_{11} & \sigma_{12} & \cdots & \sigma_{1p}\\\sigma_{21} & \sigma_{22} & \cdots & \sigma_{2p}\\\vdots & \vdots & & \vdots\\\sigma_{p1} & \sigma_{p2} & \cdots & \sigma_{pp} \end {bmatrix}
由于 Σx \Sigma_x为非负定的对称阵,必存在正交阵U,使得:

U′ΣxU=⎡⎣⎢⎢λ10⋱0λp⎤⎦⎥⎥

U'\Sigma_x U=\begin {bmatrix} \lambda_1 & & 0\\& \ddots &\\0 & & \lambda_p \end {bmatrix}
其中 λ1,λ2,⋯,λp \lambda_1,\lambda_2,\cdots,\lambda_p为 Σx \Sigma_x的特征根。不妨假设 λ1≥λ2≥⋯≥λp \lambda_1\ge \lambda_2\ge \cdots \ge \lambda_p。而U恰好是由特征根相对应的特征向量所组成的正交阵。

U=(u1,⋯,up)=⎡⎣⎢⎢⎢⎢⎢u11u21⋮up1u12u22⋮up2⋯⋯⋯u1pu2p⋮upp⎤⎦⎥⎥⎥⎥⎥

U=(u_1,\cdots,u_p)=\begin {bmatrix} u_{11} & u_{12} & \cdots & u_{1p}\\u_{21} & u_{22} & \cdots & u_{2p}\\\vdots & \vdots & & \vdots\\u_{p1} & u_{p2} & \cdots & u_{pp} \end {bmatrix}

Ui=(u1i,u2i,⋯,upi)′i=1,2,⋯,p

U_i=(u_{1i},u_{2i},\cdots,u_{pi})' i=1,2,\cdots,p
设有p维正交向量 a1=(a11,a21,⋯,ap1)′ a_1=(a_{11},a_{21},\cdots,a_{p1})', F1=a11X1+⋯+ap1Xp=a′X F_1=a_{11}X_1+\cdots+a_{p1}X_p=a'X

V(F1)=a′1Σa1==a′1U⎡⎣⎢⎢⎢⎢λ1λ2⋯λp⎤⎦⎥⎥⎥⎥U′a1

V(F_1)=a_1'\Sigma a_1==a_1'U\begin {bmatrix} \lambda_1 & & &\\& \lambda_2 & &\\& & \cdots & &\\& & & \lambda_p &\end {bmatrix}U'a_1
当且仅当 a1=u1 a_1=u_1时,即 F1=u11X1+⋯+up1Xp F_1=u_{11}X_1+\cdots+u_{p1}X_p时,有最大的方差 λ1 \lambda_1。 Var(F1)=U′1ΣxU1=λ1 Var(F_1)=U_1'\Sigma_x U_1=\lambda_1。如果第一主成分的信息不够,则需要寻找第二主成分。
第二主成分
在约束条件 cov(F1,F2)=0 cov(F_1,F_2)=0下,寻找第二主成分,取线性变换

F2=u12X1+⋯+up2Xp

F_2=u_{12}X_1+\cdots+u_{p2}X_p
的方差次大

cov(F1,F2)=cov(u′1x,u′2x)=u′2Σu1=λ1u′2u1=0

cov(F_1,F_2)=cov(u_1'x,u_2'x)=u_2'\Sigma u_1=\lambda_1 u_2'u_1=0

Var(F2)=U′2ΣxU2=λ2

Var(F_2)=U_2'\Sigma_x U_2=\lambda_2
类推

F1=u11X1+u21X2+⋯+up1XpF2=u12X1+u22X2+⋯+up2Xp⋯Fp=u1pX1+u2pX2+⋯+uppXp

F_1=u_{11}X_1+u_{21}X_2+\cdots+u_{p1}X_p\\F_2=u_{12}X_1+u_{22}X_2+\cdots+u_{p2}X_p\\\cdots\\F_p=u_{1p}X_1+u_{2p}X_2+\cdots+u_{pp}X_p
写成矩阵形式:

F=U′X

F=U'X

U=(u1,⋯,up)=⎡⎣⎢⎢⎢⎢⎢u11u21⋮up1u12u22⋮up2⋯⋯⋯u1pu2p⋮upp⎤⎦⎥⎥⎥⎥⎥

U=(u_1,\cdots,u_p)=\begin {bmatrix} u_{11} & u_{12} & \cdots & u_{1p}\\u_{21} & u_{22} & \cdots & u_{2p}\\\vdots & \vdots & & \vdots\\u_{p1} & u_{p2} & \cdots & u_{pp} \end {bmatrix}

X=(X1,X2,⋯,Xp)′

X=(X_1,X_2,\cdots,X_p)'

4 主成分的性质

1、均值 E(U′x)=U′μ E(U'x)=U'\mu
2、方差为所有特征根之和

∑i=1pVar(Fi)=λ1+λ2+⋯+λp=σ21+σ22+⋯+σ2p

\sum_{i=1}^pVar(F_i)=\lambda_1+\lambda_2+\cdots+\lambda_p=\sigma_1^2+\sigma_2^2+\cdots+\sigma_p^2
说明主成分分析把p个随机变量的总方差分解成为p个不相关的随机变量的方差之和。协方差矩阵 Σ \Sigma的对角线上的元素之和等于特征根之和。
3、 精度分析
1)贡献率:第i个主成分的方差在全部方差中所占比重 λi/∑pi=1λi \lambda_i/\sum_{i=1}^p\lambda_i,称为贡献率,体现这个主成分的综合能力的大小,即反映原来p个指标的信息的多少。
2)累积贡献率:前k个主成分共有多大的综合能力,用这个k个主成分的方差和在全部方差中所占比重

∑i=1kλi/∑i=1pλi

\sum_{i=1}^k\lambda_i/\sum_{i=1}^p\lambda_i
来描述,称为累积贡献率。
我们进行主成分分析的目的之一是希望用尽可能少的主成分 F1,F2,⋯,Fk(k≤p) F_1,F_2,\cdots,F_k(k\le p)代替原来的p个指标。到底应该选择多少个主成分,在实际工作中,所采用主成分个数的多少取决于能够反映原来变量85%以上的信息量为依据,即当累积贡献率≥85%时的主成分的个数就足够了。最常见的情况是主成分为2到3个。
4、 载荷矩阵

⎡⎣⎢⎢⎢⎢u11u21⋮up1u12u22⋮up2⋯⋯⋯u1mu2m⋮upm⎤⎦⎥⎥⎥⎥

\begin {bmatrix} u_{11} & u_{12} & \cdots & u_{1m}\\u_{21} & u_{22} & \cdots & u_{2m}\\\vdots & \vdots & & \vdots\\u_{p1} & u_{p2} & \cdots & u_{pm} \end {bmatrix}
原始变量与主成分之间的相关系数

Fj=u1jx1+u2jx2+⋯+upjxpj=1,2,⋯,m,m≤p

F_j=u_{1j}x_1+u_{2j}x_2+\cdots+u_{pj}x_p j=1,2,\cdots,m,m\le p

F=U′XUF=X

F=U'X UF=X

⎡⎣⎢⎢⎢⎢x1x2⋮xp⎤⎦⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢u11u21⋮up1u12u22⋮up2⋯⋯⋯u1pu2p⋮upp⎤⎦⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢F1F2⋮Fp⎤⎦⎥⎥⎥⎥

\begin {bmatrix} x_1\\x_2\\\vdots\\x_p \end {bmatrix}=\begin {bmatrix} u_{11} & u_{12} & \cdots & u_{1p}\\u_{21} & u_{22} & \cdots & u_{2p}\\\vdots & \vdots & & \vdots\\u_{p1} & u_{p2} & \cdots & u_{pp} \end {bmatrix}\begin {bmatrix} F_1\\F_2\\\vdots\\F_p \end {bmatrix}

Cov(xi,Fj)=Cov(ui1F1+ui2F2+⋯+uipFp,Fj)=uijλj

Cov(x_i,F_j)=Cov(u_{i1}F_1+u_{i2}F_2+\cdots+u_{ip}F_p,F_j)=u_{ij}\lambda_j

ρ(xi,Fj)=uijλjσiλj−−√=uijλj−−√σi

\rho(x_i,F_j)=\frac{u_{ij}\lambda_j}{\sigma_i\sqrt{\lambda_j}}=\frac{u_{ij}\sqrt{\lambda_j}}{\sigma_i}
可见, xi x_i和 Fj F_j的相关的密切程度取决于对应线性组合系数的大小。该相关系数又叫因子负荷量。在解释主成分的成因或是第i个变量对第k个主成分的重要性时,应当根据因子负荷量而不是变换系数u.
原始变量被主成分的提取率
主成分的贡献率和累计贡献率度量了 F1,F2,⋯,Fm F_1,F_2,\cdots,F_m分别从原始变量 X1,X2,⋯,XP X_1, X_2, \cdots, X_P中提取了多少信息。那么 X1,X2,⋯,XP X_1, X_2, \cdots, X_P各有多少信息分别被 F1,F2,⋯,Fm F_1,F_2,\cdots,F_m提取?
这可以用 F1,F2,⋯,Fm F_1,F_2,\cdots,F_m分别与 X1,X2,⋯,XP X_1, X_2, \cdots, X_P的相关系数的平方来衡量。

Var(xi)=Var(ui1F1+ui2F2+⋯+uipFp)

Var(x_i)=Var(u_{i1}F_1+u_{i2}F_2+\cdots+u_{ip}F_p)

u2i1λ1+u2i2λ2+⋯+u2imλm+⋯+u2ipλp=σ2i

u_{i1}^2\lambda_1+u_{i2}^2\lambda_2+\cdots+u_{im}^2\lambda_m+\cdots+u_{ip}^2\lambda_p=\sigma_i^2
u2ijλj u_{ij}^2\lambda_j是 Fj F_j能说明的第i 原始变量的方差。
u2ijλj/σ2i u_{ij}^2\lambda_j/\sigma_i^2是 Fj F_j提取的第i原始变量信息的比重。
如果我们仅仅提出了m个主成分,则第i原始变量信息的被提取率为:

Ωi=∑j=1mλju2ij/σ2i=∑j=1mρ2ij

\Omega_i=\sum_{j=1}^m\lambda_ju_{ij}^2/\sigma_i^2=\sum_{j=1}^m\rho_{ij}^2
公共成分
定义:如果一个主成分仅仅对某一个原始变量有作用,则称为特殊成分。如果一个主成分对所有的原始变量都起作用,则称为公共成分。

5 主成分分析的步骤

第一步:由X的协方差阵或相关系数阵Σ,求出其特征根,即解方程,可得特征根。
第二步:求出特征根所对应的特征向量 U1,U2,⋯,Up U_1,U_2,\cdots,U_p,

Ui=(u1i,u2i,⋯,upi)′

U_i=(u_{1i},u_{2i},\cdots,u_{pi})'
第三步:计算累积贡献率,给出恰当的主成分个数。

Fi=U′iX,i=1,2,⋯,k(k≤p)

F_i=U_i'X,i=1,2,\cdots,k(k\le p)
第四步:计算所选出的k个主成分的得分。将原始数据的中心化值:

X∗i=Xi−X¯=(x1i−x¯1,x2i−x¯2,⋯,xpi−x¯p)′

X_i^{\ast}=X_i-\bar X=(x_{1i}-\bar x_1,x_{2i}-\bar x_2,\cdots,x_{pi}-\bar x_p)'
代入前k个主成分的表达式,分别计算出各单位k个主成分的得分,并按得分值的大小排队。

基于协方差矩阵

在实际问题中, X的协方差通常是未知的,样品有

X1=(x1l,x2l,⋯,xpl)′(l=1,2,⋯,n)

X_1=(x_{1l},x_{2l},\cdots,x_{pl})'(l=1,2,\cdots,n)

Σ^x=(1n−1∑l=1n(xij−x¯i)(xjl−x¯j))p×p

\hat\Sigma_x=(\frac{1}{n-1}\sum_{l=1}^n(x_{ij}-\bar x_i)(x_{jl}-\bar x_j))_{p\times p}

基于相关系数矩阵

如果变量有不同的量纲, 变量水平差异很大,应该基于相关系数矩阵进行主成分分析。不同的是计算得分时应采用标准化后的数据。

6 主成分的应用与回归

1、主成分分析能降低所研究的数据空间的维数。即用研究m维的Y空间代替p维的X空间(m<p),而低维的Y空间代替高维的x空间所损失的信息很少。即使只有一个主成分 Y1 Y_1(即m=1)时,这个 Y1 Y_1仍是使用全部X变量(p个)得到的。在所选的前m个主成分中,如果某个Xi的系数全部近似于零的话,就可以把这个Xi删除,这也是一种删除多余变量的方法。
2、多维数据的一种图形表示方法。多元统计研究的问题大都多于3个变量,要把研究的问题用图形表示出来是不可能的。然而,经过主成分分析后,我们可以选取前两个主成分或其中某两个主成分,根据主成分的得分,画出n个样品在二维平面上的分布情况,由图形可直观地看出各样品在主分量中的地位。
3、用主成分分析法构造回归模型。即把各主成分作为新自变量代替原来的自变量做回归分析。
主成分回归方法

F1=u11X1+u21X2+⋯+up1XpF2=u12X1+u22X2+⋯+up2Xp⋯Fp=u1pX1+u2pX2+⋯+uppXp

F_1=u_{11}X_1+u_{21}X_2+\cdots+u_{p1}X_p\\F_2=u_{12}X_1+u_{22}X_2+\cdots+u_{p2}X_p\\\cdots\\F_p=u_{1p}X_1+u_{2p}X_2+\cdots+u_{pp}X_p

Y∗i=γ1F11+γ2F12+⋯+γmF1m+εi∑i=1n[Y∗i−γ1F11−γ2F12−⋯−γmF1m]2=min

Y_i^{\ast}=\gamma_1F_{11}+\gamma_2F_{12}+\cdots+\gamma_mF_{1m}+\varepsilon_i\\\sum_{i=1}^n[Y_i^{\ast}-\gamma_1F_{11}-\gamma_2F_{12}-\cdots-\gamma_mF_{1m}]^2=min

原始数据观测矩阵

X0=⎡⎣⎢⎢⎢⎢⎢x11x21⋮xn1x12x22⋮xn2⋯⋯⋯x1px2p⋮xnp⎤⎦⎥⎥⎥⎥⎥

X_0=\begin {bmatrix} x_{11} & x_{12} & \cdots & x_{1p}\\x_{21} & x_{22} & \cdots & x_{2p}\\\vdots & \vdots & & \vdots\\x_{n1} & x_{n2} & \cdots & x_{np} \end {bmatrix}

主成分系数矩阵

U=(u1,⋯,up)=⎡⎣⎢⎢⎢⎢⎢u11u21⋮up1u12u22⋮up2⋯⋯⋯u1pu2p⋮upp⎤⎦⎥⎥⎥⎥⎥

U=(u_1,\cdots,u_p)=\begin {bmatrix} u_{11} & u_{12} & \cdots & u_{1p}\\u_{21} & u_{22} & \cdots & u_{2p}\\\vdots & \vdots & & \vdots\\u_{p1} & u_{p2} & \cdots & u_{pp} \end {bmatrix}

主成分得分矩阵

⎡⎣⎢⎢⎢⎢⎢F11F21⋮Fn1F12F22⋮Fn2⋯⋯⋯F1pF2p⋮Fnp⎤⎦⎥⎥⎥⎥⎥F=X0U

\begin {bmatrix} F_{11} & F_{12} & \cdots & F_{1p}\\F_{21} & F_{22} & \cdots & F_{2p}\\\vdots & \vdots & & \vdots\\F_{n1} & F_{n2} & \cdots & F_{np} \end {bmatrix}\\F=X_0U

主成分分析的一些注意事项
主成分分析依赖于原始变量,也只能反映原始变量的信息。所以原始变量的选择很重要。
如果原始变量本质上独立,那么降维就可能失败,这是因为很难把很多独立变量用少数综合的变量概括。数据越相关,降维效果就越好。
分析结果并不一定会有清楚的解释。这与问题的性质,选取的原始变量以及数据的质量等都有关系。
基于相关系数矩阵还是基于协方差矩阵做主成分分析?
有时基于相关系数矩阵和基于协方差矩阵求出的主成分会有很大不同,且两者之间不存在简单的线性关系。
一般而言,当分析中所选择的经济变量具有不同的量纲,变量水平差异很大,应考虑将数据标准化,选择基于相关系数矩阵的主成分分析。对同度量或是取值范围在同量级的数据,选择基于协方差矩阵的主成分分析。
选择几个主成分?
主成分分析的目的是简化变量,一般情况下主成分的个数应该小于原始变量的个数。关于保留几个主成分,应该权衡主成分个数和保留的信息。
如何解释主成分所包含的经济意义?
主成分分析不要求数据来自于正态总体。一般认为当原始数据大部分变量的相关系数都小于0.3时,运用主成分分析的效果不显著。

7 主成分分析的R语言实现

主成分分析的函数本篇介绍的主要有两个。
一个是princomp,一个是psych里的principal。

princomp(x,cor=FALSE,scores=TRUE)

x为主成分分析数据集,cor=TRUE和FALSE分别代表是基于相关系数矩阵计算还是协方差矩阵计算。scores则代表是否存储主成分得分。

principal(x,nfactors=2,rotate="varimax",scores=T,covar=F)

x为主成分分析数据集,nfactors为主成分个数,rotate表示旋转方式(一般选方差最大,保证互不相关),scores则代表是否存储主成分得分,covar=TRUE和FALSE分别代表是基于协方差矩阵计算还是相关系数矩阵计算。
这回用的数据是2006年城市统计年鉴285个地级市的经济人口数据,探究gdp与人口之间的关系。
先做一个相关系数可视化。发现人口因子之间相互影响因子很高。

于是先对人口的几个因子进行降维和主成分分析,中途发现第三产业从业人数(third)加入会使得系数矩阵不正定,后面就删除了第三产业从业人数(third)。
分别用不同方式进行主成分分析结果。
princomp结果(基于协方差矩阵)
碎石图


结果

主成分得分图


princomp结果(基于相关系数矩阵)
碎石图


结果

主成分得分图

principal结果
碎石图

因子关系图

主成分得分图

碎石图表示的是曲线与纵坐标1交点的横坐标即为主成分个数,而主成分得分荷图是将原始数据的坐标映射在主成分分析的坐标上,事实上可以根据主成分得分在不同象限对原始数据进行分类,在本篇的样例数据里其实就是可以通过人口生成的几个主成分对中国地级市进行分类,可以区分出是在第一主成分得分高,第二主成分得分低的城市,亦或是其他排列组合的分类结果。关于这种可视化图具体如何解释。可以参照如下的文章。

http://www.cnblogs.com/SCUJIN/p/5965946.html

应用统计学与R语言实现学习笔记(十二)——主成分分析相关推荐

  1. 应用统计学与R语言实现学习笔记(五)——参数估计

    Chapter 5 Estimation 本篇是第五章,内容是参数估计. Chapter 5 Estimation 1.参数估计的一般问题 2.区间估计 Confidence Intervals 3. ...

  2. 应用统计学与R语言实现学习笔记(三)——描述性统计

    Chapter 3 Descriptive Statistics 本篇是第三章,内容是描述性统计.同时在这一章会开始渗透R语言的相关内容.但整体还是以理论为主. Chapter 3 Descripti ...

  3. 应用统计学与R语言实现学习笔记(七)——拟合优度检验

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/ESA_DSQ/article/details/71513581 Chapter 7 Goodness ...

  4. 检验杜宾 瓦森检验法R语言_应用统计学与R语言实现学习笔记(九)——线性回归...

    Chapter 9 Linear Regression 本篇是第九章,内容是回归分析(主要以线性回归为主).回归分析是数理统计.数理分析中最基础(也可以说是最重要)的一个分析,所以这一章内容相对来说也 ...

  5. 应用统计学与R语言实现学习笔记(九)——线性回归

    Chapter 9 Linear Regression 本篇是第九章,内容是回归分析(主要以线性回归为主).回归分析是数理统计.数理分析中最基础(也可以说是最重要)的一个分析,所以这一章内容相对来说也 ...

  6. r型聚类典型指标_应用统计学与R语言实现学习笔记(十)——聚类分析

    Chapter 10 Cluster Analysis 本篇是第十章,内容是聚类分析.由于之后的几章是典型的分析方法.而且在14章的案例里面可能不会体现,所以内容里会渗透较多的R语言操作.由于简书不支 ...

  7. 用极大似然法估计因子载荷矩阵_应用统计学与R语言实现学习笔记(十三)——因子分析...

    Chapter 13 Factor Analysis 本篇是第十三章,内容是因子分析. 这篇博客的完整内容包含各类数学表达.可以见我CSDN和hexo搭的个人博客. CSDN博客 1 因子分析概念 因 ...

  8. 应用统计学与R语言实现学习笔记(八)——方差分析

    Chapter 8 ANOVA 本篇是第八章,内容是方差分析.前一段考试,汇报,作业.忙不过来,停更了一段时间,现在重新开始更这一部分内容.方差分析是很多实验的基础以及很重要的分析手段,这一章内容相比 ...

  9. r语言算巢式设计方差分析_应用统计学与R语言实现学习笔记(八)——方差分析...

    Chapter 8 ANOVA 本篇是第八章,内容是方差分析.前一段考试,汇报,作业.忙不过来,停更了一段时间,现在重新开始更这一部分内容.方差分析是很多实验的基础以及很重要的分析手段,这一章内容相比 ...

最新文章

  1. 2014-5-14 我的战斗效果
  2. 传苹果产品总设计师欲离职 地位堪比乔布斯
  3. Yii2 配置 Nginx 伪静态
  4. selenium自动化之鼠标操作
  5. 11.4 iftop:动态显示网络接口流量信息
  6. verilog 浮点转定点_定点数和浮点数
  7. Pytest Hooks方法之pytest_collection_modifyitems改变测试用例执行顺序
  8. jQuery环境搭建
  9. hadoop2.9.2安装hadoop_pid_dir_Hadoop3.2 +Spark3.0全分布式安装
  10. Rails 4.1.0 安装笔记
  11. Task5:第五回:样式色彩秀芳华
  12. 微信小程序 后端接口(thinkphp)
  13. 佳能相机G7 Mark Ⅱ (测光与对焦)
  14. 瀚高数据库命令备份还原
  15. C++中重载和重写的区别
  16. 用I2C级联扩展器做一个时钟盒子
  17. 27岁自学Python转行靠谱吗?入行晚吗?
  18. mysql concat最大长度_GROUP_CONCAT()函数最大长度限制
  19. css立体3d效果动画,css3 实现动画,变换基点及3D效果~
  20. 基于油猴脚本写的填简历工具

热门文章

  1. sql——字符串处理
  2. 中国集成电路发展探秘
  3. 用“牛顿迭代法”求根号2的近似值
  4. 解决 tabby 登录远程时报错:Handshake failed: no matching key exchange algorithm
  5. Android usb学习笔记:Android AOA协议Android端 流程总结
  6. 如何升级npm的版本
  7. 霍兰德职业规划测试软件,发现你的职业兴趣——霍兰德职业兴趣测试
  8. oracle报错——字符集不匹配
  9. 打开浏览器,显示的首页是2345浏览器
  10. R语言使用lm函数构建回归模型、使用broom包的augmented函数将模型结果存入dataframe中、使用ggplot2可视化回归残差图(拟合值和残差值的关系图)