R-使用空气质量数据做因子分析(主成分提取法)

首先,加载我们需要用到的包,

install.packages("corrplot")#相关系数矩阵可视化
install.packages("psych")#因子分析,本次实验使用其平行分析的能力
#另外需要下载mvstat程序包,安装到library的路径下

读取我们准备好的数据

airquality <- read.csv("C:/Users/LRT/Desktop/graduate/paper/data/Airdata.csv", sep=",", header = TRUE,stringsAsFactors = FALSE)

因为原始数据中的变量名称都是中文,所以先简化一次变量名称

colnames(airquality) <- c("city", "SO2", "NO2","PM10", "CO","O3","PM2.5","days","rain")

简化结束后,查看数据结构等

#查看数据结构
summary(airquality)
str(airquality)

进行因子分析时,需要先检验变量之间的相关性,在这里先将变量之间的相关系数进行可视化

#相关系数矩阵及具有双色表正负相关
airquality_cor <- cor(airquality[2:9], method = "spearman")#spearman法求相关系数矩阵
library(corrplot)#加载corrplot包
corrplot.mixed(airquality_cor, number.cex = .9)#绘制混合型相关系数矩阵图

效果如图:
只有图形展示还是不够的,我们需要进行KMO和巴雷特球形检验

#巴雷特球形检验&KMO检验
library(psych)#加载检验用到的包
cortest.bartlett(airquality_cor)#巴雷特球形检验
KMO(airquality_cor)#kmo检验

注意这里的KMO函数书写格式必须为大写
检验结果如图,且结果说明适合做因子分析。

接下来需要判断这几个变量需要提取几个因子

#判断需要提取的公因子个数
library(psych)#加载检验用到的包
fa.parallel(airquality_cor, n.obs = 320, fa = "fa", n.iter = 100)#制作碎石图判断个数

代码中,fa表示适合提取的因子个数,如改成pc则表示主成分个数,如果都想展示就改成both,n.iter为要执行的模拟分析的数量。
结果如图:


这里R建议我们选择两个因子
接下来进行主成分法提取因子,并对因子进行最大方差旋转,最后得到一系列我们需要的值

library(mvstats)
airquality_score <- factpc(airquality[2:9],2,rotation="varimax",scores = "regression")
airquality_score$Vars#输出因子方差、方差贡献率以及累计方差贡献率
airquality_score$loadings#输出因子载荷矩阵
airquality_score$scores#输出因子得分
airquality_score$Rank#输出排名
factor.plot(airquality_score,labels = rownames(airquality_score$loadings),title = "Factor Analysis",pos = "3")

其中,计算得分的方法可以为regression(回归),也可以为bartlett(巴雷特)。
最后依据结果进行分析即可。

R-因子分析(主成分提取法)相关推荐

  1. R语言主成分PCA、因子分析、聚类对地区经济研究分析重庆市经济指标

    全文下载链接:http://tecdat.cn/?p=27515 建立重庆市经济指标发展体系,以重庆市一小时经济圈作为样本,运用因子分析方法进行实证分析,在借鉴了相关评价理论和评价方法的基础上,本文提 ...

  2. 数据分享|R语言主成分PCA、因子分析、聚类对地区经济研究分析重庆市经济指标...

    原文链接:http://tecdat.cn/?p=27515  建立重庆市经济指标发展体系,以重庆市一小时经济圈作为样本,运用因子分析方法进行实证分析,在借鉴了相关评价理论和评价方法的基础上,本文提取 ...

  3. matlab mysvd代码解释,关于使用SVD进行PCA主成分提取的代码问题!也是必须涉及到原理的!...

    如标题所示,目的是将矩阵进行PCA分析最终得到降维后的新主成分,对于特征值特征向量的提取方法是通过svd.代码和函数名称定义如下/如图所示 function [Xm,U,L]=pca(X,K); % ...

  4. R语言主成分回归(PCR)、 多元线性回归特征降维分析光谱数据和汽车油耗、性能数据...

    原文链接:http://tecdat.cn/?p=24152 什么是PCR?(PCR = PCA + MLR)(点击文末"阅读原文"获取完整代码数据). • PCR是处理许多 x ...

  5. matlab pca svd,关于使用SVD进行PCA主成分提取的代码问题!也是必须涉及到原理的!...

    如标题所示,目的是将矩阵进行PCA分析最终得到降维后的新主成分,对于特征值特征向量的提取方法是通过svd.代码和函数名称定义如下/如图所示 function [Xm,U,L]=pca(X,K); % ...

  6. 【OpenCV 例程 300篇】237. 基于主成分提取的方向校正(OpenCV)

    『youcans 的 OpenCV 例程200篇 - 总目录』 [youcans 的 OpenCV 例程 300篇]237. 基于主成分提取的方向校正(OpenCV) 主成分分析(Principal ...

  7. R factoextra 主成分

    Package for PCA visualization 我们将使用 factoextra R 包来创建基于 ggplot2 的优雅可视化. You can install it from CRAN ...

  8. 65 R 主成分与因子分析

    主成分与因子分析 1 概念 2 数学模型 3 相关性分析 4 R主成分分析 三种方法 4.1方法1 princomp 方法2 princomp 未标准化 方法3 用principal 函数对原数据进行 ...

  9. 【R实验.9】主成分和因子分析

    解法并不单一,下列方法带有璇子个人的偏好,因此仅供参考.如有错误,欢迎在评论区斧正! 9.1 用主成分方法探讨城市工业主体结构.表 9-4 是某市工业部门十三个行业,分别是冶金 (1).电力(2).煤 ...

最新文章

  1. ssh_exchange_identification: Connection closed by remote host 问题的解决 (转)
  2. 【Ubuntu-Tensorflow】程序结束掉GPU显存没有释放的问题
  3. 晚上答辩的理论知识准备
  4. treeset java_Java TreeSet pollLast()方法与示例
  5. Spring bean 不被 GC 的真正原因
  6. was环境通过HTTPS访问其他域名报错 CWPKI0022E: SSL 握手故障:已从目标主机:端口“。。。...
  7. 解决 OCS: No schema for XXX at xx index, context <Quirks> 警告
  8. 基于matlab的图像分割
  9. android小米便签源代码分析,小米开源便签Notes-源码研究(1)-导出功能整体思路
  10. java每日一练(19_03_18)
  11. P1116 车厢重组
  12. 关于录制短视频点播不能播放问题的总结
  13. open judge 1.6.4
  14. markdown编辑器的基本使用
  15. 因特网、万维网和互联网
  16. Community Day - Let's re:Invent re:Invent 技术创新盘点
  17. openwrt patch文件怎么用_openwrt patch
  18. 性能测试之tcpcopy引流工具介绍
  19. 软件项目管理复习要点
  20. DNS劫持是什么意思?百度dns有什么坏处?DNS被劫持会造成哪些后果?

热门文章

  1. Linux入门笔记(完结版)
  2. 计算机丢失msidcr,修复msidcr140.dll
  3. Java数据结构——栈(数组实现)
  4. js 乱码 反斜杠_js 转义字符及URI编码详解
  5. Java死锁Demo
  6. 在 Vue2 Annotate 中通过 Annotate JS 生成自定义注解(面向切面编程)
  7. 踏遍青山情未老 —— 九山顶重游记(一)
  8. 【解决】3D加速(DirectX功能)被禁用(灰色)或者不可用
  9. 深度学习系列笔记——贰 (基于Tensorflow Keras搭建的猫狗大战模型 一)
  10. 微信小程序实现给一个时间去设置倒计时