R語言實現主成分分析

2021-02-19 DU Group



主成分分析(PCA)是一種常見的排序方法。通過正交變換將一組存在相關性的變量轉換為一組線性不相關的變量,變換之後的變量叫做主成分。

在進行多變量的研究時,變量數量太多就會增加研究的複雜性。如果將一個變量比作一個維度,那麼多元數據可以看作由多個變量組成的多維空間內點的合集。在很多情形中,變量間存在一定的相關關係,因此研究者可以將多維度的數據降維,用新的排序軸去儘可能地反映原數據的信息。

圖1 灌叢調查環境數據舉例

圖1是灌叢調查時獲得的樣地環境因子數據(列名分別為樣地號、海拔、土壤有機碳、全氮、全磷、年均降水和年均溫)。那麼如何對環境數據進行主成分分析呢?

#讀取數據

env = read.csv("env.csv", row.names = 1, header = T)

library(vegan)#加載R包(需提前安裝)

env.pca = rda(env, scale = TRUE)

# vegan包裡rda( )函數是最常用的PCA分析函數

#scale = TRUE,意為分析前將數據進行標準化(PCA前標準化是必需的步驟)

summary(env.pca)

#PCA的主要結果

下面對主要的結果進行解釋:

Eigenvalue (特徵根):是每個排序軸的重要性指標。

Proportion Explained (排序軸解釋率):排序軸解釋總方差的比例。例如PC1 0.546,意為PC1軸解釋了數據總方差的54.6%。

Cumulative Proportion (總解釋率):排序軸累計解釋率。例如PC2 0.7799,意為第一軸和第二軸共解釋了數據77.99%的方差。

PCA的結果可以用排序圖(簡圖)呈現。

biplot(env.pca)

site.scores=scores(env.pca, choices = c(1:2),scaling = 2)

points(site.scores$sites[,1],site.scores$sites[,2]+0.05,pch = 17,col= "blue")

#將樣地點加入排序圖內,+0.05是為了將樣地號和點在圖上分開。

圖2 PCA雙序圖

生成的圖片如圖2所示,最後成圖時,還應將第一軸和第二軸的解釋率加入排序圖中,例:PC1(54.6%)。在排序圖內(默認是2型雙序圖),我們可以看到海拔和年均降水是高度正相關的,這兩者也與年均溫負相關。表徵土壤養分的土壤有機碳、全氮、全磷之間是正相關關係。調查的大多數樣地集中在圖中第四象限內,表明調查地灌叢主要分布在土壤相對貧瘠,水分適中的中海拔地區。

R學習感言:主成分分析是生態學上比較常見的分析方法,排序圖可以直觀清晰的表明多個變量之間的關係及對因變量的作用,第一軸可以解釋最多的方差因此可以大致代表整個數據的趨勢。需要注意的是,主成分分析所使用的變量必須統一量綱(標準化),標準化的方式也要根據數據而定。




