主成分分析PCA是PC1 还是PC1 + PC2

本文详细介绍了如何在R语言中执行PCA(主成分分析),包括判断主成分数量、提取主成分、主成分旋转以及获取主成分得分的过程,并通过实例演示了如何在实际数据中应用PCA进行降维。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看见文献里有使用  PCA=∑(PC1 + PC2),也有值描述PCA得分的。究竟应该怎么取计算PCA得分。。。。。。。

关于PCA的步骤回顾:

1,判断主成分的个数
2,提取主成分
3 ,主成分旋转
4 ,获取主成分得分

PC1 案例

1,判断主成分的个数

数据格式

rm(list = ls())
library(psych)
data <- USJudgeRatings
fa.parallel(USJudgeRatings[,-1], fa="pc", 
            n.iter=100,
            show.legend=FALSE, 
            main="Scree plot with parallel analysis")

判断注释:Kaiser-Harris准则建 议保留特征值大于1的主成分,特征值小于1的成分所解释的方差比包含在单个变量中的方差更少。Cattell碎石检验则绘制了特征值与主成分数的图形。

结果解读;评价美国法官评分中要保留的主成分个数。碎石图(直线与 x 符号)、特征值大
1 准则(水平线)和 100 次模拟的平行分析(虚线)都表明保留一个主成分即可
2,提取主成分
principal(r, nfactors=, rotate=, scores=)  
r是相关系数矩阵或原始数据矩阵;
nfactors设定主成分数(默认为1);
rotate指定旋转的方法(默认最大方差旋转(varimax));
scores设定是否需要计算主成分得分(默认不需要)。

提取主成分

pc <- principal(USJudgeRatings[,-1], nfactors = 1)
pc
Principal Components Analysis
Call: principal(r = USJudgeRatings[, -1], nfactors = 1)
Standardized loadings (pattern matrix) based upon correlation matrix
      PC1   h2     u2 com
INTG 0.92 0.84 0.1565   1
DMNR 0.91 0.83 0.1663   1
DILG 0.97 0.94 0.0613   1
CFMG 0.96 0.93 0.0720   1
DECI 0.96 0.92 0.0763   1
PREP 0.98 0.97 0.0299   1
FAMI 0.98 0.95 0.0469   1
ORAL 1.00 0.99 0.0091   1
WRIT 0.99 0.98 0.0196   1
PHYS 0.89 0.80 0.2013   1
RTEN 0.99 0.97 0.0275   1

                 PC1
SS loadings    10.13
Proportion Var  0.92

Mean item complexity =  1
Test of the hypothesis that 1 component is sufficient.

The root mean square of the residuals (RMSR) is  0.04 
 with the empirical chi square  6.21  with prob <  1 

结果解读:PC1栏包含了成分载荷,指观测变量与主成分的相关系数。如果提取不止一个主成分,那么 还将会有PC2PC3等栏。成分载荷(component loadings)可用来解释主成分的含义。此处可以看到,第一主成分(PC1)与每个变量都高度相关,也就是说,它是一个可用来进行一般性评价的维度。

