正文 第10章因子分析(1 / 3)

學過了測量學,丟丟覺得自己又往前邁進了一大步。現在他越來越有信心做好自己的研究了。但是,李老師在解釋測量學的時候,常常講到一個稱為“因子分析”的工具,這卻是他完全不懂的東西。所以這天他特意來找李老師,希望了解一下。丟丟:“老師,這一次我是特意來請教因子分析的。您之前多次提到的因子分析是什麼呢?”李老師:“因子分析是一個減少變量的工具。如果我們有一大堆變量,我想知道其中是不是有一些變量有共同的部分可以綜合起來,這時就可以通過因子分析達到減少變量的目的了。”

丟丟:“那不就簡單了嗎?看看哪幾個變量是概念上接近的而且相關也大的,就合起來吧。不過老師,我還是不明白,我們做研究、收數據,往往是預先計劃好的,為什麼會多收幾個變量,到頭來又要花心思把它們組合起來呢?”李老師:“丟丟,量表不就是一個很好的例子嗎?每個量表有很多題目,每個題目是一個指標,在發展量表時,你希望知道這些指標是否在測同一個構念。就是希望把十幾道題的一個量表,總合為一個構念的測量。”

丟丟:“這倒是啊!李老師,我記得我在統計學的課裏,學過一個叫聚類分析的方法,不就是把數據合起來嗎?為什麼不用這樣的方法,要做因子分析?”李老師:“聚類分析是把樣本點分組,而變量的數目是不變的。但是因子分析卻剛剛相反,樣本數目是不變的,我們是把變量分組。”

丟丟:“老師,那除了發展量表以外,什麼情形下還會用因子分析?”李老師:“因子分析是一個很抽象的方法,用途很廣,這裏不能盡數。不過我們談過的維度與多維構念的關係,也可能是一個因子的關係。例如,人員選拔的理論中就有一個雙因子理論,說人的能力有兩種:一般性能力和特殊能力。一般性能力就是很多不同的能力(如數學、語文、推理等)背後的共同因子。又如,我們上幾章講的同源方差的問題,如果所有的變量都是來自於同一個來源(如自評)的話,引起它們共同方差的可能就是背後的‘測量方法’這個共同因子。”

丟丟:“對啊,這些前麵您都和我談過的。既然因子分析這麼有用,我很想知道多一些。”

李老師:“好,那我們就來一個因子分析的簡介吧。因子分析有兩種:探索性的因子分析(ExploratoryFactorAnalysis,EFA)是我們不知道變量背後有幾個因子,或是變量因子的結構是如何的。驗證性因子分析(ConfirmatoryFactorAnalysis,CFA)是我們清楚因子的結構,隻是看看與我們的數據是否吻合。這裏我們首先談談一般性的探索性的因子分析。”

10.1問題的出現例子一

假設研究的課題是學生學業成績與他們的學習滿意度的關係。學生的成績有很多不同的表征,有數學、中文、英文、曆史、地理、科學6個科目。我們用一個5個項目的學習滿意度量表來測量學生的學習滿意度。現在我們有6個科目成績與5個問卷題目的相關係數。這30個相關係數怎樣代表“學業成績”與“學習滿意度”的關係呢?一個比較簡單的方法是用6個科目的成績來代表“學業成績”。

同時把5個問卷題目的分數取平均值代表“學習滿意度”。

這樣,我們就用了兩個抽象的概念(“學業成績”與“學習滿意度”)的相關,代表了這30個相關變量的關係。換句話講,我們把6個“學業成績”的變量“減少”成為一個變量。也把5個“學習滿意度”的變量“減少”成為一個變量。這樣研究起來就比較簡單了。因子分析就是一個幫助我們“減少”研究變量的統計工具。例子二在問卷研究中,為了增加測量的信度,減少隨機誤差,研究人員往往會用多個測量項目(項目即items,多個測量項目組成了測量量表measurementscale)來測量一個構念。但是怎麼知道一大堆的測量項目是不是代表一個構念呢?這時,我們需要一個能夠把多個變量(測量項目)聚合成比較少的“高階”變量(構念)的統計工具。因子分析(FactorAnalysis)就是一個減少變量的統計方法。

現在讓我們假設研究模型是主管跟下屬的關係(以下簡稱“關係”)影響了下屬晉升的機會(以下簡稱“晉升”)和下屬得到紅利的多少(以下簡稱“紅利”)。主管跟下屬的關係越好,將來下屬晉升的機會越高,年終所得到的紅利也越多。在測量“關係”“晉升”和“紅利”時,我們每個構念分別用了3道題(3個測量項目)。“關係”由下屬打分,“晉升”和“紅利”由對應的主管打分。9個測量項目分別如下(畫圈的是其中一個應答者的答案):

