fbpx

淺談主成分分析(PCA)與因素分析(FA)

因素分析 (FA, Factor Analysis) 以及主成分分析 (PCA, Principal Component Analysis) 這兩個十分相似的統計模型在傳統社會科學領域以及機器學習都是主流且入門必學的分析方法,常見的疑問是,為什麼問卷研究很常使用 FA 或是 PCA 來分析結果?

這個問題必須回到問卷來,研究人員不妨問問自己,你到底想要從問卷中得到什麼呢? 如果一篇研究只是想要比較 A、 B 兩個人在同一份問卷的回答差異,那麼根本不需要使用因素分析的。

例如底下的範例問卷格式(粗體數字為受試者的答案):

PCA_questionnaire_1

填答者的回答以粗體標示,上述問卷的回答資料,經過整理等同於:

PCA_questionnaire_2

想了解「 A 、 B 兩個人在同一份問卷的回答差異」,最簡單的方式,就是用上面整理過的表格做配對樣本檢定 (Paired-Sample Test),你也可以想成是具有統計顯著性的減法。

主成分分析與因素分析的基本使用情境

但如果題數很多,例如有 50 題,而且研究者還想要進一步知道對「任意題而言, 所有受試者回答的一致性如何」、「哪些題目可以找到共同的潛在因素一言蔽之」,那麼僅靠簡單的加減乘除就無法充分觀察到受試者答題結果之間的內在關係,這正是主成分分析或因素分析最主要的使用情境。

前述第一個情境其實是信度衡量當中的「內部一致性 (Internal Consistency) 」,後一個情境則是因素分析 (以及所有分群 Clustering 演算法) 的特色,即找出「潛在變項」的能力。

潛在變項的價值就是能夠做到「以簡馭繁」,例如研究人員若能找到 4 個主要因素便能包含 50 個問卷題目中 95% 的資訊,那麼我們應該一一分析 50 題的所有個別差異或是直接觀察這 4 個主要因素呢? 絕大部分的研究當中,選擇數量少且解釋力強的主要因素進行探討,不僅有效率上的優勢,這些因素也經常提供更深入的洞見。

這個萃取主要變數的過程,也稱為變數刪減 (Variable Deduction) 或者降維度 (Dimension Deduction),一群多維度資料點可以藉由 PCA / FA ,用解釋力最高的新元素來代表本來雜亂的數據,例如在下圖中,萃取出的綠色及藍色的兩個向量就足以用來說明整群資料的特性。

PCA_Concept

用途大不同!探索性因素分析與驗證性因素分析

萃取出來的主要因素,還有另外一層意義,由於它們本來是不存在問卷中的項目,是藉由資料結構整理出來的新變數,因此可以用來代表那些「表面問不出來」而且是「具顯著力」的隱晦原因,這個結果很大程度補足了訪談等質性方法的重大缺點,是為探索性的因素分析 (Exploratory Factor Analysis)。

除了應用在探索性研究,歸納初步的方向之外,也可以用來做驗證。

依照科學邏輯,好的研究結果必須具備「廣義的可驗證性」,所以今天如果有一份非常知名的研究指出有 A 、 B 、 C 三個因素導致企業失敗,那麼透過因素分析的設計,任何人都可以客觀地挑戰這三個因素的適切性,假如歸納出的潛在變項性質非常接近 A 、 B 、 C 因素的描述,而且對整體的解釋能力也夠高,那麼 A 、 B 、 C 就能被認可是值得信賴的關鍵因素。

這種驗證性的因素分析,也稱為 CFA (Confirmatory Factor Analysis),這個名稱經常見於結構方程式 (SEM) 當中。

傻傻搞不清楚?主成分分析與因素分析

那麼,在教科書章節編排中經常擺在一起的主成分分析 (PCA) 和因素分析 (FA) 又有什麼不同? 事實上,到轉軸 (Rotation) 為止的 PCA 與 FA ,對於非數學研究者而言沒有什麼分別。

若要進一步探討, PCA 的計算方式並未考慮誤差 (error),相關矩陣的對角線數值皆為 1 ,而 FA 則考慮誤差,導致相關矩陣的對角線數值會小於 1 。

於是有些統計學家稱 PCA 為「 Variance Oriented 」方法,因為它可以得到最大的解釋變異,而 FA 則稱為「 Correlation Oriented 」方法,因為考慮誤差之後可以更清楚看出抽取出因素與問項之間的真實相關性。

從數學解的角度來說, PCA 也可看成是 FA 的一種特例。

兩者相同的地方在於 PCA / FA 都有簡化變數的能力,但 FA 搭配後續轉軸操作可以提供更多的資訊,一般情況而言, PCA 的操作多半止於變數刪減,而 FA 則概稱從變數刪減、轉軸到因素命名詮釋的整套過程。

那麼 PCA 與 FA 是憑藉什麼邏輯來辨識出潛在變數的存在呢?

