用R语言做PCA的具体步骤

Python020

用R语言做PCA的具体步骤,第1张

#导入你的矩阵,我的矩阵是包含列名称和行名称的

exp = read.table('exp.txt', header = TRUE ,sep = '\t' )

require(graphics)#调用PCA画图的包

#做PCA时,不要行名称所以从第二列开始

PCA1 = princomp(exp[,2:(dim(exp)[2]-1)] )

summary(PCA1)

pc = loadings(PCA1)

Comp.1 = PCA1$loadings[,1]

Comp.2 = PCA1$loadings[,2]

plot(Comp.1,Comp.2 ,col = c('red','red','red','green','green','green','blue','blue','blue'))

#此数据分为三组,所以我画了不同的颜色。

#这是做PCA以及画图的简单流程,供参考!

我也想问下,这是这周BNU的非参作业吧= =

comp <- sample(c(0, 5), size = 1000, prob = c(0.6, 0.4), replace = T)

x=rnorm(1000, mean = ifelse(comp == 0, 0, 5), sd = ifelse(comp == 0, 1, 0.2^0.5))

require(boot)

median.boot<-function(x,ind){median(x[ind])}

boot(x,median.boot,1000)

中位数就把mean改成median~

是不一样啊,主成分分析主要运算是求矩阵的特征值和特征向量。

cor=T时,输入矩阵为相关系数矩阵,每个元素是0<=x<=1的,对角线为1;

cor=F时,输入矩阵为协方差矩阵,对角线为每个变量的方差;

默认是cor=F的,

而相关系数矩阵就相当于先将数据标准化,然后再求协方差矩阵。

即:先将数据标准化,两种方式才是相同的。否则,cor=T比cor=F相当于多一个标准化过程。