主管下屬的“關係”評分1.工餘的時間我會探訪我的主管或與他交談123452.主管偶爾會邀請我到他家裏吃飯123453.我會在我主管的生日探訪他和送他禮物12345續表主管下屬的“關係”評分下屬“晉升”的機會4.如果有機會的話,我會首先提升這個下屬123455.我常常想辦法提升這個下屬123456.我會盡我的能力去提升這個下屬12345下屬可能分到的“紅利”7.我會給這個下屬客觀的紅利123458.他(她)是我給最高紅利的下屬123459.我個這個下屬的紅利比其他的下屬為多12345現在的問題是用什麼方法可以把這9個項目變量變成它們背後的3個構念。在這例子裏,這9個測量項目(x1到x9)是可見的項目(Item,或稱指標Indicators,或稱觀察變量ObservedVariables)。它們背後代表(或者是反映)的是不可見的3個構念(Constructs),也就是“關係”“晉升”和“紅利”。

用什麼方法可以把這9個測量項目“減少”成為3個構念變量呢?自然,在問卷設計時,研究者知道x1到x3測量“關係”、x4到x6測量“晉升”和x7到x9測量“紅利”。

但是如何知道當中沒有錯誤呢?有沒有可能設計時x3是測量“關係”的,但是事實x3卻是測量了“晉升”呢?因子分析就是一個幫助我們“總合(減少)”研究變量的一個統計工具。因為現在談的是探索性因子分析,我們就假設研究人員不知道這9道題背後的設計。我們現在要看看它們背後有沒有什麼隱含的結構。現在我們的問題是如何找到代表這9個測量變量背後的3個構念呢?大家或許會說,把9個測量項目變成3個構念很簡單嘛。我們隻要把代表3個構念的項目加起來計算它們的平均值就可以了。這是一個處理方法,我們在研究的時候也常常采用。不過,這樣做有三個很大的缺點。第一,我們如何知道是不是事與願違,你的9個測量變量真的是3個一組地測量它們相應的構念?第二,我們假設了每個項目隻是在測量它背後的構念,剩下的全是隨機誤差。因為晉升和紅利都是主管填的。有沒有可能在x4到x9背後,其實有一個代表“主管特征”(如主管評分時是否嚴苛)的隱藏變量呢?第三,就是我們假設了每一個項目代表背後的構念的程度都是一樣的。換句話說,我們假設項目與構念之間的關係是經典測量模型(ClassicalMeasurementModel)。用數學來表達,可見的項目(x1到x9)與不可見的構念(F1,F2,F3也就是關係、晉升和紅利)之間的關係為x1=F1+e1

x2=F1+e2

x3=F1+e3

x4=F2+e4

x5=F2+e5

x6=F2+e6

x7=F3+e7

x8=F3+e8

x9=F3+e9請注意,在上述的公式裏,x1到x3反映的是F1,x4到x6反映的是F2,x7到x9反映的是F3。在探索性因子分析裏麵,因為變量背後的結構是不明確的,因此我們假設每一個測量項目變量都是在不同程度地同時表現了3個不可見的構念(F1,F2,F3,也就是關係、晉升和紅利),而且測量項目變量表現背後的構念的程度都不一樣。換句話說,我們是假設項目與構念之間的關係是同質性測量模型(CongenericMeasurementModel),而且每一個項目都同時表現了3個構念。當然測量項目變量x1表現F1的程度高於它表現F2和F3。用數學來表達,可見的項目與構念之間的關係為x1=λ11F1+λ12F2+λ13F3+e1x2=λ21F1+λ22F2+λ23F3+e2x3=λ31F1+λ32F2+λ33F3+e3x4=λ41F1+λ42F2+λ43F3+e4x5=λ51F1+λ52F2+λ53F3+e5x6=λ61F1+λ62F2+λ63F3+e6x7=λ71F1+λ72F2+λ73F3+e7x8=λ81F1+λ82F2+λ83F3+e8x9=λ91F1+λ92F2+λ93F3+e9但是問題出來了。我們怎麼知道每一個項目反映它背後的構念的權數(λjk)是多少呢?因子分析就是一個幫助我們解決這個問題的方法。其實,把變量減少就是減少測量的維度。例這個立體本來是用三個維度來代表的。因此它有長、寬、高三個維度。因子分析幫助我們減少變量,就好比把這個立體的形狀,從三維“壓扁”。

如果我們從三個維度減少到兩個維度,就會把它從立體壓扁到平麵。我們可以用很多不同的“壓扁”的方法。同樣的,因子分析有很多減少變量的方法。在這章書裏,我們隻介紹一種最普遍的方法,稱為“主成分法”。

