PCA分析和因子分析
#由此说明使用prcomp函数时,必须使用标准化过的原始数据。如果使用没有标准化的raw数据(不是相关系数矩阵或者协方差矩阵),必须将参数scale. = T
<result>$sdev #表示标准差,意思是 <result>$sdev[1] = sqrt(var(<result>$x))
<result>$rotation #表示的是特征向量矩阵,也可以由eigen(<输入的原数据>)$vector 得到
<result>$x #表示的是主成分结果矩阵,可以由<输入的原数据>%*%<result>$rotation得到
==============================================================
p1 = princomp(scr,cor = T);p1 ###看来,必须把cor = T加上才可以得到正确的值,否则是使用cov计算的结果,并且计算过程中有新的参数加入
#cor = False :cv <- covmat$cov * (1 - 1/n.obs)
#cor = True: cv <- covmat$cov * (1 - 1/n.obs),sds <- sqrt(diag(cv)),cv <- cv/(sds %o% sds)
#sdev = sqrt(eigen(cv, symmetric = TRUE)$value)
#下面的证明表明,使用cov和使用cor的结果还是十分的不一样的
<result>$sdev #主成分结果矩阵每一列的标准差
<result>$loading #特征向量矩阵
<result>$scores # 主成分结果矩阵
注意:在使用princomp函数时,必须使用标准化后的原始矩阵(不能是相关系数矩阵或者协方差矩阵);如果使用未被标准化的原始数据,必须加入参数:cor = T 。
=================================================================================================
library(psych)
p32 = principal(scr,nfactors = 5,rotate = "varimax");p32
p3 = principal(scrcor,nfactors = 5,rotate = "varimax");p3
这两个运行的结果一样,说明在principal函数中,可以使用原始数据或相关系数矩阵。这个可以使用相关系数矩阵或者协方差矩阵,是十分不同于之前的两个主成分求值函数的。
p32$values #特征值,等同于结果矩阵的方差值
scr是经过标准化的数据集;r是原始矩阵,没有经过标准化的数据。
cor(scr)
cov(scr)
cor(r)
cov(r)
结果证明,经过标准化的原始矩阵的相关系数矩阵和协方差矩阵一样;但是没有经过标准化的数据集的协方差和相关系数矩阵是不一样的。
ep3 = eigen(cor(scr))
loading = ep3$vectors %*% sqrt(diag(ep3$values))
sign.tot <- vector(mode = "numeric", length = 5);sign.tot
sign.tot <- sign(colSums(loading));sign.tot
sign.tot[sign.tot == 0] <- 1;sign.tot
loadings <- loading %*% diag(sign.tot);loadings
varimax(loadings)$loadings
最后的loadings值就是上面的过程得到的,当然此处参数是 nfactors = 5, rotate = "varimax" , r = scr.
=====================================================================
以下内容来自于网址:https://site.douban.com/182577/widget/notes/11806604/note/262310174/
最常用的求解PCA的函数是stats包的
prcomp()和princomp( )。
前者采用观测阵的奇异值分解方法,后者采用相关系数阵的特征值分解方法。
输出结果上,包括特征值,载荷,主成分得分等,结果基本相似。
同时可以利用print( ),summary( )显示输出结果。
plot( )画scree plot,biplot( )绘制biplot。
SciViews包的pcomp()综合了上面两个函数的方法。
psych包的相关函数
这个包是关于心理计量的包,其中有关于主成分的函数principal( )
这个函数是作为因子分析的主成分解法存在的,要和fa.parallel()结合使用。
还有一个心理学的包:psy包,也有相关的函数
====================================================
我想说的是,principal()函数得到结果中,$value 是特征值,$loading是由因子载荷矩阵,是因子分析的主成份解法中的概念,$scores是因子得分系数。
============
http://blog.csdn.net/lilanfeng1991/article/details/36190841#
还可以参考上文
原谅我,现在还是有点模糊,都花了好几天了,算了,以后再慢慢弄明白
PCA分析和因子分析的更多相关文章
- 利用pca分析fmri的生理噪声
A kernel machine-based fMRI physiological noise removal method 关于,fmri研究中,生理噪声去除的价值:一.现在随着技术的提升,高场fm ...
- plink 进行PCA分析
当我们进行群体遗传分析时,得到vcf后,可利用plink进行主成分(PCA)分析: 一.软件安装 1 conda install plink 二.使用流程 第一步:将vcf转换为plink格式 1 p ...
- PCA分析的疑问
R 与python scikit-learn PCA的主成分结果有部分是反的 通过R和python分别计算出来的PCA的结果存在某些主成分的结果是相反的,这些结果是没有问题的,只是表示这个分量被反转了 ...
- 14、PCA分析
做芯片PCA主成分分析可以选择使用affycoretools包的plotPCA方法,以样品"GSM363445_LNTT.CEL"."GSM362948_LTT.CEL& ...
- PCA分析,及c++代码实现
本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/fengbingchun/article/details/79235028 主成分分析(Principal Co ...
- R 语言实战-Part 4 笔记
R 语言实战(第二版) part 4 高级方法 -------------第13章 广义线性模型------------------ #前面分析了线性模型中的回归和方差分析,前提都是假设因变量服从正态 ...
- 因子分析和PCA总结
因子分析和PCA 定义 因子分析就是数据降维工具.从一组相关变量中删除冗余或重复,把相关的变量放在一个因子中,实在不相关的因子有可能被删掉.用一组较小的“派生”变量表示相关变量,这个派生就是新的因子. ...
- Eigensoft-smartpca分析PCA报错:warning (mapfile): bad chrom: Segmentation fault
目录 问题 解决 问题 一直以来用Eigensoft的smartpca来做群体遗传的PCA分析很顺畅,结果也比较靠谱. 但今天报错如下: $ ~/miniconda3/bin/smartpca -p ...
- 第七篇:数据预处理(四) - 数据归约(PCA/EFA为例)
前言 这部分也许是数据预处理最为关键的一个阶段. 如何对数据降维是一个很有挑战,很有深度的话题,很多理论书本均有详细深入的讲解分析. 本文仅介绍主成分分析法(PCA)和探索性因子分析法(EFA),并给 ...
随机推荐
- 注册页面的JSON响应方式详细分析(与前端页面交互方式之一)
控制器层 需求分析: 访问路径:`/user/reg.do` //自己根据功能需求设定的请求参数:`username=xx&password=xx&&phone=xx& ...
- Docker学习笔记之Docker的Build 原理
0x00 概述 使用 Docker 时,最常用的命令无非是 docker container 和 docker image 相关的子命令,当然最初没有管理类命令(或者说分组)的时候,最常使用的命令也无 ...
- bzoj4566 / P3181 [HAOI2016]找相同字符
P3181 [HAOI2016]找相同字符 后缀自动机 (正解应是广义后缀自动机) 并不会广义后缀自动机. 然鹅可以用普通的后缀自动机. 我们先引入一个问题:算出从一个串内取任意两个不重合子串完全 ...
- windows 7/10 安装u盘制作
今天,在拷贝数据时,发现那台丢在那两三年的pc密码忘了,故计划重装,因为从来都是公司信息中心管这事,至少都七八年没有自己装机了,故整理过程如下: 1.从itellyou.cn下载原版镜像: 2.准备一 ...
- nvgre
GRE RFC2784 工作原理 Structure of a GRE Encapsulated Packet A GRE encapsulated packet has the form: ---- ...
- centos-6.5安装部署LNMP环境
安装部署前,确保安装了gcc和gcc-c++ 系统信息: [root@zww ~]# cat /etc/redhat-release CentOS release 6.5 (Final) [root@ ...
- topcoder srm 693 div1 -3
1.给出一个$n$个顶点的无向带权图.其中顶点$i,i+1$之间存在边,$i,i+2$之间存在边.而且仅有这些边.现在删掉其中的一些边,剩下的边满足图仍然是2联通的情况下使得权值和最小? 思路:其实就 ...
- openwrt支持哪些c库?
答: 至2019/3/22,支持两种,一种是glibc,另一种是musl-libc(openwrt默认使用musl-libc)
- 总结: 在fc23中, 安装音频mp3 视频flv 的播放插件其实很简单, 只要一步就可以了: dnf install gstreamer1-libav
同样是 firefox, 单词的在线发音, 跟 百度mp3的在线播放不是一样的!!! 百度/优酷 的在线播放, 用的确实是 flash player , 所以 你安装好libflashplayer后, ...
- outlook使用笔记
使用电子邮件客户端(pc端)软件, 确实是不得已. 出于某些考试/了解的目的? 现在使用 在线/网页端电子邮件 确实要好得多, 方便得多了. outlook和其他软件都是 设置的 "帐户 a ...