天天看點

8、spss做因子分析及主成分分析

上一篇文章我們讨論完了回歸的最後一部分内容,非線性回歸。這一次我們正式結束回歸,開始讨論降維分析。在之前關于相關的内容裡,我們就說過,做相關,回歸等分析的時候,消除多重共線性是一個很複雜很複雜的問題,一次資料分析的變量多達三四十個是很正常的情況,這個時候調整變量的效果往往微乎其微,是以就需要用到一個有力辦法,降維。

現在我們就來談一談降維。首先要先明确一個概念,什麼是降維。我們知道“維”是一個數學領域的一個術語,放在統計分析裡邊,我們可以簡單的了解為一個變量就是一個維。降維的意思就是說把原來的許多變量通過一些方法壓縮為較少的變量,這樣變量數減少了,也就是維數減少了,也就叫降維。因子分析由于應用廣泛,是以是最廣為人知的降維方法。此外由于主成分分析和因子分析聯系非常緊密,并且,注意,并且,spss沒有獨立的子產品來做主成分分析,是以,我就同時讨論這兩種技術了。

【一】因子分析和主成分分析的異同

因子分析和主成分分析的相同和不同的地方是每一個希望使用因子分析這種分析手段的人所必須要掌握的知識點。在部落格或者各種論壇上,有許多相關的資源貼。我們在這裡不從數學層面進行讨論,主要從應用層面來展開讨論。

對于因子分析和主成分分析最主要的也是最重要的一點是:因子分析需要旋轉矩陣,主成分分析則不用。(實際上,在spss裡邊,如果你做因子分析時旋轉方法為不旋轉的話,那你做的就是主成分分析)

第二個不同點在于結果的解釋:對于因子分析,要求公共因子不相關。主成分分析則不要求這個。這裡不得不講一點點原理性的東西。因子分析的目的是将輸入變量表示成各因子的線性組合,而主成分分析則是試圖選擇出主成分,其表示為各變量的線性組合。(基本上比較繞)關鍵在于,主成分分析的目的是解釋變量的總方差,而因子分析則側重于解釋各變量之間的協方差。也就是說,對于主成分分析,我們的目的是提取出主成分,用我們的變量來表示。而對于因子分析,我們的目的是找出公共因子,用這些公共因子去表示我們原有的變量。這個因果關系的不同,就要求因子分析中我們找到的公共因子可以從邏輯上被解釋。

因為我們不涉及原理的解說,是以主要的異同點就是這些了。

【二】主成分分析的操作方法

因為spss裡并沒有專門的子產品可以用來做主成分分析,是以我們操作主成分析的時候,需要選擇菜單分析——降維——因子分析,在因子分析的子產品下做主成分分析。

在主面闆裡把你想要分析的變量選到右邊的大框框裡。注意,這裡不選地區啊,省份啊這些标志性的變量。你要選你認為資訊有重合的變量,舉個例子,比如身高和坐高在一項健康狀況裡有重疊性的作用,那你就把它們選到這個變量框裡。下邊的選擇變量是用來選擇個案的,一般不需要管它。

打開描述對話框,全部勾選。打開抽取對話框,抽取對話框最上邊有一個方法的下拉菜單。預設的是主成分。除了主成分以外,還有六種抽取方法,我們要做的是主成分分析,當然預設就可以啦,下邊的輸出勾選碎石圖,未旋轉的因子解。在下邊有一個抽取。一般基于特征值就可以了。下邊還有一個最大收斂性疊代次數,預設是25。打開旋轉對話框,勾選載荷圖。打開儲存對話框,勾選儲存為變量,顯示因子得分系數矩陣。

注意,注意。現在我們打開選項對話框。将缺失值勾選為使用均值替換。如果你的變量有缺失值,那麼一定要千萬記得這一步。不然你的變量得分會有缺失,就是說你的結果基本廢了。我老是搞忘掉這一步,然後每次都想哭tat。

【三】主成分分析的結果解釋

第一個要看的表是kmo,這個表裡的kmo路徑成本(第一行)告訴你你的資料是否适合做因子分析/主成分分析。這個值大于0.65就可以了。通常隻要你的變量确實彼此之間有重疊,直覺的想想都覺得有關系的話,而且變量數比較多的話,那kmo一般是過得去的。然後第二個表看解釋的總方差,你看第二行有一個方差的百分比,第三行是累計百分比。我們主要看這兩個名額,第一個名額告訴你每個主成分的解釋的方差(你不用去管什麼叫解釋的方差,記住那個名額有用,怎麼判斷就可以了。),第二個名額是前幾個主成分加起來的方差。仔細觀察,你會發現這兩個名額之間存在一個加法和和的關系。