相關焦點

  • R語言做主成分分析實例
    在做多樣本的RNA-Seq數據中經常會用到主成分分析(PCA)來分析,那麼什麼是PCA呢,這個可以百度一下,大概意思如下:主成分分析法是數據挖掘中常用的一種降維算法
  • 通俗易懂的講解奇異值分解(SVD)和主成分分析(PCA)
    對稱矩陣的特徵分解奇異值分解(The Singular Value Decomposition,SVD)主成分分析我們現在可以將任何矩陣分解成兩個正交矩陣和一個對角矩陣,其中矩陣U的維度為m×r,對角陣Σ的維度為r×r和矩陣V的維度為r×n,其並且矩陣A的秩為r。4.
  • 數據分析之主成分分析,spss主成分分析實例
    一、主成分分析概要主成分分析,在進行有多個指標的綜合評定時,客觀全面的綜合評價結果非常重要,然而往往多個指標之間通常存在信息不統一或者重複等眾多因素,各指標的權重往往很難確認。主成分分析方法能夠解決以上問題,主成分分析法是一種降維的統計方法,是考察多個變量間相關性一種多元統計方法。二、spss主成分分析操作流程導入數據。
  • 用StackOverflow訪問數據實現主成分分析(PCA)
    大數據文摘出品編譯:汪小七、張馨月、雲舟主成分分析(PCA:Principal Component Analysis)非常有助於我們理解高維數據,我利用Stack Overflow的每日訪問數據對主成分分析進行了實踐和探索,你可以在rstudio :: conf 2018上找到其中一篇演講的錄音。
  • spss主成分怎麼進行分析?spss主成分分析法步驟
    spss 這款軟體功能非常多哦,還可以分析主成分哦,但是很多朋友不知道spss主成分怎麼進行分析?小編下面準備了spss主成分分析法詳細步驟,大家安裝 詳細步驟一步步操作就知道spss主成分怎麼進行分析?
  • r語言的p值檢驗 - CSDN
    輸入1: rdata = matrix(rnorm(1000* 6, 0, 3), 6) rvar = apply(rdata, 2, var) mean(rvar)結果1: [1] 8輸入2: var(rvar)結果2: [1] 32=2*81/5輸入3:
  • SPSS超詳細教程:主成分分析
    此外,檢驗主成分分析數據結構的方法還有以下三種:用Kaiser-Meyer-Olkin (KMO)檢驗對數據的總體分析,KMO檢驗對各變量的單獨分析以及Bartlett's 檢驗 (Bartlett's test of sphericity)。接下來,我們將對這三種方法進行逐一介紹。
  • 醫學統計與R語言:GiViTI Calibration Belt
    https://cran.r-project.org/web/packages/givitiR/vignettes/givitiR.htmlNattino, G., Finazzi, S., & Bertolini, G. (2016).
  • 原理+代碼|Python基於主成分分析的客戶信貸評級實戰
    能夠理解 PCA 的基本原理並將代碼用於實際的業務案例是本文的目標,本文將詳細介紹如何利用Python實現基於主成分分析的5c信用評級,主要分為兩個部分:詳細原理介紹Python代碼實戰這就實現用較少的綜合指標分別代表存在於各個變量中的各類信息。所以多元變量壓縮思路的基礎其實是相關分析。「壓縮後的信息與原來的有什麼不同?」
  • 一文理清主成分分析思路
    二、操作步驟(1)點擊【進階方法】--【主成分】。(2)將分析項拖拽至右側,勾選[成分得分]、[綜合得分]。點擊開始分析。也可以根據自己的分析需要,主動設置主成分個數。三、分析思路Step1:判斷是否適合進行主成分分析上表展示KMO檢驗和Bartlett 的檢驗結果,用來看此數據適不適合進行主成分分析。通常KMO值的判斷標準為0.6。大於0.6說明適合進行分析,反之,說明不適合進行分析。同時Bartlett檢驗對應P值小於0.05也說明適合分析。
  • R語言-stringr-字符串處理
    對大部分常規商業數據分析工作者的面對的表格數據而言,字符處理可能僅僅只是合併、剔除、刪除空格、倒敘等基礎操作。單雙引號R語言中字符串輸入時,可以使用單引號,也可以使用雙引號。r_left <- function(str,num){  str_sub(string = str,start = 1,end = num)}r_left('我是R語言學習者',3)
  • 運用sklearn進行線性判別分析(LDA)代碼實現
    基於sklearn的線性判別分析(LDA)代碼實現一、前言及回顧本文記錄使用sklearn庫實現有監督的數據降維技術——線性判別分析(LDA)。在上一篇LDA線性判別分析原理及python應用(葡萄酒案例分析),我們通過詳細的步驟理解LDA內部邏輯實現原理,能夠更好地掌握線性判別分析的內部機制。
  • SPSS方法|主成分分析:降低指標維度,使複雜問題簡單化
    主成分分析是將多個指標化為少數幾個不相關的綜合指標,並對綜合指標按照一定的規則進行分類的一種多元統計分析方法。這種分析方法能夠降低指標維數,濃縮指標信息,將複雜的問題簡化,從而使問題分析更加直觀有效。目前,這種方法已經在經濟等領域中得到廣泛的應用,選好數據就可以利用SPSS進行主成分分析。本次數據選取陝甘寧蒙晉生態環境指標做生態環境評價分析。
  • 【R語言】相關性分析、相關係數的顯著性檢驗及可視化
    本篇文章介紹基於R語言的相關性分析、相關係數的顯著性檢驗及可視化,該教程為個人筆記,大家也可參考學習,不足之處也歡迎大家批評指正!相關性分析用於評估兩個或多個變量之間的關聯,能通過定量指標描述變量之間的強弱、直接或間接聯繫。
  • r語言有什麼優劣勢及R語言的未來發展趨勢_R語言在現實中的應用
    正如Tiobe、PyPL以及Redmonk等程式語言人氣排名所指出,R語言所受到的關注程度正在快速提升。作為一款誕生於上世紀九十年代的語言,R已經成為S統計程式語言的一類實現方式。已經擁有十八年R編程經驗的高校教授兼Coursera在線平臺培訓師Roger Peng指出,「R語言已經成為統計領域最具人氣的語言選項」。
  • 掌握R語言for循環一文就夠了(認真臉)
    R語言相信大家在利用R語言進行數據分析的時候可能會有大數據分析需求。R語言不考慮並行運算下的簡單批處理實現方式就是for循環。data的行數,兩個for疊加的話,先固定第一個for r=1再執行下一個for,直到下一個for的r從1到100都執行完後再跳到第一個for r=2,再執行r從1到100,再r=3以此類推直到r=100,整個for循環就結束了。
  • 主成分分析PCA預測未知分類信息
    本文是用主成分分析的方法去預測未知樣本的信息。
  • R 語言之數據分析「Resampling」
    本節主要總結「數據分析」的「Resampling」重抽樣思想,並通過 R 語言實現。有一種東西叫作「傳統」,它在很多時候很有用,但會讓你思維固化,在新的環境下讓你出錯。在總結回歸分析和方差分析的時候 ④R語言之數據分析「初章」,我總是會在模型的建立之前提到「統計假設」,在模型建立之後進行「假設檢驗」,原因想必大家都能理解,就是因為這些「統計假設」是我們模型建立思想的基礎,是支撐我們模型正確性的「必要條件」。但是,不可否認的是,這些「必要條件」最終會成為我們「數據分析」的局限,讓我們對「不滿足條件的數據集」束手無策。
  • R語言從入門到精通:Day12--R語言統計--回歸分析
    回歸作為一個廣義的概念,涵蓋了許多變種,R語言中也為其提供了強大而豐富的函數和選項(但顯然選項越多,對初學者越不友好),早在2005年,R中就有200多種關於回歸分析的函數 (https://cran.r-project.org/doc/contrib/Ricci-refcard-regression.pdf,這個文檔提供了部分回歸分析函數列表,供大家參考)。
  • 【R語言】遙感影像Theil Sen趨勢分析MK檢驗
    01按以下形式將影像預處理好,起名字可以根據自己的需要,但是你要是不了解R語言,就按我的格式改名字吧