在數學上,一個變量其實就是一個維度(dimension)。如果用兩個變量來代表關係,每一個主管下屬的關係就是二維空間上的一個點。如果我們用3個變量來代表“關係”,每一個主管下屬的關係就是在三維空間上的一個點。例如,我們用兩道題來測量“關係”,就是“工餘的時間我會探訪我的主管或與他交談”(x1)和“我會在我主管的生日探訪他和送他禮物”(x2)。

每一點(x1,x2)就是一個員工對上麵兩道題的回應。因此,每個員工的“關係”都由兩個變量(x1和x2)表示出來。現在如果不允許用兩個變量,而隻允許用一個變量,該如何表達這一百多個點呢?如果不允許有x1和x2兩個維度,隻允許一個維度(也就是說,不準用橫的x1軸和與它垂直的縱的x2兩個軸,而隻許用一條新的軸),這個新軸既不是x1,也不是x2,而是一個新的箭頭。在幾何學上,線的方程就是線性組合。因此,新的軸就是F=a1x2+a2x2(a1和a2是兩個常數,因為有很多不同的方法可以減少維度,所以a1和a2可以有很多不同的數值)。“新軸A”和“新軸B”就是兩個可能的新軸,也就是兩個可能的x1和x2新組合。現在讓我們想想,用什麼方法來畫這個新的箭頭(軸)才更為合理呢?

如果要代表這138個員工的關係,又不允許用x1和x2兩個軸,而隻允許一個軸的話,明顯“新軸B”(F2)比“新軸A”(F1)來得合理。因為當一個員工與主管的關係好的時候(x1和x2都大的時候),F2就會越大,但是F1卻不一定。但是如何才可以找到這一條最適宜的線作為新的軸呢?我們以前最為熟悉的方法稱為“最小平方法”。

它是把每一點與線的上下距離減到最小。在因子分析中,我們介紹另外一個可行的方法,稱為“主成分法”。

它是把每一點與線的垂直距離減到最小。

由兩個變量(兩個軸或是兩個維度)減少到一個變量(一個軸或是一個維度),用主成分法的表現是這樣。同樣的,由3個變量減少到一個變量,就是在三維空間裏,由一條直線(其實是一個向量)代表了3個軸。

10.2因子、因子權數、因子數

因子的定義:所有由變量組成的線性函數都稱為變量的因子(factor)。因此,所有由上麵9個測量項目變量組成的線性函數都稱為這9個測量項目變量的因子。其中第一個因子,F1為F1=w1x1+w2x2+w3x3+w4x4+w5x5+w6x6+w7x7+w8x8+w9x9式中,w1到w9是常數,又稱因子權數(factorweights)。首先,假設我們已經收集了數據。我們訪問了138個中層經理和他們的下屬,收集了這9個測量項目變量的資料(1分最低,7分最高)。數據如下:測量項目變量回答者x1x2x3…x91434…22123…53665…64414…3138345…4假設所有的變量都已經標準化,平均數為0,方差為1。利用這9個測量項目變量組成的相關矩陣,通過“主成分法”找到首3個因子,F1,F2與F3。

F1=0.60x1+0.81x2+0.77x3+0.01x4+0.03x5+0.12x6+0.19x7+0.08x8+0.26x9F2=-0.06x1+0.12x2+0.03x3+0.65x4+0.80x5+0.67x6-0.02x7-0.10x8-0.13x9F3=0.02x1-0.03x2+0.08x3-0.04x4+0.07x5-0.05x6+0.68x7+0.53x8+0.47x9我們不詳談如何用主成分法找出因子權數。因為這是個數學的問題。我們在這裏關注的是如何理解它,這是研究方法的問題。有興趣的讀者請參考附錄,我們也鼓勵讀者弄明白當中的數學規律。在上麵的3個因子裏,每一個因子和每一個測量項目變量都會對應有一個因子權數。權數越大,這個變量在該因子中所占的比重就越大。有了這3個因子,對於每一個問卷的回答者,我們都可以把他們對x1到x9的回答代入這3個因子函數中。例如,“回答者1”對測量項目1到9的回答分別是4,3,4,3,5,6,2,1,2。對於“回答者1”來說,第一因子F1的數值為

F1=0.60x1+0.81x2+0.77x3+0.01x4+0.03x5+0.12x6+0.19x7+0.08x8+0.26x9

=0.60×4+0.81×3+0.77×4+0.01×3+0.03×5+0.12×6+0.19×2+0.08×1+0.26×2

