主成分分析(PCA)如何计算方差解释率

我们常看到的PCA图中,每个成分都对应了每个特征方差贡献率。通常,求得了PCA降维后的特征向量,我们就可以绘图,但各个维度的方差解释率没有得到,就无法获得PC坐标的百分比。 (文...

我们常看到的PCA图(如下)中,每个成分都对应了每个特征方差贡献率。通常,求得了PCA降维后的特征向量,我们就可以绘图,但各个维度的方差解释率没有得到,就无法获得PC坐标的百分比。

attachments-2022-09-5NiejzMW6311630b6ee4f.png

(文章链接:https://doi.org/10.1038/s41467-021-23879-2)


方差解释率计算方式(以R为例)

1.方差已知

若通过plink,GCTA等软件计算pca值,会获得eigenveceigenval两个文件,前者记录特征向量,用于绘图;后者记录特征方差,用来计算每个PC所占的比重。计算方式其实就是将各个特征值(方差)大小除以求和的总特征值就得到了各个特征贡献性占比。

eigval <- read.table("snp.gcta.eigenval", header = F) 
percentage <- eigval$V1/sum(eigval$V1)*100               #文件第一列为特征方差


2.方差未知

根据特征向量计算出来,先计算标准差,进而计算特征方差。

sdev<- apply(pca.scores,2,sd)                  #根据特征向量计算标准差,pca.scores为特征向量
percentage <- pca$sdev^2/sum(pca$sdev^2)*100   #手动计算方差解释率


参考  https://www.jianshu.com/p/ede680988692
https://github.com/Wanyi-Huang/PCA2normal_format.R
  • 发表于 2022-09-02 11:05
  • 阅读 ( 7620 )
  • 分类:遗传进化

0 条评论

请先 登录 后评论
星莓
星莓

生物信息工程师

58 篇文章

作家榜 »

  1. omicsgene 702 文章
  2. 安生水 350 文章
  3. Daitoue 167 文章
  4. 生物女学霸 120 文章
  5. xun 82 文章
  6. 红橙子 78 文章
  7. rzx 76 文章
  8. CORNERSTONE 72 文章