我們先看以下概念性的線性組合公式:

因素分析_公式解析1

以問卷為例,每個題目就是一個變項,所以上述公式包含了 50 個變項,如果我們嘗試用「因素」最大化解釋所有的變項,那麼就會像上面的公式,假如最後我們可以用少於 50 個因素來代表 50 個題目,那麼表達的效率就增加了。通常,因素很少超過 7 個以上,也就是在大部分時候使用因素分析執行降維度計算,分析效率都能有效的提升。

由於每個問卷題目的意義不盡相同,例如問「信任」的題目與問「價格接受度」的題目就不一樣,而且受訪者填答分數的資料分佈也會有差異,某些題目受訪者傾向給分偏高,有些偏低。

因此,每個「因素」對每個「變項」的權重不可能一樣,但是另一方面,某些題目卻有相似的屬性,例如:

「對於該網站所提供的產品品質與功能,是值得信賴的」

「我認為該網站提供的產品內容是正確無誤的」

「我覺得該網站會遵守其對消費者所設立的規則與承諾」

能夠解釋這三個題目的共同「因素」,就是「信任」,或者反過來說,「信任」這個抽象的概念可以用這三個「操作型變數」來表達,這個簡單的信任研究範例採自網路可取得的真實研究論文

接著把權重的概念加進去,再考慮到誤差,先前的概念公式就改為:

因素分析_公式解析2

其中,「權重」就是因素負荷量 (Factor Loading),而決定權重的方法就是「相關性」,所以因素負荷量的意義同於相關係數 r 。

把各公式中「因素一」的所有「權重平方」加總,就是「因素一的特徵值 (Eigenvalue)」。

因素分析的特徵值 (Eigenvalue) 與因素負荷量 (Factor Loading)

線性相關係數 r 的平方等於判定係數 R ,表示有多少比例的資料變異被詮釋,可想而知,因素的特徵值越大,表示在所有問項中該因素具有越高的累計「解釋力」,當然該因素就越重要。

由於每個因素最多被解釋的比例為 100% 正好等於 1 ,換句話說,有 36 個變數,其特徵值總和應該就等於 36 。

用分析軟體 SPSS 的因素分析計算下列資料為例,「 Component Matrix 」中標上黃底的因素 1 之所有因素負荷量加總平方,就等於另一張表格同樣用黃底強調的因素 1 之特徵值:

在特徵值的權衡上有兩個常見方式:

  • 第一,依據學者 Kaiser 提出的標準,只保留特徵值累計大於 1 的因素,這樣的意義是保證每個因素「至少能解釋超過 1 個問項」,從而避免過度萃取的問題。
  • 第二,從根據「累計解釋力」觀念畫成的 Scree Plot 來觀察,坡度明顯趨緩的時候就可以停止選擇變數,具體想法是,當新的因素沒辦法帶來明顯的解釋力增加時,它就不是好的因素了。從下方例圖來看,截止於 7 個因素是合理的選擇 (前 7 個因素特徵值都大於 1 )。

因素分析_Scree Plot

當然這些操作慣例並不是鐵律,部分參考書談到這方面的迷思,例如《Statistical and Methodological Myths and Urban Legends: Doctrine, Verity and Fable in the Organizational and Social Sciences》中有一個章節就在談因素分析的慣例與誤用。

轉軸 (Rotation)、特徵值與特徵向量 (Eigenvectors)

因素分析當中所謂的轉軸,其實就是進行資料轉換以便更容易觀察數據的趨勢,為了保證資料不在轉換過程中失去原有的性質,我們需要引入特徵值的概念,藉由特徵值的特性來達到此一目的。

特徵值是因素分析中用來定錨數據特性的重要工具,當我們把問卷資料格式想像成矩陣形式,將矩陣進行線性代數計算,就能找到向量化的特徵值,若有一個純量 lambda ,使得 A 矩陣 *X 向量等於 lambda*X 向量,則稱 lambda 為 A 矩陣的特徵值。

因素分析_公式解析3

特徵向量擁有一個堪稱神奇的性質,對於一個特徵值,所有特徵向量都會在同一條直線上。

此外,我們也知道對任一個非零向量而言,乘上一個任意矩陣等於將原向量本身做平移、旋轉、伸展。

這兩個數學原理的結合,意味著一旦找到了特徵值,不管我們對矩陣 (問卷) 資料如何進行資料轉換,都不會改變特徵向量在同一條直線上的事實,藉以保證資料在轉換之後保留原本的特性。

例圖中,黃色和紅色向量就是「特徵向量」,儘管資料左右鏡像化,特徵向量仍保持在原先的直線位置上:

特徵向量_蒙娜麗莎範例

