PCA分析的疑问
R 与python scikit-learn PCA的主成分结果有部分是反的
- 通过R和python分别计算出来的PCA的结果存在某些主成分的结果是相反的,这些结果是没有问题的,只是表示这个分量被反转了,结果同样是有效的。
- PCA的本质是寻找一条正交的线,这条线应该是可以有不同方向的
数据格式
148 41 72 78
139 34 71 76
160 49 77 86
149 36 67 79
159 45 80 86
142 31 66 76
153 43 76 83
150 43 77 79
151 42 77 80
139 31 68 74
140 29 64 74
161 47 78 84
158 49 78 83
140 33 67 77
137 31 66 73
152 35 73 79
149 47 82 79
145 35 70 77
160 47 74 87
156 44 78 85
151 42 73 82
147 38 73 78
157 39 68 80
147 30 65 75
157 48 80 88
151 36 74 80
144 36 68 76
141 30 67 76
139 32 68 73
148 38 70 78
python计算PCA代码
from sklearn.decomposition import PCA
pca = PCA()
data = pd.read_csv("test.xls",sep="\t")
mda = data.T.values
pca = PCA()
pc = pca.fit_transform(mda)
pd.DataFrame(pc)
R计算PCA代码
test<-data.frame(
X1=c(148, 139, 160, 149, 159, 142, 153, 150, 151, 139,
140, 161, 158, 140, 137, 152, 149, 145, 160, 156,
151, 147, 157, 147, 157, 151, 144, 141, 139, 148),
X2=c(41, 34, 49, 36, 45, 31, 43, 43, 42, 31,
29, 47, 49, 33, 31, 35, 47, 35, 47, 44,
42, 38, 39, 30, 48, 36, 36, 30, 32, 38),
X3=c(72, 71, 77, 67, 80, 66, 76, 77, 77, 68,
64, 78, 78, 67, 66, 73, 82, 70, 74, 78,
73, 73, 68, 65, 80, 74, 68, 67, 68, 70),
X4=c(78, 76, 86, 79, 86, 76, 83, 79, 80, 74,
74, 84, 83, 77, 73, 79, 79, 77, 87, 85,
82, 78, 80, 75, 88, 80, 76, 76, 73, 78)
)
data=t(as.matrix(test))
#'princomp'只能在单位比变量多的情况下使用
data.pr<-princomp(data,cor=TRUE)
#cor是逻辑变量 当cor=TRUE表示用样本的相关矩阵R做主成分分析
当cor=FALSE表示用样本的协方差阵S做主
das = summary(data.pr,loadings=TRUE)
#当样品比比变量少时用fast.prcomp
data.pca = fast.prcomp(data,retx=T,scale=F,center=T)
a = summary(data.pca)
pc = as.data.frame(a$x)
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 ...
- 从源代码角度分析ViewStub 疑问与原理
一.提出疑问 ViewStub比較简单.之前文章都提及到<Android 性能优化 三 布局优化ViewStub标签的使用>.可是在使用过程中有一个疑惑,究竟是ViewStub上设 ...
- PCA分析和因子分析
#由此说明使用prcomp函数时,必须使用标准化过的原始数据.如果使用没有标准化的raw数据(不是相关系数矩阵或者协方差矩阵),必须将参数scale. = T <result>$sdev ...
- 14、PCA分析
做芯片PCA主成分分析可以选择使用affycoretools包的plotPCA方法,以样品"GSM363445_LNTT.CEL"."GSM362948_LTT.CEL& ...
- PCA分析,及c++代码实现
本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/fengbingchun/article/details/79235028 主成分分析(Principal Co ...
- Eigensoft-smartpca分析PCA报错:warning (mapfile): bad chrom: Segmentation fault
目录 问题 解决 问题 一直以来用Eigensoft的smartpca来做群体遗传的PCA分析很顺畅,结果也比较靠谱. 但今天报错如下: $ ~/miniconda3/bin/smartpca -p ...
- PCA和PCoA
讲解很详细:http://blog.genesino.com/2016/10/PCA/ PCA分析一般流程: 中心化(centering, 均值中心化,或者中位数中心化),定标(scale,如果数据没 ...
- 机器学习:PCA(基础理解、降维理解)
PCA(Principal Component Analysis) 一.指导思想 降维是实现数据优化的手段,主成分分析(PCA)是实现降维的手段: 降维是在训练算法模型前对数据集进行处理,会丢失信息. ...
随机推荐
- javascript 是实际上最容易被误解的语言
不是立 Flag,而是摘录的 JSON 创始人的深切感受.如果你不同意,说明还理解的不够深入(kidding~) “JavaScript is the world’s most misunders ...
- Loadrunner11录制过程中报错:由于另一个程序正在运行中,此操作无法完成
第一次安装LR11录制没有问题,第二次录制也没有问题,后面第二天录制就出现了如下截图的现象 报错内容:由于另一个程序正在运行中,此操作无法完成.请选择“切换到”来激活正在运行中的的程序,并更正问题 ...
- Python里面如何生成随机数?
import randomrandom.random()它会返回一个随机的0和1之间的浮点数
- LDAP服务端 - 调研
一.服务端实现 1.OpenLdap 2.ApacheDS 二.OpenLdap 1.https://segmentfault.com/a/1190000014683418 2.https://www ...
- python实用技巧之任务切分
Python 大任务切分小任务 今天来说说,Python中的任务切分.以爬虫为例,从一个存 url 的 txt 文件中,读取其内容,我们会获取一个 url 列表.我们把这一个 url 列表称为大任务. ...
- YARN 状态机可视化,生成状态机图
由于在windows下面,配置好所有 编译hadoop2.4.1源码 的环境会很麻烦,好在我之前已经把hadoop2.4.1的源码成功导入eclipse,并解决了所有错误提示,所以我就可以在eclip ...
- html5的datalist元素详解
html5的datalist元素详解 一.总结 一句话总结: datalist元素配合input元素可以出现有提示选择作用的选框效果,还是相对比较简便好用的 1.optgroup元素是干嘛的? opt ...
- mysql innodb与myisam存储文件的区别
myisam: .frm: 存储表定义 .myd(MYData):存储数据 .MYI(MYindex):存储引擎 innodb: .frm:存储表定义 .idb:存储数据和索引,在同一个文件中
- openwrt共享打印机需要安装哪几个文件
opkg updateopkg install luci-app-p910ndopkg install kmod-usb-printer
- ubuntu18.04 qemu环境搭建【学习笔记】
一.准备工具 1.1 安装相关工具 sudo apt-get install qemu libncurses5-dev gcc-arm-linux-gnueabi build-essential 1. ...