=9.79如果“回答者2”對測量項目1到9的回答分別是1,2,3,3,5,4,4,6,5。對於“回答者2”來說,第一因子F1的數值為

F1=0.60x1+0.81x2+0.77x3+0.01x4+0.03x5+0.12x6+0.19x7+0.08x8+0.26x9

=0.60×1+0.81×2+0.77×3+0.01×3+0.03×5+0.12×4+0.19×4+0.08×6+0.26×5

=7.92同樣,我們可以計算“回答者3”在第一因子F1的數值,如此類推。結果我們會得到一個不同回答者在第一因子F1的數值的變量。這個變量稱為第一因子的“因子數(factorscore)”。

同樣,“回答者1”的第二因子數為

F2=-0.06x1+0.12x2+0.03x3+0.65x4+0.80x5+0.67x6-0.02x7-0.10x8-0.13x9

=-0.06×4+0.12×3+0.03×4+0.65×3+0.80×5+0.67×6-0.02×2-0.10×

1-0.13×2

=7.65回答者x1x2x3…x9第一因子數(F1)第二因子數(F2)1434…29.797.652123…57.923665…6…4414…3…138345…4…在數學上,一個“測量項目變量”和“因子數”的相關係數,就等於該項目變量在該因子上的“因子載荷(factorloading)”。

請注意,“因子權數(factorweights)”與“因子載荷(factorloading)”是兩個不同的東西。“因子權數”(wij)是不同的變量在一個因子中的比重。當因子寫成變量的一個方程時,各個變量在函數中的比重就是“因子權數”。

因此,wij是變量j在因子i中的比重,即F1=w11x1+w12x2+w13x3+w14x4+w15x5+w16x6+w17x7+w18x8+w19x9F2=w21x1+w22x2+w23x3+w24x4+w25x5+w26x6+w27x7+w28x8+w29x9F3=w31x1+w32x2+w33x3+w34x4+w35x5+w36x6+w37x7+w38x8+w39x9“因子載荷”(λij)卻是剛剛相反。載荷是不同的因子能夠代表一個變量的能力。當變量寫成是因子的一個函數時,各個因子在函數中的回歸係數就是“因子載荷”。

因此,載荷λij是因子i能夠代表變量j的能力。x1=λ11F1+λ12F2+λ13F3+ε1x2=λ21F1+λ22F2+λ23F3+ε2x3=λ31F1+λ32F2+λ33F3+ε3x4=λ41F1+λ42F2+λ43F3+ε4x5=λ51F1+λ52F2+λ53F3+ε5x6=λ61F1+λ62F2+λ63F3+ε6x7=λ71F1+λ72F2+λ73F3+ε7x8=λ81F1+λ82F2+λ83F3+ε8x9=λ91F1+λ92F2+λ93F3+ε9這裏有兩點要說明一下。①為什麼在“因子載荷”的程式中有誤差項(ε),但是在“因子權數”的方程中卻沒有呢?因為從定義上看,因子是變量的線性組合。任何變量的線性組合都是因子。隻要是這9個變量加權加起來的結果,就是一個因子。裏麵不包含“估計”的問題。自然也沒有誤差項。但是在“因子載荷”的程式中,我們隻是用了3個因子來代表9個變量,把一個9個維度的空間壓縮變成一個三維的空間,自然有些信息損失了。因此,F1,F2,F3無論如何加權,都不可能完全代表x1到x9。所以我們要加上一個“誤差項”(ε)。②為什麼我會說載荷λij是因子i能夠代表變量j的能力呢?因為x1=λ11F1+λ12F2+λ13F3+ε1,其實就是一個回歸分析的方程。我們用3個因子來代表(估計)原來的9個變量。如果3個因子是垂直(沒有相關)的,同時因子是標準化的,λ12其實就是x1與F2的相關係數(這是簡單的回歸分析的結果)。相關係數的平方就是一個變量能夠解釋多少另外一個變量的方差,也可以說是一個變量代表另外一個變量的能力。因為解釋的方差越大,能代表對方的能力越強。如果x1的方差100%可以由F2來解釋的話,x1與F2其實就沒有分別,F2就可以100%代表x1了。推導:因為x1=λ11F1+λ12F2+λ13F3+ε1,如果都是標準化的話,則rx3F1=Cov(λ31F1+λ32F2+λ33F3+e3,F1)

=Cov(λ31F1,F1)+Cov(λ32F2,F1)+Cov(λ33F3,F1)+Cov(e3,F1)

=Cov(λ31F1,F1)

=(λ31)2Cov(F1,F1)

