R语言-主成分分析

1.PCA

使用场景:主成分分析是一种数据降维,可以将大量的相关变量转换成一组很少的不相关的变量,这些无关变量称为主成分

  步骤:

  1. 数据预处理(保证数据中没有缺失值)
  2. 选择因子模型(判断是PCA还是EFA)
  3. 判断要选择的主成分/因子数目
  4. 选择主成分
  5. 旋转主成分
  6. 解释结果
  7. 计算主成分或因子的得分

  案例:从USJudgeRatings数据集中有11个变量,如何去减化数据(单个主成分分析)

    1.使用碎石图确定需要提取的主成分个数

1 library(psych)
2 # 1.做出碎石图确定主成分的个数
3 fa.parallel(USJudgeRatings[,-1],fa=‘pc‘,n.iter = 100,show.legend = F,main = ‘Scree plot with parallel analysis‘)

  结论:在特征值大于1的的点附近,都表明保留1个主成分即可

  2.提取主成分

1 # 1.第一个参数是关系矩阵
2 # 2.nfactors指定主成分的个数
3 # 3.rotate指定旋转方法,默认varimax
4 # 4.scores表示是否需要计算主成分得分,默认不需要
5 pc <- principal(USJudgeRatings[,-1],nfactors = 1)
6 pc

  结论:第一主成分与每一个变量高度相关

  3.获取主成分得分

1 pc <- principal(USJudgeRatings[,-1],nfactors = 1,scores = T)
2 head(pc$scores)
3 cor(USJudgeRatings$CONT,pc$scores)

  4.获取相关系数

1 cor(USJudgeRatings$CONT,pc$scores)

  结论:律师和法官的私交和律师的评级没有关系

  案例2:减少女孩身体指标的主成分分析(多个主成分分析)

  1.判断个数

1 fa.parallel(Harman23.cor$cov,n.obs = 203,fa=‘pc‘,n.iter = 100,show.legend = F,
2             main = ‘Scree plot with parallel analysis‘)

  结论:有2个点在水平线1上,所以需要2个主成分

  2.主成分分析

pc2 <- principal(Harman23.cor$cov,nfactors = 2,rotate = ‘none‘)
pc2

  

  结论:需要对数据旋转作进一步分析

  3.主成分旋转(尽可能对成分去噪)

1 rc <- principal(Harman23.cor$cov,nfactors = 2,rotate = ‘varimax‘)
2 rc

  4.获取主成分的得分系数

1 round(unclass(rc$weights),2)

  

  结论:可以通过系数*数值来计算出主成分得分

2.EFA

使用场景:探索因子分析发掘数据下一组较少的,无法观测的变量来解释一组可观测变量的相关性

  案例:使用EFA对6个心理学测试来检测参与者的得分

  1.判断需要提取的因子数

1 covariances <- ability.cov$cov
2 correlations <- cov2cor(covariances)
3 fa.parallel(correlations,n.obs = 112,fa=‘both‘,n.iter=100,main = ‘Scree plots with parallel analysis‘)

  结论:需要提取2个因子,因为图形在拐点之上有2个分布

  2.提取公共因子

1 fa <- fa(correlations,nfactors = 2,rotate = ‘none‘,fm=‘pa‘)
2 fa

  结论:2个因子解释了6个心理学测试的60%方差,需要进一步旋转

1 fa.varimax <- fa(correlations,nfactors=2,rotate=‘varimax‘,fm=‘pa‘)
2 fa.varimax

  结论:阅读和词汇在第一个因子占比较大,画图,积木在第二个因子上成分较大,如果想进一步判断这个各因子是否相关,需要使用斜交旋转提取因子

1 fa.promax <- fa(correlations,nfactors=2,rotate=‘Promax‘,fm=‘pa‘)
2 fa.promax

  结论:相关性为0.57,相关性很大,如果相关性不大,使用正交旋转即可

  3.计算得分

 1 fsm <- function(oblique) {
 2   if (class(oblique)[2]=="fa" & is.null(oblique$Phi)) {
 3     warning("Object doesn‘t look like oblique EFA")
 4   } else {
 5     P <- unclass(oblique$loading)
 6     F <- P %*% oblique$Phi
 7     colnames(F) <- c("PA1", "PA2")
 8     return(F)
 9   }
10 }
11
12 fsm(fa.promax)

  5.正交旋转所得因子得分图

  结论:词汇和阅读在第一因子上载荷较大,图片,迷宫,积木在第二个因子上载荷较大,普通智力检测在二者的分布较为平均

  6.斜交旋转所生成的因子图

1 fa.diagram(fa.promax,simple = F)

  结论:显示了因子之间的关系,该图比上一张图更为准确

   

    

原文地址:https://www.cnblogs.com/luhuajun/p/8463929.html

时间: 2024-11-02 23:54:50

R语言-主成分分析的相关文章

【转】R语言主成分分析(PCA)

