主成分分析(Principal Component Analysis)與因素分析(Factor Analysis)

許老師上研究方法的時候說,很多人的論文都會用 survey,所以中文稱為因素分析的 Factor Analysis 很重要。我有時候也會被問到一些相關的問題,常常許多人弄不清楚主成分(份?)分析與因素分析之間的使用情境差異,趁著空檔整理拼湊一下。

劈頭而來的困惑是,為什麼問卷很常用所謂主成分分析( PCA , Principal Component Analysis)或是因素分析?

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

主成分(份?)分析與因素分析的使用情境:

範例問題:

第一個回答者 非常不同意 不同意 普通 同意 非常同意
1. 對於該網站所提供的產品品質與功能,是值得信賴的。 1 2 3 4 5
2. 我認為該網站提供的產品內容是正確無誤的。 1 2
3
4 5
3. 我覺得該網站會遵守其對消費者所設立的規則與承諾 1 2 3 4 5
第二個回答者 非常不同意 不同意 普通 同意 非常同意
1. 對於該網站所提供的產品品質與功能,是值得信賴的。 1 2 3 4 5
2. 我認為該網站提供的產品內容是正確無誤的。 1 2 3 4 5
3. 我覺得該網站會遵守其對消費者所設立的規則與承諾 1 2 3 4 5

以上問卷的資料形式,經過整理等同於:

第一題 第二題 第三題

第一個回答者

2 3 4
第二個回答者 4 4 3

回答「 A 、 B 兩個人在同一份問卷的回答差異」,最簡單的方式,就是做配對樣本檢定( Paired-Sample Test ),但如果題數很多,例如有 50 題,而且研究者還想要知道對「任意題而言, 所有受試者回答的一致性如何」、「哪些題目可以找到共同的潛在因素以一蔽之」,那麼各統計軟體的主成分分析或因素分析功能就可以幫上忙。

前一個問題其實是信度衡量當中的「內部一致性( Internal Consistency )」,後一個問題則是因素分析的主要精神,即找出「潛在變項( Latent Variable )」。

潛在變項的價值,在於「以簡馭繁」,如果能找到 4 個因素包含 50 個題目中 95% 的資訊,那麼我們應該分析 50 題的所有差異或是直接觀察 4 個主要因素呢?

在複雜的設定中,一一衡量每個題目不管在計算上或研究意義來說,幾乎是找不到任何好處的。這個萃取的過程,專門一點的說法就叫變數刪減( Variable Deduction )或者降維度( Dimension Deduction ),名稱的由來,可從下圖略知一二。

藍箭頭代表的就是「 component 」,用一個解釋力最高的元素來代表雜亂的數據,每一個元素就代表一個座標軸。

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