由于我們之前預設的提取方法是基于特征值,是以這裡會自動為你提取主成分。不過我們一般認為提取的方差需要大于百分之八十五,如果你的主成分特征值大于1的累計方內插補點小于85%,那麼很不幸的,我需要告訴你,你得重做一遍。這時候你的抽取裡的個數,就選那個抽取固定的數目。然後設定的數目為你查這個表查詢的得到的累計方差大于85%的主成分數目。

然後看成分矩陣和成分系數矩陣,這兩個表都是反映變量在成分的權重。不過成分矩陣可以看成是反映了一個絕對值,第二個則反映了用變量寫成分的表達式怎麼寫(有了表達式,才能算出成分得分哇)。這個類似于啊,類似于回歸裡邊的标準系數和非标準系數。

最後一個是綜合得分的計算,我們上邊把成分得分儲存為了變量,用這些成分得分可以計算一個綜合得分出來,算法如下,用每個成分的方差的百分比作為權重,将成分相加就可以了。綜合得分的用處在于排名次,比如看看全國31個省的通信品質的高低,通過綜合得分就可以來排名。此外做聚類的時候哇,也可以用這個。

【四】因子分析的操作方法

類似于主成分分析。隻是旋轉那裡勾選最大方差法。和大家公認的抽取方法裡主成分法最好以外,選裝方法一般認為最大方差法最好。

【五】因子分析的結果解釋

類似于主成分分析。隻是多了一個旋轉成分矩陣。咳,注意了注意了。因子分析最精髓的一個點就在這裡了。

你看這個表的時候一定要很小心仔細,這個表的行是每個成分,列是每個變量,然後每個格格裡對應的數就是相對應的變量在相對應的成分裡的權重名額。我們需要反過來付過去的做因子分析,最後達到一個什麼狀态呢?最後達到每個成分在所有的變量裡邊有一個系數占絕對優勢,明顯比其他系數大的多。舉個例子,一個變量在三個成分的系數分别是0.3,0.2,0.8,哎,這個裡邊0.8明顯比其他的大,這個因子就可以。再比如,這三個系數是0.4,0.6,0.6,那由于出現了兩個最大值,是以呢這個因子就不可以。通常來說,認為這個最大的系數和第二大要差0.2,這樣才認為占了絕對優勢。

上邊我們說過因子分析的重點在于,用公共因子去解釋變量。認為變量收到了公共因子的影響。也就是說哇,我們認為有一個公共因子潛在的影響到了幾個變量,使得他們表現出了多重共線性。是以呢,旋轉成分矩陣裡就要表現出這個公共因子對于變量的影響。一個變量不能既受這個因子的影響,又受那個因子的影響,一個變量隻能受一個因子影響,是以它的系數隻能有一個占大頭。

然後我們就有了分别代表一些不同變量的成分(既然一個變量隻能由一個成分代表,那麼每個成分代表的變量也就不同哇),然後,注意,然後,我們就可以給這些成分命名了。

你大概很惱火,有完沒完啊,不過命名還是挺簡單的一個步驟,你觀察你的每個成分所代表的變量,然後給它們命個名字。比如你的一個成分是身高,坐高,體重,那你就命名為人體體型,另一個成分是胸圍,肩寬,盆骨寬,那你就命名為人體體寬,懂?

【六】注意事項

我覺得這個是最重要的一個部分。請仔細看看。

2.關于結果解讀。因子分析會生成相當多的表哦,但是我們隻解讀了其中兩三個表,這并不是其他的表就沒有意義,比如碎石圖,在許多論文裡就要用到。可以直覺的看到各個成分的作用大小。

3.關于預處理。請記得資料要先進行标準化以後,才可以做分析。

4.關于因子分析的旋轉。旋轉出合适的成分矩陣是很重要的一件事,你可以通過改變你的抽取方法或者增大你的抽取因子數目來改善你的矩陣,這些都是可能起到作用的。多試試。此外,那些系數是負的話,就是說明是負相關,很正常哈。

5.關于因子分析和主成分分析的辨析。通常使用因子分析。主要是因為它比較進階。

繼續閱讀