【R语言 第3篇】用R进行主成分分析

主成分分析和探索性因子分析是两种用来探索和简化多变量复杂关系的常用方法。
主成分分析(PCA)是一种将数据降维技巧,它将大量相关变量转化成一组很少的不相关变量,这些无相关变量称为主成分。
探索性因子分析(EFA)是一系列用来发现一组变量的潜在结构的方法。

R基础安装包提供了PCA和EFA的函数,分别是princomp()和factanal()。本章重点介绍psych包中提供的函数,该包提供了比基础函数更丰富和有用的选项。

  • principal() 含多种可选的方差旋转方法的主成分分析;
  • fa() 可用主轴、最小残差、加权最小平方或最大似然法估计的因子分析;
  • fa.parallel() 含平行分析的碎石图;
  • factor.polt() 绘制因子分析或主成分分析的结果;
  • fa.diagram() 绘制因子分析或主成分的载荷矩阵;
  • scree() 因子分析和主成分分析的碎石图

最常见步骤
1、数据预处理,在计算前请确保数据没有缺失值;
2、选择因子模型,是选择PCA还是EFA,如果选择EFA,需要选择一种估计因子模型,如最大似然法估计;
3、判断要选择的主成分/因子数目;
4、选择主成分/因子;
5、旋转主成分/因子;
6、解释结果;
7、计算主成分或因子得分。

主成分分析

  • 例1主成分分析,USJudgeRatings数据集包含了律师对美国高等法院法官的评分。

加载psych包
library(ggplot2)
library(psych)
展示基于观测特征值的碎石检验、根据100个随机数据矩阵推导出来的特征值均值、以及大于1的特征值准则(Y=1的水平线)
fa.parallel(USJudgeRatings[, -1], fa = "pc", n.iter = 100, show.legend = FALSE, main = 'Scree plot with parallel analysis')
对数据USJudgeRatings进行主成分分析
pc<-principal(USJudgeRatings[, -1],nfactors=1)
pc

  • 例2主成分分析,Harman23.cor数据集包含了305个女孩的8个身体指标

加载psych包
library(ggplot2)
library(psych)
展示基于观测特征值的碎石检验、根据100个随机数据矩阵推导出来的特征值均值、以及大于1的特征值准则(Y=1的水平线)
fa.parallel(Harman23.cor$cov, n.obs=305,fa = "pc", n.iter = 100, show.legend = FALSE, main = 'Scree plot with parallel analysis')
对数据Harman23.cor进行主成分分析
pc2<-principal(Harman23.cor$cov,nfactors=2,rotate = 'none')
pc2

  • 例3主成分旋转,Harman23.cor数据集包含了305个女孩的8个身体指标
    旋转是一系列将成分载荷变得更容易解释的数学方法,它们尽可能地对成分去噪。

rc2<-principal(Harman23.cor$cov,nfactors = 2,rotate='varimax')
rc2
获得主成分得分,USJudgeRatings数据集包含了律师对美国高等法院法官的评分。
library(ggplot2)
library(psych)
pc3<-principal(USJudgeRatings[, -1],nfactors=1,scores=TRUE)
pc3
head(pc3$scores)
获得律师与法官的接触频数与法官评分间的相关系数,执行结果看到两者关联非常小。
cor(USJudgeRatings$CONT,pc3$scores)
获取主成分得分的系数,Harman23.cor数据集包含了305个女孩的8个身体指标
当主成分分析基于相关系数矩阵(如Harman23.cor$cov)时,原始数据便不可用了,也不可能获取每个观测的主成分得分,但是可以得到用来计算主成分得分的系数。
在身体测量数据中,有各个身体测量指标间的相关系数,但是没有305个女孩的个体测量值。
library(ggplot2)
library(psych)
rc3<-principal(Harman23.cor$cov,nfactors = 2,rotate='varimax')
round(unclass(rc3$weights),2)
利用如下公式可以得到主成分得分
pc1=0.28height+0.30arm.span+0.30forearm+0.28lower.leg-0.06weight-0.08bitro.diamete-0.10chest.girth-0.04chest.width
pc2=-0.05height-0.08arm.span-0.09forearm-0.06lower.leg+0.33weight+0.32bitro.diamete+0.34chest.girth+0.27chest.width

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容