多元统计分析(5):主成分分析

参考链接:
https://blog.csdn.net/m0_37422217/article/details/104840221

目的:抓住主要矛盾,解释事物内部变量之间的规律性。

途径:找到新的成分,是原始变量的线性组合,而这些变量之间互不相关,从而有更好的性能!!!

5.1 主成分分析的构造

5.1.1 基本理论

设原始变量有P个,记为 X X X。设随机变量的均值为 μ \mu μ,协方差矩阵为 ∑ \sum ,对进行线性组合得到全新的变量 Y Y Y,即得到下方的式子:
f ( x ) = { Y 1 = u 11 X 1 + u 21 X 2 + . . . + u p 1 X P Y 2 = u 12 X 1 + u 22 X 2 + . . . + u p 2 X P . . . . . . Y p = u 11 X 1 + u 21 X 2 + . . . + u p p X P f(x)=\left\{ \begin{aligned} Y_1 & = & u_{11}X_1 + u_{21}X_2 + ...+u_{p1}X_P \\ Y_2& = & u_{12}X_1 + u_{22}X_2 + ...+u_{p2}X_P \\ &&......\\ Y_p & = & u_{11}X_1 + u_{21}X_2 + ...+u_{pp}X_P \end{aligned} \right. f(x)= Y1Y2Yp===u11X1+u21X2+...+up1XPu12X1+u22X2+...+up2XP......u11X1+u21X2+...+uppXP
对系数的要求原则:
(1) u i ′ u i = 1 , ( i = 1 , 2 , . . . , p ) u_i'u_i = 1 ,(i = 1,2,...,p) uiui=1,(i=1,2,...,p)
(2) Y i Y_i Yi Y j Y_j Yj 不相关!
(3) Y i Y_i Yi是满足原则(1)的线性组合中的方差最大者
对原则的解释:
V a r ( Y ) Var(Y) Var(Y) 越大说明蕴藏的信息越多(说明收集的数据很分散,则更容易满足正态分布) ,但是如果不要求原则(1)就会无限大,则失去意义!!
结束的条件:
在这里插入图片描述

5.2 总体主成分及其性质

5.2.1 从协方差矩阵出发求解主成分

(1)引论

在这里插入图片描述
证明如下:
在这里插入图片描述
关于特征向量和特征值的知识可以参见:
特征值和特征向量的物理意义和性质
注意:线性无关不一定 正交,一般求出的特征向量是线性无关的 但是不是正交的!需要通过施密特正交化方法 进行正交化哦!

(2)结论

在这里插入图片描述
注意:特征值对应的特征向量 × 特征矩阵 x 特征向量 的结果 除以 特征向量的内积 等于特征值!!!! 可以参见上方证明!

5.2.2 主成分的性质

定义5.1:
在这里插入图片描述
定义5.2 :
因子负荷率:
在这里插入图片描述

(1)性质1: Y的协方差阵为对角阵 Y = d i a g ( λ 1 , λ 2 , λ 3 , . . . . , λ p ) Y = diag(\lambda_1 ,\lambda_2, \lambda_3,...., \lambda_p) Y=diag(λ1,λ2,λ3,....,λp)
(2)性质2:
在这里插入图片描述
引论:
在这里插入图片描述

证明:
在这里插入图片描述
性质3:在这里插入图片描述
在这里插入图片描述
性质4:在这里插入图片描述
在这里插入图片描述
性质5:
在这里插入图片描述
在这里插入图片描述

5.2.4 由相关阵求主成分是主成分性质的简单形式

形式要更加简单,但是推导基本上是一样的,其实就是做了如下的数学变换而已:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.3 相关问题讨论

(1)关于由协方差矩阵或相关矩阵出发求解主成分

求解主成分的过程实际就是对矩阵结构进行分析的过程,也就是求解特征值的过程。从协方差阵出发和从相关阵出发所求得的主成分一般来说是有差别的,而且这种差别有时候还很大。
一般而言,对于度量单位不同的指标或取值范围彼此差异非常大的指标,不直接由其协方差矩阵出发进行主成分分析,而应该考虑将数据标准化。
但是,对原始数据进行标准化处理后倾向于各个指标的作用在主成分的构成中相等。对于取值范围相差不大或度量相同的指标进行标准化处理后,其主成分分析的结果仍与由协方差阵出发求得的结果有较大区别。
其原因是由于对数据进行标准化的过程实际上也就是抹杀原始变量离散程度差异的过程,标准化后的各变量方差相等均为 1,而实际上方差也是对数据信息的重要概括形式,也就是说,对原始数据进行标准化后抹杀了一部分重要信息,因此才使得标准化后各变量在对主成分构成中的作用趋于相等。
由此看来,对同度量或取值范围在同量级的数据,还是直接从协方差矩阵求解主成分为宜。

(2)主成分分析不要求数据来自于正态总体

也就是说,与很多多元统计方法不同,主成分分析不要求数据来自于正态总体。实际上,主成分分析就是对矩阵结构的分析,其中主要用到的技术是矩阵运算的技术及矩阵对角化和矩阵的谱分解技术。我们知道,对多元随机变量而言,其协方差矩阵或相关矩阵均是非负定的,这样,就可以按照求解主成分的步骤求出其特征值、标准正交特征向量,进而求出主成分,达到缩减数据维数的目的。

(3)主成分分析与重叠信息

首先应当认识到,主成分分析方法适用于变量之间存在较强相关性的数据,如果原始数据相关性较弱,运用主成分分析后不能起到很好的降维作用,即所得的各个主成分浓缩原始变量信息的能力差别不大。
一般认为,当原始数据大部分变量的相关系数都小于 0. 3时,运用主成分分析不会取得很好的效果。
很多研究工作者在运用主成分分析方法时,都或多或少存在着对主成分分析消除原始变量重叠信息的期望,这样,在实际工作之初就可以把与某一研究问题相关而可能得到的变量(指标)都纳入分析过程,再用少数几个主成分浓缩这些有用信息(假定已剔除了重叠信息),然后对主成分进行深入分析。
在对待重叠信息方面,生成的新的综合变量(主成分)是有效剔除了原始变量中的重叠信息,还是仅按原来的模式将原始信息中的绝大部分用几个不相关的新变量表示出来,这一点还有待讨论。

(4)多重共线性

在实际工作中,在选取初始变量进入分析时应该小心,对原始变量存在多重共线性的问题,在应用主成分分析方法时一定要慎重。应该考虑所选取的初始变量是否合适,是否真实地反映了事物的本来面目,如果是出于避免遗漏某些信息而特意选取了过多的存在重叠信息的变量,就要特别注意应用主成分分析所得到的结果。

如果所得到的样本协方差矩阵(或者相关阵)最小特征值接近于0,那么就意味着,中心化以后的原始变量之间存在着多重共线性,即原始变量存在着不可忽视的重叠信息。
因此,在进行主成分分析得出协方差阵或是相关阵,发现最小特征根接近于零时,应该注意对主成分的解释,或者考虑对最初纳入分析的指标进行筛选。由此可以看出,虽然主成分分析不能有效地剔除重叠信息,但它至少可以发现原始变量是否存在重叠信息,这对减少分析中的失误是有帮助的。

(5)主成分分析步骤及逻辑框图

步骤:
进行主成分分析的步骤,对此进行归纳如下:
(1)根据研究问题选取初始分析变量;
(2)根据初始变量特性判断由协方差阵求主成分还是由相关阵求主成分;
(3)求协方差阵或相关阵的特征根与相应标准特征向量;
(4)判断是否存在明显的多重共线性,若存在,则回到第一步;
(5)得到主成分的表达式并确定主成分个数,选取主成分;
(6)结合主成分对研究问题进行分析并深入研究。

在这里插入图片描述

5.4 例题

在这里插入图片描述
施密特正交化方法:记住!!!!!
在这里插入图片描述
求解特征值和特征向量的方法:
线性代数:求解特征值和特征向量!

5.4 R语言实现主成分分析

library(readxl)
B=read_excel("/Users/zhaoyuna0504/Desktop/work office/多元统计分析/wangyihan/Code 第五章主成分分析/例5-3水泥企业经济效益.xls", sheet = "Sheet1")
A=as.matrix(B)
is.matrix(A)
A=A[1:31,2:8]
A[1:31,2:8]
library(readxl)
B=read_excel("/Users/zhaoyuna0504/Desktop/work office/多元统计分析/wangyihan/Code 第五章主成分分析/例5-3水泥企业经济效益.xls", sheet = "Sheet1")
A=as.matrix(B)
is.matrix(A)
A=A[1:31,2:8]
A
A=t(A)
A
rownames(A)=NULL
A
A=t(A)
A=apply(A,2,as.numeric)
A
class(A[1])
CorA=cor(A)
CorA
Decomp=eigen(CorA)
Decomp
t(EigV)%*%EigV
EigV=Decomp$vectors ####EigV 表示特征向量组成的矩阵
t(EigV)%*%EigV
CSA= scale(A,center=T,scale=T) ### 将数据中心化归一化
SY1=CSA%*%(-EigV[,1])
CSA%*%(-EigV[,1])
B[,1]
SY1=CSA%*%(-EigV[,1])
SY1
Cb1=cbind(B[,1],SY1)
Cb1
or1=Cb1[order(Cb1$SY1,decreasing=T),]
or1
Cb2=cbind(B[,1],SY2)
or2=Cb2[order(Cb2$SY2,decreasing=T),]
###pca=princomp(CSA)
###summary(pca,loading=T)
SY2=CSA%*%EigV[,2] ###每一个样品在第一正成分上的得分
order(SY2)####SY2分量的大小排序
RankSY2=cbind(SY2,order(SY2))
Cb1=cbind(B[,1],SY1) #### 将样品在第一主成分上的得分赋予地区名
or1=Cb1[order(Cb1$SY1,decreasing=T),] ##### 按照第一主成分得分大小将地区排名, 输出结果中的第一列表示所对应的元素在未排序前的数组中的位置号
Cb2=cbind(B[,1],SY2)
or2=Cb2[order(Cb2$SY2,decreasing=T),]
Cb2=cbind(B[,1],SY2)
or2=Cb2[order(Cb2$SY2,decreasing=T),]
or2
cbind(or1$地区,round(or1$SY1,4)) #### round 保留n位有效数字;or1$地区表示从数据框or1中取出"地区"这一列
cbind(or2$地区,round(or2$SY2,4))
Dataf=cbind(B[,1],SY1,SY2)
Dataf
plot(Dataf$SY1,Dataf$SY2)
win.graph(width=20, height=12,pointsize=9)
plot(Dataf$SY1,Dataf$SY2)
text(Dataf$SY1,Dataf$SY2,labels=Dataf$地区)
abline(v=0)###给散点图加y=0这条竖线
abline(h=0)####给散点图加x=0这条横线
library(readxl)
B=read_excel("/Users/zhaoyuna0504/Desktop/work office/多元统计分析/wangyihan/Code 第五章主成分分析/例5-3水泥企业经济效益.xls", sheet = "Sheet1")
A=as.matrix(B)
is.matrix(A)
A=A[1:31,2:8]
####A=as.numeric(A) The output is an vector but not a matrix. We need to use the function "apply" to transform the character matrix into a numerical matrix
A=t(A)
rownames(A)=NULL
A=t(A)
A=apply(A,2,as.numeric)
class(A[1])
CorA=cor(A)
Decomp=eigen(CorA)
EigV=Decomp$vectors
EigV
inv(EigV)
solve(EigV)
Decomp$vectors
eigen(CorA)
EigValues=Decomp$values
EigValues
Decomp$vectors[,1]/EigValues[1]
eigen(CorA)
Decomp$vectors[1,]*EigValues[1]
EigVctor=cbind(-Decomp$vectors[,1],Decomp$vectors[,2:7])
Decomp$vectors[1,]*sqrt(EigValues[1])
solve(EigVctor)
EigVctor
Decomp$vectors[,1]/sqrt(EigValues[1])
EigVctor=cbind(-Decomp$vectors[,1],Decomp$vectors[,2:7])
EigVctor[,2]/sqrt(EigValues[2])
Comp1=EigVctor[,1]*sqrt(EigValues[1]
)
Comp1

表格:
见资源绑定!!!

  • 24
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值