不同於平時進行研究資料清洗多半是為了讓資料符合統計模型的假設而對資料做數據轉換,因素分析轉軸之目的是透過讓座標軸旋轉,使之在「空間中涵蓋最大範圍」,連帶使得不同的因素負荷量之間更有區別性,換言之就是嘗試達到對多個變數同時獲得最大可能的變異解釋量。

透過轉軸,強化了每個因素(軸)與變數之間相關或不相關的傾向,如此一來,只會剩下本來就非常相關的幾個問項仍然保持著高負荷量,有利於因素的命名與詮釋,例如下圖經轉軸後的因素負荷量變得與先前十分不同,能夠輕易觀察到每個 Component 與研究概念之間的高度相關性:

正交轉軸與斜交轉軸

所謂的轉軸,既然是對座標軸進行操作,很自然有這樣的疑問:座標軸之間應該垂直還是不垂直? 有差別嗎?

當然是有的,對任意兩向量而言,垂直代表這兩個向量互為「正交向量 (Orthogonal Vector)」,內積為零,表示互相不能解釋彼此,對於統計詮釋來說,可以依照此性質理解為因素之間兩兩「獨立」,這可是一個非常重要的性質,在許多的線性模型當中,自變數 X 之間的獨立性有其必要,這讓因素分析萃取出的獨立變數,能夠進一步用在後續的預測模型當中。

不僅如此,「正交轉換」在線性代數中可以推得向量方向、長度都不變的性質,保持座標軸之間的垂直進行轉軸,能夠讓因素在符合彼此獨立的假設下,不改變原有資料特性而達到各因素對問項的最大解釋力。

反之,斜交向量意味著允許因素之間有某種相關,在已知因素應該有某種相關性的前提下,斜交轉軸 (Oblique Rotation) 會比較正確,大多數的案例都是正交研究,是否該採用斜交計算,需要考量具體研究的內容以及歷史文獻。

假如因素之間的相關性甚低,那麼斜交轉軸與直交轉軸的結果會非常相近。過去學者可能鼓勵使用正交轉軸,部分原因是斜交計算的難度頗高,但是現在的統計軟體非常發達,已經沒有這樣的困擾,更多地嘗試、比較直交與斜交轉軸的結果可以輔助研究得出更多內涵。

一般來說,若許多因素負荷量都超過 0.3 甚至 0.5 時,斜交會是更好的選擇,當然,轉軸的選用若有理論支持是最有公信力的方式。

轉軸的計算方法也有幾種,不過最常看到應該是 Varimax ,它會使每一個問項只會對一個因素產生極大的因素負荷量,避免重複解釋的困擾。

通常,因素分析在最後,會針對這些本來不存在問卷中的「潛在因素」進行命名的動作,因素命名的原則,是根據與之最相關的幾個問題「內涵」來描述,一個簡單的例子,與因素 1 最相關的前三個問項分別代表「正直」、「能力」、「正直」,那麼因素1或許可以用這個名稱「正直而富有能力」來表示。

主成分分析與因素分析的診斷 (Diagnosis) 指標

因素分析的主要統計診斷考慮的是我們應該篩選多少個相關的問項組成一個潛在因素? 部分教科書建議以前三最相關的問項為考量,另一個輔助標準則是單一問項對因素的負荷量高於 0.6 或 0.7 。

採用相關性 0.7 做為標準是最常見的選擇,但這個參考數值的原理其實十分直覺,由於因素負荷量的意義等同線性相關係數 r ,而 r 的平方代表變異被解釋比例 R ,也就是說,當取因素負荷量為 0.6 時,其實該因素只能解釋問項 36% 的變異,而以 0.7 為標準時,大約可以解釋該問項的一半約 49% 。

因素分析模型是奠基於因素與問項的相關性,因此資料也需要做某些檢定來確保這個基本假設成立,因素分析搭配的相關性檢定包括 KMO 值 (Kaiser-Meyer-Olkin Measure of Sampling Adequacy) 與巴氏球型檢定 (Bartlett’s Test of Sphericity),前者仿效相關係數,因此標準至少應大於 0.6 以表示有相關,而後者則近似卡方統計量,需要查表來看是否顯著。

不過實務操作上應該很少看到資料不適合做因素分析,這兩個檢定於是顯得略為雞肋了一些 (底下的範例中 Sig. 小於 0.000 已超過多數研究要求的顯著程度)。

除此之外,問卷分析必然會需要檢查問卷信度,對於李克特式的量表 (Likert Scale),使用的量數則是 Cronbach’s alpha ,它所能檢測的是信度當中的「內部一致性 (Internal Consistency)」,其賦值範圍從 0 到 1 ,在統計軟體中還可以搭配分項對總項 (Item to Total Correlations) 來進一步衡量某一變數 if deleted 的效果。

Cronbach’s alpha 值的設定從 0.5~0.7 的說法都有,端看研究者如何詮釋了。

    Leave a Comment

    發佈留言必須填寫的電子郵件地址不會公開。