Basic Multivariate Statistics and Principal Component Analysis (PCA)

Introduction

  • 多變量統計分析 | Multivariate Statistics

多變量統計分析相對於一般的(單一變量)統計分析更為進階,探討的層面也更為多元。學習正統的多變量統計分析,也許需要先修一些數學的工具,如線性代數、矩陣代數等等。然而並不是每個來自各個專業領域想要運用多變量統計分析的人都能熟悉那些生硬的數學工具,但它仍是社會科學、商學和生物學等領域重要的研究工具。

Biostatistics系列的文章希望以一個學過基礎的生物統計學、專攻於生物學專業的人的角度,進階的理解多變量樣統計分析原理和應用。

Example
[Multivariate Statistical Methods: A Primer, Figure3.4, p.31]


  • 主成份分析 | Principal Component Analysis (PCA)

主成份分析(principal component analysis; PCA)現今被廣泛地應用於降低資料的維度(降維:dimension reduction),使得複雜的資料型態,能以簡單、少量的新變數解釋原有的資料型態,PCA更是許多多變量統計分析方法的基礎。PCA最早是在1901年,由Karl Pearson所提出一種可以用以「正確地」解決生物統計學問題的方法。不過他當時並未提出一個可以運算兩組或三組變數以上的的計算方法。直至1933年Hotelling才提出一套可行的運算方法,然而在電腦發明之前,僅能靠紙筆運算,因此也只能處理少量的變數。

PCA的目的是處理p個變數X_1, X_2, ... , X_p 並找出它們線性組合,而線性組合(linear combination)產生的數值Z_1, Z_2, ... , Z_q皆是互不相關的(uncorrelated,或稱orthogonal正交,即線性組合的空間上每條線性式子是互相垂直的),1 \le q \le p。也由於這些新數值之間缺乏相關性,因此各個數值(Z_i)個表示著這組資料中各個不同面向(dimensions),又稱為主成份(principal components)。

PCA的主成份遵循以下敘述的條件:

  1. 主成份根據變異度(variation)大小遞減排序,即 var[Z_1] \ge var[Z_2] \ge ... \ge var[Z_q]var[Z_i]則表示在這組資料中Z_i所貢獻的變異度(主成份)。
  2. 解釋變異度過小的Z_i則可忽略,意即整組資料可由較少且沒又被捨棄的新變數所解釋。
  3. PCA是將p個原始變數X轉換為q個新變數Z,而過多的原始變數,有時可能無法有效地透過PCA降低該組資料的維度。
  4. 各個原始變數尺度、單位可能不盡相同,因此建議先進行標準化(z-score standardization,\mu=0, \sigma=1)後再做PCA。

PCA的運算程序

適用於主成份分析的資料應是n個樣本(或個體),以及其p個變數。(如下表)

Individual X1 X2 Xp
1 x11 x12 x1p
2 x21 x22 x2p
n xn1 xn2 xnp

而第一主成份(the first principal component)是變數X_1, X_2, ... , X_p的線性組合:

{Z_1=a_{11}X_1+a_{12}X_2+...+a_{1p}X_p}

變數可能與樣本數一樣多(或更多?),且服從下列條件:

a^2_{11}+a^2_{12}+...+a^2_{1p}=1

因此Z_1的變異數(Var[Z_1])最大僅可能等於某a_{1j}Var[Z_1]受制於a_{1j}是確保Var[Z_1]不會隨著任意一個a_{1j}而變大。

第二主成份Z_2、第三主成份Z_3…以此類推,而Z_3Z_2Z_1是互無相關性的。

此外,若有p個變數,則至多會有p個主成份。

[進階] 以矩陣代數來運算PCA (1) 變異數矩陣法

然而對於實際的應用上,進行PCA並不必要去一一了解每條式子的運算,取而代之的,則是可以用一共變異數矩陣 (covariance matrix)解出其特徵值(eigenvalues)