萃取出來的主要因素,還有另外一層意義,由於它們本來是不存在問卷中的項目,是藉由資料結構整理出來的新變數,因此可以用來代表那些「表面問不出來」而且是「具顯著力」的隱晦原因,這個結果很大程度補足了訪談等質性方法的重大缺點,是為探索性的因素分析( 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 搭配後續操作可以提供更多的資訊,個人的感想是, PCA 的操作多半止於變數刪減,而 FA 則概稱從變數刪減、轉軸到因素命名詮釋的整套過程,某些教科書直接點名有轉軸的叫 FA ,沒轉軸的叫 PCA …,事實上不是很好的說法。

此外, FA 流程中也不一定要採用 PCA 作為因素萃取的計算方法。而什麼是轉軸,兩個方法又是憑藉什麼邏輯來辨識出潛在變數的存在呢?

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

服務科學的分子廚房-因素分析公式解析

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

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

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

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

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

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

能夠解釋這三個題目的共同「因素」,就是「信任」(黃宇辰等( 2007 ),《電子商務系統影響初始信任感之設計因素探討》),或者反過來說,「信任」這個抽象的概念可以用這三個「操作型變數」來表達。

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

服務科學的分子廚房-因素分析公式解析2

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

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

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

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

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

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

PCA_spss_table_1

PCA_spss_table

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

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


當然這些都不一定是鐵律,部分參考書談到這方面的迷思,例如《 Statistical and Methodological Myths and Urban Legends: Doctrine, Verity and Fable in the Organizational and Social Sciences 》中有一個章節就在談「 Four common misconceptions in exploratory factor analysis 」。

從數學意義上來看,若有一個純量 lambda ,使得 A 矩陣 *X 向量等於 lambda*X 向量,則稱 lambda 為 A 矩陣的特徵值。

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

記得前面提過,問卷資料格式可以整理成矩陣形式,當然我們可以依照數據來找出向量化的特徵值。

公式如下:

特徵向量擁有一個堪稱神奇的性質,「對於一個特徵值,所有特徵向量都會在同一條直線上」。另外,對一個非零向量而言,乘上一個任意矩陣等於將「向量本身做平移、旋轉、伸展」。

那也就是說,一旦找到了特徵值,不管我們對矩陣(問卷)資料如何進行轉換,都不會改變特徵向量在同一條直線上的事實,藉以保證資料在轉換之後保留原本的特性。

引用維基百科-特徵向量條目中的附圖,黃色和紅色向量就是「特徵向量」:

因素分析做轉軸的意義至此明朗,其實就是資料轉換( Data Transformation )。

不同於《 Data Transformation的一些探討 》中,為了讓資料符合統計模型的假設而對資料做轉換,因素分析轉軸之目的是透過座標軸的旋轉,在「空間中涵蓋最大範圍」,連帶使不同的「因素負荷量」之間更有區別性,換言之就是嘗試達到最大的變異解釋量。

透過轉軸,強化了每個因素(軸)與變數之間相關與不相關的傾向,如此一來,只會剩下本來就非常相關的幾個問項仍然保持著高負荷量,有利於因素的命名與詮釋。

既然是透過座標軸旋轉做資料轉換,那麼接著而來的問題便是: 座標軸之間應該垂直還是不垂直…,以及,兩者有差別嗎?

正交轉軸與斜交轉軸

當然是有的,對任意兩向量而言,垂直代表這兩個向量互為「正交向量( Orthogonal Vector )」,內積為零,表示互相不能解釋彼此,對於統計詮釋來說,可以依照此性質理解為因素之間兩兩「獨立」。

不僅如此,「正交轉換」在線性代數中可以推得「向量方向、長度」都不變的性質,也就是說我們可以在「因素彼此獨立的假設下,不改變原有資料特性而達到各因素對問項的最大解釋力」。

反之,斜交向量意味著因素之間有某種相關,在已知因素應該有某種相關性的前提下,斜交轉軸( Oblique Rotation )會比較正確。

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

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

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

附上一張轉軸後的表格,可與先前的表格對照,轉軸的效果立刻一目了然:

rotated PCA_spss_table

因素分析的最後一個步驟,便是針對這些本來不存在問卷中的「潛在因素」進行命名的動作,因素命名的原則,是根據與之最相關的幾個問題「內涵」來描述,一個簡單的例子,與因素 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 以表示有相關,而後者則近似卡方統計量,需要查表來看是否顯著。

不過真正操作上應該非常難得看到資料不適合做因素分析,這兩個檢定於是顯得略為雞肋了一些。

KMO_test

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

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

還看不過癮嗎?我這裡有一批牛肉好便宜文章好好看:

* 維度縮減DIMENSION REDUCTION,通往線性代數的聖母峰 : 特徵值分解(EIGENVALUE DECOMPOSITION)、奇異值分解(SINGULAR VALUE DECOMPOSITION) 與主成分分析(PRINCIPAL COMPONENT ANALYSIS)

* 廣義線性模型觀點:統計迴歸分析(REGRESSION)的基本原理與結構

* 數大有時不美的統計性質

* 一場關於猜的魔術:統計估計的形成

* DATA TRANSFORMATION的一些探討

(Visited 43,953 times, 491 visits today)

Wendell.Huang

科技公司嫌棄太活潑,消費品牌挑剔太沉悶…, 經常必須解釋自己在學什麼, 不小心就摔破對方眼鏡的業餘書呆子。

7 Comments

  1. 版主你好,你寫得好清楚,謝謝。另外有一個問題,請問PCA究竟需不需要轉軸?我看到幾篇文章Varimax轉軸方法,所以有點混亂了,再麻煩你解答了,謝謝。

    • hi您好~
      sorry最近比較忙 簡單分享一下個人想法
      PCA和FA的計算上還是有一些差異的
      PCA本來就不是為了轉軸而設計
      我記得PCA剛開始使用的時候還沒有發展出轉軸技術(待查證)
      之所以後來會有轉軸的原因很簡單
      就是"同時有很多個項目(ex.問卷題目)對萃取出來的主成分都有很高的loading"
      這個狀況帶來的主要麻煩是因素的命名和簡化

      所以假如不轉軸的情況下
      就已經可以明顯找出主成分最重要的少數幾個項目
      那麼其實也不需要轉軸
      因為轉軸對於解釋變異並無影響
      反而是在命名時會因人為判斷而損失一些資訊

      不過我感覺現在的PCA和FA在實際操作上差不多是統一流程了
      所以個人認為轉軸與否跟方法本身無關
      而是要看實際資料分析的狀況如何

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *