文档介绍:R语言多元分析
2012年09月19日⁄ Script ⁄暂无评论⁄被围观 115 views+
A. 主成分分析
主成分分析(ponents analysis, PCA)是一种分析、简化数据集的技术。它把原始数据变换到一个新的坐标系统中,使得任何数据投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。主成分分析经常用减少数据集的维数,同时保持数据集的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。但是在处理观测数目小于变量数目时无法发挥作用,例如基因数据。
p函数,将结果输入到summary和plot函数中可分别得到分析结果和碎石图。但psych扩展包更具灵活性。
一、选择主成分个数
选择主成分个数通常有如下几种评判标准:
根据经验与理论进行选择
根据累积方差的门槛值,例如选择使累积方差达到80%的主成分个数。
根据相关系数矩阵的特征值,选择特征值大于1的主成分。
另一种较为先进的方法是平行分析(parallel analysis)。该方法首先生成若干组与原始数据结构相同的随机矩阵,求出其特征值并进行平均,然后和真实数据的特征值进行比对,根据交叉点的位置来选择主成分个数。我们选择USJudgeRatings数据集举例,首先加载psych包,,从图中可见第一主成分位于红线上方,第二主成分位于红线下方,因此主成分数目选择1。
查看源代码
打印帮助
1
(USJudgeRatings[,-1], fa="pc", =100, =FALSE)
二、提取主成分
查看源代码
打印帮助
1
pc=principal(USJudgeRatings[,-1],nfactors=1)
PC1 h2 u2
1
2
3
4
5
6
7
8
9
10
11
从上面的结果观察到,PC1即主成分负荷,是观测变量与主成分之间的相关系数,h2是变量能被主成分解释的比例,u2则是不能解释的比例。
三、旋转主成分
旋转是将主成分负荷进行变换,以方便解释。可分为正交旋转和斜交旋转。正交旋转的流行方法是方差最大化,需要在principal中增加rotate='varimax'参数
四、计算主成分得分
主成分得分是各变量的线性组合,需在principal中增加score参数,结果将存放在scores中。但注意如果输入数据不是原始数据时,则无法计算主成分得分。
B. 探索性因子分析
探索性因子分析(Exploratory Factor Analysis,EFA)是一项用来找出多元观测变量的本质结构、并进行处理降维的技术。因而,EFA能够将将具有错综复杂关系的变量综合为少数几个核心因子。
EFA和PCA的区别在于:PCA中的主成分是原始观测变量的线性组合,组合的选择是在各主成分无关条件下使其方差最大化。而EFA中的因子是影响原始观测变量的潜在变量,变量中不能被因子所解释的部分称为误差,因子和误差均不能直接观察到。进行EFA需要大量的样本,一般经验认为如何估计因子的数目为N,则需要有5N到10N的样本数目。
虽然EFA和PCA有本质上的区别,但在分析流程上有相似之处。,其变量是对人的六种能力,例如阅读和拼写进行了测验,其数据是一个协方差矩阵而非原始数据。R语言中stats包中的factanal函数可以完成这项工作,但这里我们使用更为灵活的psych包。
一、选择因子个数
一般选择因子个数可以根据相关系数矩阵的特征值,特征值大于0则可选择做为因子。我们使用平行分析法(parallel analysis)。该方法首先生成若干组与原始数据结构相同的随机矩阵,求出其特征值并进行平均,然后和真实数据的特征值进行比对,根据交叉点的位置来选择因子个数。根据下图我们可以观察到特征值与红线的关系,有两个因子都位于红线上方,显然应该选择两个因子。
查看源代码
打印帮助
1
library(psych)
2
covariances <- $cov