C= \left(\begin{array}{cccc}c_{11}&c_{12}&...&c_{1p}\\ c_{21}&c_{22}&...&c_{2p}\\ ...&...& &...\\ c_{p1}&c_{p2}&...&c_{pp}\end{array}\right)

矩陣的對角線(diagonal)元素c_{ii}即為X_i的變異數,c_{ij}則為X_i, X_j的共變異數。

主成分的變異數是矩陣C的特徵值(eigenvalues. \lambda),eigenvalues將會有p個,有些可能為0,但不得為負值。假設eigenvalues依照大小順序為\lambda_1 \ge \lambda_2 \ge ... \ge \lambda_p \ge 0,則\lambda_i對應到第i個主成分

Z_i = a_{i1}X_1+a_{i2}X_2+...+a_{ip}X_p

也就是說Var[Z_i]=\lambda_i,而常數a_{i1}, a_{i2}, ..., a_{ip}則是相對應的特徵向量(eigenvector),a^2_{i1}X_1+a^2_{i2}X_2+...+a^2_{ip}X_p=1

一個重要的特性:eigenvalues的總和等於矩陣C對角線元素的總和(sum of diagonal elements = trace)

\lambda_1+\lambda_2+...+\lambda_p =c_{11}+c_{22}+...+c_{pp}

因為c_{ii}X_i的變異數、\lambda_iZ_i的變異數,這意味著主成分的變異數總和等於原始變數的變異數總和。因此,主成分包涵了所有原始變數的變異。

[進階] 以矩陣代數來運算PCA (2) 相關係數矩陣法

為了避免原始變數造成恩PCA運算上的不良影響,因此將變數X_1, X_2, ..., X_p進行標準化,有就是一開始提到的PCA需服從的條件之一(\mu=0, \sigma=1)。

原始變數經過標準化之後,矩陣C則會變為一相關係數矩陣(correlation matrix)

C= \left(\begin{array}{cccc}1&c_{12}&...&c_{1p}\\ c_{21}&1&...&c_{2p}\\ ...&...& &...\\ c_{p1}&c_{p2}&...&1\end{array}\right)

矩陣中c_{ij}=c_{ji}皆是X_i, X_j的相關係數。相關係數矩陣的對角線元素總和(特徵值總和)等於原始變數的數量p。

[Summary] Steps in principal component analysis

  1. (optional) 將原始變數標準化。
  2. 計算共變異數矩陣C;若有執行step 1.則為相關係數矩陣。
  3. 解出特徵值,及其對應的特徵向量。
  4. 捨棄解釋變異度比例過小的主成分。如,累計變異度達90%後,其餘的主成分則可忽略。

最後以一段YouTube影片來解釋PCA的原理

  • R 實作 | PCA

在R裡面,主成分分析有兩道指令,分別為prcomp()和princomp(),網路上的教學以前者偏多,兩者的分析角度有些為差異,以下引用Reference 3. Principal component analysis in R : prcomp() vs. princomp() – R software and data mining 的說明:

The function princomp() uses the spectral decomposition approach.

The functions prcomp() and PCA()[FactoMineR] use the singular value decomposition (SVD).

實作練習RとS-PLUSによる多変量解析 3.3 主成分分析の実例:米国都市部の大気汚染(p.54)

Discussion

多變量統計分析在處理生物學、體學(-omics)資料上,可能遇到的問題


References:

  1. Multivariate Statistical Methods: A Primer, Second Edition. Bryan F.J. Manly. 1994. Chapman and Hall/CRC.
  2. RとS-PLUSによる多変量解析。B. エヴェリット (著), 石田 基広 (翻訳), 石田 和枝 (翻訳), 掛井 秀一 (翻訳)。2012。丸善出版。
  3. Principal component analysis in R : prcomp() vs. princomp() – R software and data mining
  4. LaTeX – Use of math symbols and equations.
  5. HTML Table generator.

對「Basic Multivariate Statistics and Principal Component Analysis (PCA)」的一則回應

發表留言