https://www.cnblogs.com/jin-liang/p/9064020.html 数据的导入 > data=read.csv('F:/R语言工作空间/pca/data.csv') #数据的导入 > > ls(data) #ls()函数列出所有变量 [1] "X" "不良贷款率" "存贷款比率" "存款增长率" "贷款增长率" "流动比率" "收

主成分分析(PCA)原理及R语言实现

原理: 主成分分析 - stanford 主成分分析法 - 智库 主成分分析(Principal Component Analysis)原理 主成分分析及R语言案例 - 文库 主成分分析法的原理应用及计算步骤 - 文库 主成分分析之R篇 [机器学习算法实现]主成分分析(PCA)——基于python+numpy scikit-learn中PCA的使用方法 Python 主成分分析PCA 机器学习实战-PCA主成分分析.降维(好) 关于主成分分析的五个问题 主成分分析(PCA)原理详解(推荐) 多变

R语言无监督学习:PCA主成分分析可视化

原文链接:http://tecdat.cn/?p=9839 总览 在监督学习中,我们通常可以访问n个  观测值的p个  特征  集  ,并 在相同观测值上测得的  Y. 无监督学习是一组没有相关的变量  Y的方法.在这里,我们重点介绍两种技术… 主成分分析:用于数据可视化或在其他监督学习方法之前进行预处理的工具. 聚类:发现数据中未知组的方法. 无监督学习的挑战 通常,无监督学习比主观学习更具挑战性,因为它更具主观性.分析没有简单的目标,例如预测响应.无监督学习通常用作  探索性数据分析的一部分

R语言与数据分析之五:主成分分析

主成份分析历史: Pearson于1901年提出,再由Hotelling(1933)加以发展的一种多变量统计方法.通过析取主成分显出最大的个别差异,也用来削减回归分析和聚类分析中变量的数目,可以使用样本协方差矩阵或相关系数矩阵作为出发点进行分析. 通过对原始变量进行线性组合,得到优化的指标:把原先多个指标的计算降维为少量几个经过优化指标的计算(占去绝大部分份额) 基本思想:设法将原先众多具有一定相关性的指标,重新组合为一组新的互相独立的综合指标,并代替原先的指标. 成分的保留:Kaiser主张(

R语言数据挖掘实战系列(1)

R语言数据挖掘实战(1) 一.数据挖掘基础 数据挖掘:从数据中"淘金",从大量数据(包括文本)中挖掘出隐含的.未知的.对决策有潜在价值的关系.模式和趋势,并用这些知识和规则建立用于决策支持的模型,提供预测性决策支持的方法.工具和过程. 数据挖掘的任务 利用分类与预测.聚类分析.关联规则.时序模式.偏差检测.智能推荐等方法,帮助企业提取数据中蕴含的商业价值,提高企业的竞争力. 数据挖掘建模过程 定义挖掘目标,即决定到底想干什么? 数据取样.抽取一个与挖掘目标相关的样本数据子集.抽取数据的

R语言数据挖掘实战系列(5)

R语言数据挖掘实战系列(5)--挖掘建模 一.分类与预测 分类和预测是预测问题的两种主要类型,分类主要是预测分类标号(离散属性),而预测主要是建立连续值函数模型,预测给定自变量对应的因变量的值. 1.实现过程 (1)分类 分类是构造一个分类模型,输入样本的属性值,输出对应的类别,将每个样本映射到预先定义好的类别.分类模型建立在已有类标记的数据集上,模型在已有样本上的准确率可以方便地计算,所以分类属于有监督的学习. (2)预测 预测是建立两种或两种以上变量间相互依赖的函数模型,然后进行预测或控制.

《R语言实战》(中文完整版)pdf

下载地址:网盘下载 基本介绍 编辑 原作名: R in Action[2] 作者: Robert I. Kabacoff 译者: 高涛 / 肖楠 / 陈钢 出版社: 人民邮电出版社 出版年: 2013-1 页数: 388 定价: 79.00元 装帧: 平装 ISBN: 978-711-529-990-1 内容简介 编辑 数据时代已经到来,但数据分析.数据挖掘人才却十分短缺.由于"大数据"对每个领域的决定性影响,相对于经验和直觉,在商业.经济及其他领域中基于数据和分析去发现问题并作出科学

数据分析,R语言

数据结构 创建向量和矩阵 1 函数c(), length(), mode(), rbind(), cbind() 求平均值,和,连乘,最值,方差,标准差 1 函数mean(), sum(), min(), max(), var(), sd(), prod() 帮助文档 1 函数help() 生成向量 1 seq() 生成字母序列letters 新建向量 1 Which()函数,rev()函数,sort()函数 生成矩阵 1 函数matrix() 矩阵运算 1 函数t(),矩阵加减 矩阵运算 1

R语言 文本挖掘 tm包 使用

#清除内存空间 rm(list=ls()) #导入tm包 library(tm) library(SnowballC) #查看tm包的文档 #vignette("tm") ##1.Data Import 导入自带的路透社的20篇xml文档 #找到/texts/crude的目录,作为DirSource的输入,读取20篇xml文档 reut21578 <- system.file("texts", "crude", package = &quo