本期內(nèi)容為[R語言可視化-精美圖形繪制系列]--主成分分析(PCA)
主成分分析:PCA(Principal Component Analysis)是一種常用的數(shù)據(jù)分析方法巧鸭。PCA通過線性變換將原始數(shù)據(jù)變換為一組各維度線性無關(guān)的表示,可用于提取數(shù)據(jù)的主要特征分量纲仍,常用于高維數(shù)據(jù)的降維呀袱。
一、降維概述
1.1 數(shù)組和序列(Series)的維度
對于數(shù)組和序列(Series)來說郑叠,維度就是shape()函數(shù)返回的結(jié)果,shape()函數(shù)中返回了幾個(gè)數(shù)字乡革,就是幾維(也有人看array()開頭或者結(jié)尾連續(xù)中括號(hào)的數(shù)量)寇僧。
不分行列的數(shù)組叫一維數(shù)組摊腋,此時(shí)shape返回單一的維度上的數(shù)據(jù)個(gè)數(shù)嘁傀。有行列之分的數(shù)組叫二維數(shù)組,也稱為表细办。一張表最多有二個(gè)維度橙凳,復(fù)數(shù)的表構(gòu)成了更高維度的表。當(dāng)一個(gè)數(shù)組中存在2張3行4列的表時(shí)笑撞,shape返回的是更高維度的行和列。當(dāng)數(shù)組中存在2組2張3行4列的表時(shí)茴肥,數(shù)據(jù)就是4維坚踩,shape返回(2,2,3,4)。
數(shù)組中的每一張表堕虹,都可以是一個(gè)特征矩陣或一個(gè)DataFrame,這些結(jié)構(gòu)永遠(yuǎn)只有一張表芬首,所以一定有行列赴捞,其中行是樣本郁稍,列是特征赦政。針對每一張表耀怜,維度指的是樣本的數(shù)量或特征的數(shù)量恢着,一般無特別說明财破,指的都是特征的數(shù)量掰派。除了索引之外左痢,一個(gè)特征是一維,兩個(gè)特征是二維俊性,n個(gè)特征是n維略步。
1.2 圖像中的維度
對圖像來說,維度就是圖像中特征向量的數(shù)量定页。特征向量可以理解為是坐標(biāo)軸,一個(gè)特征向量定義一條直線典徊,是一維杭煎;兩個(gè)相互垂直的特征向量定義一個(gè)平面恩够,即一個(gè)直角坐標(biāo)系岔帽,就是二維玫鸟;三個(gè)相互垂直的特征向量定義一個(gè)空間犀勒,即一個(gè)立體直角坐標(biāo)系,就是三維贾费;三個(gè)以上的特征向量相互垂直钦购,定義人眼無法看見,也無法想象的高維空間褂萧。
1.3 降維解釋
降維:算法中的“降維”,指的是降低特征矩陣中特征的數(shù)量导犹。降維的目的是為了讓算法運(yùn)算更快唱凯,效果更好,但其實(shí)還有另一種需求:數(shù)據(jù)可視化谎痢。圖像和特征矩陣的維度是可以相互對應(yīng)的,即一個(gè)特征對應(yīng)一個(gè)特征向量节猿,對應(yīng)一條坐標(biāo)軸票从。所以,三維及以下的特征矩陣峰鄙,是可以被可視化的,這可以幫助我們很快地理解數(shù)據(jù)的分布太雨,而三維以上特征矩陣的則不能被可視化吟榴,數(shù)據(jù)的性質(zhì)也就比較難理解囊扳。
--
一煤墙、標(biāo)準(zhǔn)化
為了讓每一個(gè)維度對分析的結(jié)果造成同樣的影響宪拥,我們需要對連續(xù)的初始變量的范圍作標(biāo)準(zhǔn)化。
具體一點(diǎn)說就是因?yàn)槲覀兒罄m(xù)的結(jié)果對數(shù)據(jù)的方差十分敏感她君,取值范圍較大的維度會(huì)比相對較小的維度造成更大的影響(例如一個(gè)在1-100之間變化的維度對結(jié)果的影響,比一個(gè)0-1的更大)葫哗,會(huì)導(dǎo)致一個(gè)偏差較大的結(jié)果缔刹,所以,將數(shù)據(jù)轉(zhuǎn)化到相似的范圍可以預(yù)防這個(gè)問題校镐。
數(shù)據(jù)標(biāo)準(zhǔn)化的方法如下
二亿扁、計(jì)算協(xié)方差矩陣
這一步是為了理解數(shù)據(jù)集中的變量是如何從平均值變化過來的,同時(shí)可以查看不同的特征之間又有什么關(guān)系鸟廓,此時(shí)我們要計(jì)算協(xié)方差矩陣。
協(xié)方差矩陣是一個(gè)PP的對稱矩陣(P是維度的數(shù)量)它涵蓋了數(shù)據(jù)集中所有元組對初始值的協(xié)方差引谜,例如一個(gè)擁有三個(gè)變量x,y,z和三個(gè)維度的數(shù)據(jù)集牍陌,協(xié)方差矩陣將是一個(gè)33的矩陣(協(xié)方差的計(jì)算方法及含義見上文):
--
資料來源:
干貨 :一文讀懂主成分分析_數(shù)據(jù)分析v的博客-CSDN博客
主成分分析(PCA)二哥不像程序員的博客-CSDN博客主成分分析
代碼部分:
1. 導(dǎo)入數(shù)據(jù)
## inputdata PCA data
Sample01 Sample02 Sample03 Sample04
mRNA.Solyc00g500329.1.1 -0.2707275 0.4083721 -0.11663103 -0.521047
mRNA.Solyc00g500296.1.1 -0.2707218 0.4827739 -0.05794281 -0.521047
mRNA.Solyc01g005160.4.1 -1.2118387 -0.6153115 1.19154446 -1.224433
mRNA.Solyc01g005760.3.1 0.1866860 0.3774126 0.27799407 1.073132
Sample05
mRNA.Solyc00g500329.1.1 -0.29660887
mRNA.Solyc00g500296.1.1 -0.26940989
mRNA.Solyc01g005160.4.1 -0.02515638
mRNA.Solyc01g005760.3.1 0.87927082
##
Samp conditions
Sample01 CK
Sample02 CK
Sample03 CK
Sample04 Group01
Sample05 Group01
Sample06 Group01
Sample07 Group02
Sample08 Group02
Sample09 Group02
Sample10 Group03
Sample11 Group03
Sample12 Group03
Sample13 Group04
Sample14 Group04
Sample15 Group04
CK Treat_01 Treat_02 Treat_03 Treat_04
gene01 -0.84977517 1.4181238 -0.54757208 -0.1937784 -0.2953731
gene02 0.47702001 1.2419958 0.30147166 0.3991298 1.8328058
gene03 -0.25585638 -0.8757098 0.01523679 0.3542401 -0.2953731
gene04 -0.76343921 -0.1194277 -0.15231595 0.8108953 -0.2953731
gene05 0.01850849 -0.8757098 -1.42282342 1.0168803 3.6391267
gene06 -0.84977517 1.6553410 -0.96212175 3.2958347 -0.2953731
- 過濾參數(shù)
data <- data[apply(data, 1, var)!=0,]
- 計(jì)算絕對偏差
mads <- apply(data, 1, mad)
data <- data[rev(order(mads)),]
- PCA分析员咽,scale標(biāo)準(zhǔn)化
pca <- prcomp(data_t[,1:variableL], scale=TRUE)
head(pca)
- 結(jié)果展示
fviz_eig(pca, addlabels = TRUE)
## PAC樣品聚類信息展示
fviz_pca_ind(pca, repel=F)
## 根據(jù)樣品分組上色
fviz_pca_ind(pca, col.ind=data_t$conditions, mean.point=F, addEllipses = T, legend.title="Groups")
- 根據(jù)分組上色并繪制95%置信區(qū)間
--
往期文章(總匯)
01-[R語言可視化-精美圖形繪制系列]--精美火山圖
02-R語言可視化-精美圖形繪制系列--柱狀圖
03-R語言可視化-精美圖形繪制系列--功能富集分析
04-R語言可視化-精美圖形繪制系列—多組GO富集可視化
05-[R語言可視化-精美圖形繪制系列--堆積圖]
06-[R語言可視化-精美圖形繪制系列--組間相關(guān)性分析]
07-[R語言可視化-精美圖形繪制系列]--Mental分析
08-[R語言可視化-精美圖形繪制系列--復(fù)雜熱圖+兩圖漸變連線]-【轉(zhuǎn)載】
09-[R語言可視化-精美圖形繪制系列--杀词遥基圖(Sankey)]
10-[R語言可視化-精美圖形繪制系列--柱狀圖誤差線標(biāo)記]
11-跟著NC學(xué)作圖 | 柱狀圖與相關(guān)性圖
12-[R語言可視化-精美圖形繪制系列--GO、KEGG富集通路關(guān)聯(lián)圖]
13-[跟著“基迪奧生物學(xué)”作圖]--截?cái)鄨D
14-[R語言可視化-精美圖形繪制系列]--顯著性箱線圖
14-2[R語言可視化]--箱線圖不同的畫法及參數(shù)設(shè)置 | 學(xué)習(xí)筆記
15-[R語言可視化-精美圖形繪制系列]--組內(nèi)相關(guān)性分析
--
小杜的生信筆記 捡偏,主要發(fā)表或收錄生物信息學(xué)的教程误趴,以及基于R的分析和可視化(包括數(shù)據(jù)分析霹琼,圖形繪制等)凉当;分享感興趣的文獻(xiàn)和學(xué)習(xí)資料!