h2 栏指成分 公因子 方差——主成分对每个变量的方差解释度。 u2 栏指成分 唯一性 ——方差
无法被主成分解释的比例( 1- h2 )。例如,体能( PHYS 80% 的方差都可用第一主成分来解释,
20% 不能。相比而言, PHYS 是用第一主成分表示性最差的变量。
SS loadings 行包含了与主成分相关联的特征值,指的是与特定主成分相关联的标准化后的
方差值(本例中,第一主成分的值为 10 )。最后, Proportion Var 行表示的是每个主成分对整
个数据集的解释程度。此处可以看到,第一主成分解释了 11 个变量 92% 的方差。
3 ,主成分旋转
4 ,获取主成分得分

美国法官评分例子中,我们根据原始数据中的11个评分变量提取了一个主成分。

pc <-principal(USJudgeRatings[,-1], nfactors=1, score=TRUE)
head(pc$scores)
                      PC1
AARONSON,L.H.  -0.1857981
ALEXANDER,J.M.  0.7469865
ARMENTANO,A.J.  0.0704772
BERDON,R.I.     1.1358765
BRACKEN,J.J.   -2.1586211
BURNS,E.B.      0.7669406

scores = TRUE时,主成分得分存储在principal()函数返回对象的scores元素中。

PC2 案例 PC1 + PC2 

1,判断主成分的个数

数据格式

rm(list = ls())
library(psych)
#Harman23.cor数据集的例子,本数据集本身已经是相关系数矩阵
##确定主成分个数
fa.parallel(Harman23.cor$cov, n.obs=302, 
            fa="pc", 
            n.iter=100,
            show.legend=FALSE, 
            main="Scree plot with parallel analysis")
#结果提示
Parallel analysis suggests that the number of factors =  NA  
and the number of components =  2 

2,提取主成分
pc <- principal(Harman23.cor$cov, 
                nfactors=2,##依据判断需要2个主成分
                rotate="none")
pc
Principal Components Analysis
Call: principal(r = Harman23.cor$cov, nfactors = 2, rotate = "none")
Standardized loadings (pattern matrix) based upon correlation matrix
                PC1   PC2   h2    u2 com
height         0.86 -0.37 0.88 0.123 1.4
arm.span       0.84 -0.44 0.90 0.097 1.5
forearm        0.81 -0.46 0.87 0.128 1.6
lower.leg      0.84 -0.40 0.86 0.139 1.4
weight         0.76  0.52 0.85 0.150 1.8
bitro.diameter 0.67  0.53 0.74 0.261 1.9
chest.girth    0.62  0.58 0.72 0.283 2.0
chest.width    0.67  0.42 0.62 0.375 1.7
                       PC1  PC2
SS loadings           4.67 1.77
Proportion Var        0.58 0.22
Cumulative Var        0.58 0.81
Proportion Explained  0.73 0.27
Cumulative Proportion 0.73 1.00
Mean item complexity =  1.7
Test of the hypothesis that 2 components are sufficient.
The root mean square of the residuals (RMSR) is  0.05 
Fit based upon off diagonal values = 0.99
第一主成分解释了身体测量指标 58%的方差,而第 二主成分解释了 22% ,两者总共解释了 81%的方差。h2这一栏里面,两个主成分对高度变量解释了88%的方差,对于臂展变量解释了90%的方差。
载荷阵解释了成分和因子的含义。第一主成分与每个身体测量指标都正相关,看起来似乎是
一个一般性的衡量因子;第二主成分与前四个变量( height arm.span forearm lower.leg
负相关,与后四个变量( weight bitro.diameter chest.girth chest.width )正相关,
因此它看起来似乎是一个长度 容量因子。但理念上的东西都不容易构建,当提取了多个成分时,
对它们进行旋转可使结果更具解释性,接下来我们便讨论该问题。
3 ,主成分旋转
旋转是一系列将成分载荷阵变得更容易解释的数学方法,它们尽可能地对成分 去噪 。旋转方
法有两种:使选择的成分保持不相关( 正交旋转 ),和让它们变得相关( 斜交旋转 )。
rc <- principal(Harman23.cor$cov, 
                nfactors=2, 
                rotate="varimax")
rc
Principal Components Analysis
Call: principal(r = Harman23.cor$cov, nfactors = 2, rotate = "varimax")
Standardized loadings (pattern matrix) based upon correlation matrix
                RC1  RC2   h2    u2 com
height         0.90 0.25 0.88 0.123 1.2
arm.span       0.93 0.19 0.90 0.097 1.1
forearm        0.92 0.16 0.87 0.128 1.1
lower.leg      0.90 0.22 0.86 0.139 1.1
weight         0.26 0.88 0.85 0.150 1.2
bitro.diameter 0.19 0.84 0.74 0.261 1.1
chest.girth    0.11 0.84 0.72 0.283 1.0
chest.width    0.26 0.75 0.62 0.375 1.2
                       RC1  RC2
SS loadings           3.52 2.92
Proportion Var        0.44 0.37
Cumulative Var        0.44 0.81
Proportion Explained  0.55 0.45
Cumulative Proportion 0.55 1.00
Mean item complexity =  1.1
Test of the hypothesis that 2 components are sufficient.
The root mean square of the residuals (RMSR) is  0.05 
Fit based upon off diagonal values = 0.99
列的名字都从 PC 变成了 RC ,以表示成分被旋转。观察 RC1 栏的载荷,你可以发现第一主成分
主要由前四个变量来解释(长度变量)。 RC2 栏的载荷表示第二主成分主要由变量 5 到变量 8 来解
释(容量变量)。注意两个主成分仍不相关,对变量的解释性不变,这是因为变量的群组没有发
生变化。另外,两个主成分旋转后的累积方差解释性没有变化( 81% ),变的只是各个主成分对
方差的解释度(成分 1 58% 变为 44% ,成分 2 22% 变为 37% )。各成分的方差解释度趋同,准确
来说,此时应该称它们为成分而不是主成分(因为单个主成分方差最大化性质没有保留)
       我们的最终目标是用一组较少的变量替换一组较多的相关变量,因此,你还需要获取每个观
测在成分上的得分。
4 ,获取主成分得分
当主成分分析基于相关系数矩阵时,原始数据便不可用了,也不可能获取每个观测的主成分
得分,但是你可以得到用来计算主成分得分的系数。在身体测量数据中,你有各个身体测量指标间的相关系数,但是没有305个女孩的个体测量值。
rc <- principal(Harman23.cor$cov, 
                nfactors = 2, 
                rotate = "varimax")
round(unclass(rc$weights),2)
               RC1   RC2
height          0.28 -0.05
arm.span        0.30 -0.08
forearm         0.30 -0.09
lower.leg       0.28 -0.06
weight         -0.06  0.33
bitro.diameter -0.08  0.32
chest.girth    -0.10  0.34
chest.width    -0.04  0.27

则相应的PC1和PC2主成分的计算公司如下:

principal函数和prcomp函数都是用于计算主成分分析(PCA)的函数,但它们之间有一些差异。

  • principal函数是psych包中的函数,它可以计算PCA以及其他因子分析和结构方程模型等多种分析方法。它的输出包括每个主成分的方差贡献率、成分载荷和得分等信息。
  • prcomp函数是stats包中的函数,它只能计算PCA。它的输出包括每个主成分的方差贡献率、成分载荷和得分等信息,与principal函数的输出类似。

除了输出结果的差异外,这两个函数在计算PCA时的算法也有所不同。prcomp函数使用的是标准的奇异值分解(SVD)算法,而principal函数使用的是最大似然估计法或最小残差法等不同的算法。

《R语言实战》

R语言如何实现主成分分析(PCA),最全详细教材_r studio主成分分析-CSDN博客

机器学习实验:主成分分析法PCA实现手写数字数据集的降维_pca主成分分析和交叉验证-CSDN博客

【使用 PCA 实现对鸢尾花四维数据(Iris)进行降维处理】_鸢尾花数据集上的实现pca降维_风也温柔_Esther的博客-CSDN博客

### 使用ENVI进行RSEI主成分分析计算 #### 准备工作 为了在ENVI中执行RSEI的主成分分析PCA),需要准备多光谱影像数据集。通常使用的波段包括近红外(NIR)、红(Red)、绿(Green),以及其他可能影响生态环境评估的辅助波段。 #### 数据预处理 确保输入的数据已进行了辐射定标和大气校正,以便获得更精确的结果。这一步骤对于提高后续主成分分析的有效性和准确性至关重要[^3]。 #### 执行主成分分析 1. **启动ENVI软件并加载图像** - 启动ENVI应用程序。 - 加载用于分析的多光谱或高光谱遥感影像文件。 2. **选择主成分变换工具** - 导航至`Basic Tools -> Transform -> Principal Components...` 3. **配置参数设置窗口** - 在弹出对话框内指定要参与PCA运算的具体波段组合。 - 设置输出选项,保存转换后的主成分图像位置及名称。 4. **运行主成分分析过程** - 单击OK按钮开始计算。 - 软件会自动完成特征向量提取与投影操作,并生成新的主成分层叠产品。 5. **查看结果** - 主界面将显示各主分量对应的方差贡献率直方图。 - 用户可以直观判断哪些主成分为主要信息承载者。 6. **调整最终RSEI值** 如果发现某些区域内生态状况良好却对应较低的第一主成分得分,则应考虑应用修正公式\( \text{RSEI} = 1-\text{PC}_1 \)[^2]来重新定义评价标准,使得较高的RSEI分数代表更好的生态系统健康状态。 7. **解释荷载矩阵** 对于每一个原始变量而言,在各个主成分上的负荷反映了该变量对该主成分的重要性程度。利用荷载可以帮助理解不同物理意义下的权重分布情况。 8. **验证一致性** 当对比Google Earth Engine (GEE)平台所得数值时,注意到两者间可能存在符号差异;如果遇到这种情况,仅需简单改变符号即可实现一致化表达[^1]。 ```python import numpy as np def adjust_rsei(pc1_values): """ Adjusts the RSEI values based on PC1. Parameters: pc1_values (numpy array): Array of first principal component scores. Returns: adjusted_rsei (numpy array): Adjusted RSEI values where higher value indicates better ecological condition. """ # Apply adjustment formula to ensure positive correlation between high RSEI and good ecology adjusted_rsei = 1 - pc1_values return adjusted_rsei ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值