因子分析 factor analysis (一 ):模型的理論推導

目錄

一:因子分析簡述 

二:因子分析模型

三:因子旋轉 

3.1 考慮兩個因子的平面正交旋轉 

3.2  公共因子數 m > 2的情形

四:結語

一:因子分析簡述 

1 . 因子分析(factor analysis)是由英國心理學家Spearman在1904年提出來的,他 成功地解決了智力測驗得分的統計分析,長期以來,教育心理學家不斷豐富、發展了因 子分析理論和方法,並應用這一方法在行爲科學領域進行了廣泛的研究。 

因子分析可以看成主成分分析的推廣,它也是多元統計分析中常用的一種降維方 式,因子分析所涉及的計算與主成分分析也很類似,但差別也是很明顯的:

1)主成分 分析把方差劃分爲不同的正交成分,而因子分析則把方差劃歸爲不同的起因因子;

2) 因子分析中特徵值的計算只能從相關係數矩陣出發,且必須將主成分轉換成因子。  因子分析有確定的模型,觀察數據在模型中被分解爲公共因子、特殊因子和誤差三 部分。

2.  初學因子分析的大困難在於理解它的模型,我們先看如下幾個例子。 

例1  爲了解學生的知識和能力,對學生進行了抽樣命題考試,考題包括的面很廣, 但總的來講可歸結爲學生的語文水平、數學推導、藝術修養、歷史知識、生活知識等五個方面,我們把每一個方面稱爲一個(公共)因子,顯然每個學生的成績均可由這五個 因子來確定,即可設想第i個學生考試的分數 X_{i}  能用這五個公共因子 F_{1},F_{2},...,F_{5}  的線性組合表示出來 :

線性組合係數 a_{i1},a_{i2},...,a_{i5} 稱爲因子載荷(loadings),它分別表示第i個學生在這五個因子方面的能力;\mu _{i} 是總平均, U_{i} 是第i個學生的能力和知識不能被這五個因子包含的部分,稱爲特殊因子,常假定U_{i}\sim N\left ( 0,\sigma _{i}^{2} \right ) 。 不難發現,這個模型與迴歸模型在形式上是很相似的,但這裏 F_{1},F_{2},...,F_{5} 的值卻是未知的,有關參數的意義也有很大的差異。 

   因子分析的首要任務就是估計因子載荷  a_{ij} 的方差  \sigma _{i}^{2},然後給因子 F_{i} 一個合理的解釋,若難以進行合理的解釋,則需要進一步作因子旋轉,希望旋轉後能發現比較合理的解釋。

特別需要說明的是這裏的因子和試驗設計裏的因子(或因素)是不同的,它比較抽象和概括,往往是不可以單獨測量的。

例2  診斷時,醫生檢測了病人的五個生理指標:收縮壓、舒張壓、心跳間隔、呼 吸間隔和舌下溫度,但依據生理學知識,這五個指標是受植物神經支配的,植物神經又 分爲交感神經和副交感神經,因此這五個指標可用交感神經和副交感神經兩個公共因子 來確定,從而也構成了因子模型。  

例3  Holjinger和Swineford在芝加哥郊區對145名七、八年級學生進行了24個心理 測驗,通過因子分析,這24個心理指標被歸結爲4個公共因子,即詞語因子、速度因子、 推理因子和記憶因子。 

二:因子分析模型

 

 

 

   

 其中殘差矩陣可表示爲 \large R-AA^{T} -Cov\left ( U \right )  ;所以\large AA^{T} +Cov\left ( U \right )與相關係數矩陣R 比較接近時,則從直觀上可以認爲因子模型給出了數據較好的擬合。

 

在因子分析中,一般人們的重點是估計因子模型的參數,即載荷矩陣,有時公共因 子的估計,即所謂因子得分,也是需要的,因子得分可以用於模型診斷,也可以作下一 步分析的原始數據,需要指出的是,因子得分的計算並不是通常意義下的參數估計,它是對不可觀測的隨機向量 F_{i}  取值的估計。通常可以用加權小二乘法迴歸法來估計因子得分。 
 

三:因子旋轉 

   上面主成分解是不唯一的,因爲對 A作任何正交變換都不會改變原來的 AA^{T} ,即設Q爲m 階正交矩陣, B = AQ則BB^{T}=AA^{T} ,載荷矩陣的這種不唯一性表明看是不利的,但我們卻可以利用這種不變性,通過適當的因子變換,使變換後新的因子具有 更鮮明的實際意義或可解釋性,比如,我們可以通過正交變換使B 中有儘可能多的元 素等於或接近於0,從而使因子載荷矩陣結構簡單化,便於做出更有實際意義的解釋。  

由於正交變換是一種旋轉變換,如果我們選取方差大的正交旋轉,即將各個因子 旋轉到某個位置,使每個變量在旋轉後的因子軸上的投影向大、小兩級分化,從而 使每個因子中的高載荷只出現在少數的變量上,在後得到的旋轉因子載荷矩陣中,每 列元素除幾個值外,其餘的均接近於0。  

3.1 考慮兩個因子的平面正交旋轉 

 當 m=2 時,還可以通過圖解法,憑直覺將座標軸旋轉一個角度 φ ,一般的做法是先對變量聚類,利用這些類很容易確定新的公共因子。 

3.2  公共因子數 m > 2的情形

可以每次考慮不同的兩個因子的旋轉,從m 個因子中每次選兩個旋轉,共有m\left ( m-1 \right )/2 種旋轉,做完這m\left ( m-1 \right )/2  次旋轉就算完成了一個循環,然後重新開始第二個循環,每經一個循環,A陣的各列的相對方差和V 只會變大,當第k 次循環後的V^{\left ( k \right )}與上一次循環的 V^{\left ( k-1 \right )}比較變化不大時,就停止旋轉。 

四:結語

綜上所述,因子分析的基本步驟可概括;

1)求樣本相關係數矩陣R 的特徵值(依大小次序)及其相應的特徵向量。

 取前面k個特徵值使其累積方差貢獻率超過85%,並給出前k個特徵值對應的特徵向量。

2)求因子載荷矩陣 A 。(由(40)式即可算出)

3)對載荷矩陣 A作正交旋轉 ,使得到的矩陣A_{1}=AQ 的方差和最大。

 

例1:設某三個變量的樣本相關係數矩陣R如下, 試從R 出發,作因子分析。 

 求解的MATLAB程序如下: 

clc,clear 
r=[1 -1/3 2/3;-1/3 1 0;2/3 0 1]; 
[vec,val,con]=pcacov(r);num=2; 
f1=repmat(sign(sum(vec)),size(vec,1),1); 
vec=vec.*f1;     %特徵向量正負號轉換 
f2=repmat(sqrt(val)',size(vec,1),1); 
a=vec.*f2   %載荷矩陣 
[b,t]=rotatefactors(a(:,1:num),'method', 'varimax')