=λ231[注意:①我們假設不同的因子(Fj與Fk)是沒有相關的(這在大部分的因子分析方法來說都是對的)。因而不同因子的協方差都是0。②因為ε是隨機的,所有的ε與其他變量的協方差都是0。③所有變量與自己的協方差都等於它的方差。因為我們假設所有的變量都是標準化的,所以方差都是1。]現在,讓我們來總結一下。載荷是變量與因子數的相關。如果我們計算“項目3”這個變量與“第一因子數”的相關的話,計算得出來的相關係數就是“項目3”在“第一因子”的“載荷”,也就是0.77。同樣,“項目1”與“第二因子數”的相關就是x1在F2的“載荷”,也就是-0.06。一個項目(如x2)與一個因子數(如F1)的相關係數是什麼意思呢?我們如何理解“因子載荷”這個概念呢?在幾何上來說,相關係數是兩個向量的夾角的餘弦。如果x是一個變量,y是另外一個變量,rxy=cosθ。如果x這個向量(變量)是標準化(長度等於1)的,“夾角的餘弦”其實就是x這個向量在y向量上的投影。

當兩個變量的夾角是0的時候,cos(0°)=1,兩個向量是一樣的,它們的相關係數是1。當兩個變量是垂直時,它們的夾角是90°,cos(90°)=0,兩個變量的相關係數是0,兩者沒有相關。一個變量(項目)與一個因子(幾個變量的加權總和)的相關係數,稱為這個變量在這個因子中的“因子載荷”。

因此,因子載荷可以看成是一個變量與這個因子在多維空間的夾角的餘弦。x2與F1的夾角很小,夾角的餘弦就很大,代表x2與F1的相關係數很高,也就是說x2在F1中的載荷很大。因為夾角很小,投影很長,所以當x2很大時,代表F1也相應的很大。因此,“因子載荷”可以看成是該因子代表這個變量的能力。x2在F1中載荷最大,x5在F1中載荷最小。數據明顯地表明x1和x2更像測量同一個構念(我們稱為“關係”)。因為“關係”這個因子(構念)不可以代表x5,就是說x5在F1上投影很小。它跟“關係”的相關很小。因此,在找到第一個因子(關係)後,第二個因子往往是垂直於第一個因子的。因為這樣的話,F2就最能代表F1所不能代表的部分了。例如,x5在F1中的投影很短,也就是說x5與F1的相關很低,或者說F1不太能代表x5。但是x5在F2的投影卻很長,F2扮演了F1所做不到的角色。正因如此,如果有6個項目測量兩個構念,我們會期望x1到x3在F1的載荷很高(F1很能代表x1到x3),而x4到x6在F2的載荷很高(F2卻能代表x4到x6)。

如果rx3F1=λ31的話,我們知道相關係數的平方是前麵的變量(x3)的方差被後麵的變量(F1)所解釋的部分。“因子載荷”的平方(λ231)就代表了項目變量(x3)能夠被因子(F1)所解釋的部分。也就是說因子(F1)解釋了項目變量(x3)的方差的(λ231)%。如果3個因子沒有相關,它們解釋其他變量的部分就完全不同,所以它們對其他變量的解釋能力就可以相加起來。因此,3個因子加起來就可以解釋變量(x3)的方差的(λ231+λ232+λ233)%。當因子是相關的,它們對其他變量的解釋能力就不可以相加,而是要把相關的部分減掉。白色的橢圓代表因子的方差,斜線的圓圈代表測量項目的方差。右邊的兩個因子分別解釋了測量項目的不同部分,因此,它們的總解釋力是兩者相加的和。左邊的兩個因子很大程度地解釋了測量項目的相同部分,兩個因子的一共解釋測量項目的能力少於兩者相加的和。

同時,因為相關係數是對稱的,如果rx3F1=λ31的話,“因子權數”的平方(λ231)也是測量項目x3能夠解釋第一因子(F1)的方差的部分。了解了這兩個關係,我們就可以解讀因子分析的結果了。現在我們有9個測量項目變量(x1到x9),它們分別測量3個不可見的構念(F1,F2,F3,也就是關係、提升和紅利)。9個變量在3個因子上的因子權數如下:因子測量項目變數F1(關係)F2(提升)F3(紅利)分解共性h2x10.60-0.060.020.36x20.810.12-0.030.67x30.770.030.080.60x40.010.65-0.040.42x50.030.800.070.65x60.120.67-0.050.47續表因子測量項目變數F1(關係)F2(提升)F3(紅利)分解共性h2x70.19-0.020.680.50x80.08-0.100.530.30x90.26-0.130.470.31權數平方總和1.761.560.98平均方差解釋%0.190.170.110.47在上表裏,表中間的數字是“因子載荷”。