背景
主成分分析PCA(Principal Component Analysi)和冗余分析RDA(Redundancy analysis)都是數據分析的一種方法,都是在做降維處理伊群,我遇到數據的時候該選擇那種方法做呢考杉?
首先什么是降維策精?
將多維空間(多個原始測定指標)的數據點盡可能排列在可視化的低維空間。簡單理解就是崇棠,測定的一種原始指標(比如株高)就是一個維度咽袜。假設,我為了了解某個物種的幾個品種的生長情況枕稀,測了十幾個跟生長相關的指標(株高酬蹋、株幅等),然后我的目的是比較幾個品種之間生長情況的相似性抽莱,是用株高來代表范抓?還是用株幅來代表?還是用其他生長指標食铐?我們都知道這十幾個指標都需要匕垫,一起來代表才能說明生長情況,但十幾個指標就相當于十幾個維度虐呻,如何可視化象泵,如何在圖上展示(就我目前了解我們常用畫出展示的最多就3維(XYZ)的圖)?
辦法就是:我們通過降維斟叼,用各種統(tǒng)計學手段偶惠,得到幾個新的指標來代表這十幾個指標,從十幾個變成幾個朗涩,就是降低了維度忽孽,就可以畫可視化圖形,讓大家看明白了谢床。其中一種統(tǒng)計學手段就叫----主成分分析兄一,“幾個新指標”指的就是“幾個主成分”,但大家需要明確识腿,做了主成分分析之后出革,實際得到的是與原始指標數量相等的主成分個數(但是,主成分≠測定指標)渡讼,就是說骂束,比如你有12個原始測定指標進行主成分分析,最后可得到的是12個主成分成箫,你需要根據你自己的需求來選取你需要多少個主成分來近似地/盡最大限度地(因此展箱,主成分分析不是統(tǒng)計檢驗,而是探索性分析方法)代表這12個指標的信息(就是說一旦你選取了前幾個主成分伟众,那就有部分信息損失析藕,但不選就達不到降維的目的啊),以方便后續(xù)的可視化分析账胧。結合R進行主成分分析后的結果表來說明一下竞慢,你就進一步明白了:
運行以下代碼
student_scores=read.csv("student_scores.csv")#把原始數據導入R
pca_student = princomp(student_scores,cor = T)#計算PCA治泥,cor=T表示用的是相關陣筹煮,而默認是協(xié)差陣
summary(pca_student,loadings = T)#顯示結果,loading=T是列出主成分對應原始變量的系數
然后得到的結果如下:
PCA計算結果解讀(用R):
1、以上這6個主成分(Comp.1-Comp.6)是互不相關的居夹,它們每一個都不是X1-X6中任何一個败潦,而是由所有原有6個指標數據進行線性組合而來,比如Comp.1=系數1*X1+系數2*X2+系數3*X3+系數4*X4+系數5*X5+系數6*X6准脂。
2劫扒、6個主成分的貢獻率大小反映的是它們綜合原始指標(6門功課成績X1-X6)的能力。我們常聽說的特征值/特征根(eigen value)指的是某個主成分的方差狸膏,其相對比例可理解為方差解釋度或貢獻度 沟饥,特征值從Comp.1到Comp.6會逐漸減小。這里結果給出的是主成分的標準差Standard deviation (方差=標準差的平方)湾戳,所以想要得到特征值就再平方一下就ok贤旷。主成分1的貢獻率Proportion of Variance最大(0.6638172),表明由主成分1的差異來解釋X1-X6的差異的能力最強砾脑。6個主成分的累積貢獻率Cumulative Proportion是1幼驶,就是說用6個主成分才能100%代表這6個指標所給出的總體信息;但其實前3個主成分的累積貢獻率是0.9128916韧衣,已經超過了0.9盅藻,就是說可以解釋超過90%的總體信息,所以可以考慮就選取前3個主成分來進行后續(xù)畫圖分析等汹族。
3萧求、loading里給出的是主成分對應原始變量的系數其兴,應該是每個值都有顶瞒,但有些值太小R運行后結果里就沒有顯示(比如Comp.2對應X1的系數),我暫時還沒找到什么方法能把這些很小的值也都顯示出來元旬。從loading里可以看出各主成分與原始指標之間的相互關系榴徐,比如主成分1就與所有6科成績間關系都很密切,主成分2與X2這個科目成績之間關系較為密切(0.914比其他幾個系數的絕對值都大很多)匀归,主成分3與X1這個科目成績之間關系密切(0.883比其他幾個系數的絕對值都大很多)坑资。
PCA圖形結果解讀(用R):
通常有2種展示類型
上圖就只是展示observation(樣品),圖中的每一個點都是代表一個樣品穆端,樣品點挨的越近袱贮,說明這些樣品在某些程度上(PC1、PC2)越相似体啰,這種圖適合用于樣品數量特別大的攒巍,只為去說明樣品之間有什么相似性嗽仪。
上圖就是同時展示observation(樣品)和variable(變量/原始指標),比圖1展示的多了一個維度柒莉。首先闻坚,CK、T1-T7都是樣品點兢孝;其次窿凤,那些箭頭則是代表的測定變量/原始指標,箭頭對應在PC1軸和PC2軸上的值就是原始指標與主成分的相關系數(其實就是princomp計算時的loading值)跨蟹。最后雳殊,樣品點和箭頭之間距離大小:反映樣品與原始指標之間的關系緊密程度窗轩,這點我也沒太理解相种。這種圖適合樣品數量不是太多,想同時展示樣品和原始指標品姓。沒有哪個圖更好的說法寝并,只要能清楚表達你的目的就是好圖。
PCA和RDA是什么關系呢腹备?
上面廢話那么多好像我只說了主成分分析衬潦,其實我把主成分分析和冗余分析的一些共性特點都說了,因為它們兩者是有包含關系的植酥。冗余分析是回歸分析+主成分分析的排序方法(先將響應變量Y矩陣與解釋變量X之間進行多元線性回歸镀岛,再對得到的擬合值進行主成分分析)。
PCA屬于非約束排序(只是描述性方法友驮,不存在統(tǒng)計檢驗評估排序結果顯著性的問題)
RDA屬于約束排序(需要對排序結果進行顯著性檢驗)漂羊。
還有其他一些問題需要解決,等待寫下一篇
1卸留、前面提到主成分個數的選取走越,我們到底該選取幾個主成分來代表整體呢,選取依據是什么耻瑟?
2旨指、R語言進行主成分分析,一些參數該如何設置呢喳整?
3谆构、進行主成分分析的函數有 princomp和prcomp、rda框都,選哪種呢搬素?
4、冗余分析還包括了回歸分析的相關計算,所以熬尺,冗余分析還需要進一步去解釋何荚。
參考資料
1、https://zhuanlan.zhihu.com/p/180284720?utm_source=wechat_session&ivk_sa=1024320u
2猪杭、https://zhuanlan.zhihu.com/p/404795652
3餐塘、https://blog.csdn.net/lfz_carlos/article/details/48442091
4、https://cloud.tencent.com/developer/article/1635055