協慣量分析(CoIA)及其在R中的實現

協慣量分析(CoIA)及其在R中的實現
協慣量分析(co-intertia anaysisCoIA)是一種對稱融合排序方法,用於衡量兩組資料集之間的一致性(Dolédec and Chessel, 1994)。
CoIA概述

CoIA過程可概括如下。
分別在變數矩陣XYXY資料集中的物件需一致)的多維空間中,分解總慣量獲得一組正交軸(特徵向量),它們各自代表了正交方向上的最大化慣量方向。總慣量是資料變異程度的整體度量,如果透過PCA執行特徵向量的分解,則過程中的總慣量等於總方差。
協慣量則是對XY空間中物件共同結構的全域性度量,當XY中的變數具有較高的某種相關程度時,協慣量高,當XY中的變數趨於獨立時,協慣量低。CoIA的目的是確定XY空間中具有最大協慣量的兩組特徵向量,並透過它們計算獲得一組協慣量軸,代表正交方向上最大化協慣量的方向,各軸承載的協慣量之和即總協慣量。
上述XY在特徵分解過程中是各自獨立的過程。如果將上述兩步統一起來,則也可以這樣理解:CoIA中計算了XY內變數交叉的協方差矩陣,協方差矩陣的平方和即為總協慣量,協慣量軸則代表了對協方差矩陣的特徵分解。
最後將XY中的原始物件和變數投影至協慣量軸中,據此判斷它們之間的關係。並可結合置換檢驗,確定CoIA在評估XY結構相似程度的有效性。
(圖片來源:Dolédec and Chessel, 1994
在分解XY總慣量的過程中,根據實際情況存在多種備選方法,例如PCACA等,並且允許使用不同的方法分別對各資料集分析。因此CoIA可對應多種融合型別,例如PCA-PCA融合的CoIACA-PCA融合的CoIA等。除常規的定量資料外,還可透過與多重對應分析(MCA)、模糊主成分分析(FPCA)等的結合,實現對定性資料、模糊資料等的分析,充分體現了CoIA的靈活性。
但是CoIA要求在分別對XY執行特徵分解後,行的權重必須相等才可將兩個分離的排序過程融合在一起,因此可能限制了基於加權迴歸的CACoIA中的應用。
常見的約束排序如冗餘分析(RDA)、典範對應分析(CCA)涉及了多元迴歸過程,對於解釋變數而言,如果不相關(即正交)變數很少,則多元迴歸步驟近似於單變量回歸的擴充套件,此時RDACCA都是相對有效的方法。但若解釋變數較多,它們通常之間會存在更多的相關性,此時RDACCA將變得不穩定。因此對於RDACCA,通常要求解釋變數的數量一般不能很多,例如在物種環境的約束排序分析中,儘可能減少環境變數(解釋變數)的數量以提升約束模型精度。相比之下,CoIA與偏最小二乘迴歸相關聯,在資料維數隨變數數量迅速增加時通常表現較好,因此對於上述這類物種環境關係的確立,CoIA無需考慮對環境變數數量的限制,是經典迴歸的可靠替代方法。儘管如此,CoIA由於其屬於對稱分析範疇,分析的兩資料集之間無解釋變數與響應變數之分,二者無解釋與被解釋關係。如果期望使用環境對物種建模(即變數間存在因果關係),RDACCA等仍是首選,並透過變數選擇去除不重要且存在強相關的解釋變數。
在另一常見的對稱分析型別典範相關分析(CCorA)中,通常要求變數的數量少於物件的數量,且資料集需是服從多元正態分佈的定量變數。與CCorA相比,CoIA不存在這些限制,故其適用範圍更廣。
總體來講,CoIA廣泛應用於多元分析。在生物學領域的多組學研究中,經常可以見到CoIA
例如在微生物組研究中,除了上述提到的物種環境的互動外(微生物群落),其它方面,例如使用CoIA確定兩組環境變數的相關性或者物種間的共變(微生物群落),或者物種組成(如16S18SITS測序)與功能(如宏基因組)的關係,以及群落功能的一致性(如宏基因組、宏轉錄組、代謝組)等。再例如轉錄組中,使用CoIA分析微陣列與RNA-seq的基因表達譜一致性等。
R語言執行CoIA

本篇簡介R語言執行CoIA的方法。
R中,可用於執行CoIA的方法有很多,例如ade4包的coinertia()made4包的cia()等。
示例資料集概要
made4的內建資料集“NCI60”為60種人類腫瘤細胞系的基因表達譜,這些細胞系來源於白血病、黑色素瘤、肺癌、結腸癌、中樞神經癌、卵巢癌、腎癌、乳腺癌和前列腺癌等。“NCI60”是一個列表結構,包含了基因表達矩陣“Affy”和“Ross”,分別為使用Affymetrixspotted cDNA微陣列技術對這60種細胞系進行表達譜分析的子集,兩組微陣列涉及的樣本(物件)相同,但基因(變數)不同,且兩組資料集中的基因表達譜已經過標準化處理。

#bioconductor 安裝 made4 包

#BiocManager::install('made4')

#載入 made4 包,made4 以 ade4 為基礎(呼叫 ade4 的函式),所以它也會自動載入 ade4 包

library(made4)
#資料集

#詳情 http://www.bioinf.ucd.ie/people/aedin/R/pages/made4/html/NCI60.html

data(NCI60)

names(NCI60)
head(NCI60$Ross[1:6])  #spotted cDNA 微陣列

head(NCI60$Affy[1:6])  #Affymetrix 微陣列

head(NCI60$classes)      #細胞系的癌細胞型別

然後期望評估兩個微陣列中的基因表達特徵是否相似。由於兩個微陣列涉及的基因(變數)不同,故無法根據共有基因的表達水平直接去觀測,此時CoIA是個較好的替代方案。
R包ade4的CoIA
以下透過ade4中的方法執行CoIA
抱歉,這裡載入made4包,只是單純地想使用它的資料集……至於為什麼不繼續使用made4中的方法執行CoIA,個人感覺它的處理效果不如ade4靈活;然後ade4中自帶的資料集,也感覺不好使……
##ade4 執行 CoIA

#這裡對於兩組基因表達譜,可執行 PCA-PCA 融合的 CoIA
#首先執行資料集1(spotted cDNA 微陣列矩陣)的 PCA,詳情 ?dudi.pca

dudi1 <- dudi.pca(NCI60$Ross, scale = FALSE, scan = FALSE, nf = 4)
#其次執行資料集2(Affymetrix 微陣列矩陣)的 PCA

dudi2 <- dudi.pca(NCI60$Affy, scale = FALSE, scan = FALSE, nf = 4)
#檢視兩步 PCA 的總方差由各軸的承載比,評估前幾軸的代表性

summary(dudi1)

summary(dudi2)
#檢視兩步排序的行權重是否一致,為 TRUE 時才可用於融合

all.equal(dudi1$lw, dudi2$lw)

首先對兩組資料集分別執行獨立的PCA分析(特徵分解),dudi.pca()函式中的scale引數用於標準化資料,這裡由於兩組資料集已經是標準化後的基因表達譜矩陣,所以scale=FALSEnf引數可用於擷取結果中的排序軸數量以便後續觀測和分析資料(不影響計算過程),這裡保留前4軸。
以下是兩個PCA的結果概要。

兩個PCA的前幾軸貢獻度可觀,且兩個PCA結果的行權重一致,滿足CoIA的前提,然後將兩個PCA結果提交coinertia()執行CoIA,結果中同樣保留前4軸(這裡的軸數選擇要小於等於兩個PCA中的最小軸數,同樣地,軸數選擇僅為方便觀測資料,不影響計算結果)。
#PCA-PCA 融合的 CoIA,詳情 ?coinertia

coin1 <- coinertia(dudi1, dudi2, scan = FALSE, nf = 2)

coin1
summary(coin1)

以下是CoIA融合兩個PCA後的結果概要。
透過CoIA軸的協慣量承載比,評估CoIA軸的代表性;透過比較投影后慣量與原始慣量的比例,評估CoIA軸表徵先前兩組PCA軸的效率;透過RV值,評估兩資料集的關聯程度;等等。
透過隨機置換,計算每次置換資料後的RV值(RV*),RV*大於初始觀測RV值的機率即為p值,越小表明CoIA評估兩組資料集結構相似程度的結果越可信。
#置換檢驗確定 CoIA 軸的顯著性,顯示顯著

rand_test <- randtest(coin1, nrepet = 999)

rand_test
plot(rand_test)

以及對於一些結果的提取示例。
##提取主要結果,以融合後的結果為例

summary_coin1 <- summary(coin1)

names(coin1)

names(summary_coin1)
#各軸特徵值

coin1$eig

#各軸特徵值貢獻度

coin1$eig / sum(coin1$eig)

#dudi1 物件座標

coin1$co

#dudi2 物件座標

coin1$li
#CoIA 分析協慣量矩陣特徵根的分解情況

summary_coin1$EigDec

綜上可知,CoIA2軸具有較好的代表性,表明兩個資料集(兩個微陣列的基因表達)的大部分共同結構都可以透過CoIA的前兩軸呈現出來。並且兩個資料集之間具有顯著的相關性,儘管相關程度不是特別高。
最後透過排序圖觀測資料集之間的關係。
#排序圖,ade4 打包好的作圖樣式

plot(coin1)

透過左上兩圈圖,可知對於兩組資料集,PCA的前兩軸(Ax1Ax2)與CoIA前兩軸(背景圓圈的正交線)的重合性相對可觀,表明CoIA能有效反映先前兩個PCA中的結構。
透過左下的特徵根柱形圖,可知CoIA前兩軸承載了絕大部分的協慣量,表明CoIA前兩軸具有很好的代表性。
右上排序圖展示了物件在CoIA前兩軸中的排序位置,其中箭頭起點代表了第1個數據集(本示例為spotted cDNA微陣列矩陣)物件的投影,箭頭頂點代表了第2個數據集(本示例為Affymetrix微陣列矩陣)物件的投影,箭頭越短表明兩資料集的一致性越高。
右下方的圖反映了兩個資料集中的變數對排序空間的貢獻,相關性搞的變數箭頭方向趨於一致,箭頭長度代表了變數對排序的貢獻程度。

參考資料

Dolédec S, Chessel D. Co-inertia analysis: an alternative method for studying species–environment relationships. Freshwater Biology, 1994, 31(3):277-294.
Stéphane Dray, Thioulouse C J. Co-Inertia Analysis and the Linking of Ecological Data Tables. Ecology, 2003, 84(11):3078-3089.
連結

相關文章