熱線電話:13121318867

登錄
首頁精彩閱讀主成分分析和因子分析及其在R中的…
主成分分析和因子分析及其在R中的…
2018-01-13
收藏

主成分分析和因子分析及其在R中的…

主成分分析和探索性因子分析是兩種用來探索和簡化多變量復雜關系的常用方法,它們之間有聯系也有區別。

主成分分析(PCA)是一種數據降維方法,它能將大量相關變量轉化為一組很少的不相關變量,這些無關變量稱為主成分。例如,使用PCA可將30個相關(很可能冗余)的環境變量轉化為5個無關的成分變量,并且盡可能地保留原始數據集的信息。

相對而言,探索性因子分析(EFA)是一系列用來發現一組變量的潛在結構的方法。它通過尋找一組更小的、潛在的或隱藏的結構來解釋已觀測到的、顯式的變量間的關系。

主成分分析和因子分析及其在R中的實現

從上圖可以看出,主成分(PC1和PC2)是觀測變量(X1到X5)的線性組合。形成線性組合的權重都是通過最大化各主成分所解釋的方差來獲得,同時還要保證個主成分間不相關。相反,因子(F1和F2)被當做是觀測變量的結構基礎或“原因”,而不是它們的線性組合。代表觀測變量方差的誤差(e1到e5)無法用因子來解釋。圖中的圓圈表示因子和誤差無法直接觀測,但是可通過變量間的相互關系推導得到。在本例中,因子間帶曲線的箭頭表示它們之間有相關性。在EFA模型中,相關因子是常見的,但并不是必需的。

2 R中的主成分因子分析

R的基礎安裝包提供了PCA和EFA的函數,分別為princomp()和factanal()。下文將重點介紹psych包中提供的函數,它們提供了比基礎函數更豐富和有用的選項。

psych包中有用的因子分析函數

因子分析常見步驟:

(1)數據預處理。兩種方法都是根據觀測變量間的相關性來推導結果,可以輸入原始數據矩陣或相關系數矩陣。

(2)選擇因子模型。判斷是選擇主成分分析(數據降維)還是探索性因子分析(發現潛在結構)。如果選擇因子分析方法,還需要選擇一種估計因子模型的方法(如最大似然估計)。

(3)判斷要選擇的主成分/因子數目

(4)選擇主成分/因子

(5)旋轉主成分/因子

(6)解釋結果

3 主成分分析

第一主成分是對原來觀測變量的加權組合,對初始變量集的方差解釋性最大。第二主成分次之,同時與第一成分正交(不相關)。

1判斷主成分個數

判斷需要多少個主成分的準則:

A根據先驗經驗和理論知識判斷主成分分數

B根據要解釋變量方差的積累值的閾值來判斷需要的主成分數

C通過檢查變量間k×k的相關系數矩陣來判斷保留的主成分數

最常見的是基于特征值的方法。每個主成分都與相關系數矩陣的特征值相關聯,第一主成分

與最大的特征值相關聯,第二主成分與第二大的特征值相關聯,依此類推。

Kaiser-Harris準則建議保留特征值大于1的主成分,特征值小于1的成分所解釋的方差比包含在單個變量中的方差更少。

Cattell碎石檢驗則繪制了特征值與主成分數的圖形。這類圖形可以清晰地展示圖形彎曲狀況,

在圖形變化最大處之上的主成分都可保留。

最后,也可以進行模擬,依據與初始矩陣相同大小的隨機數據矩陣來判斷要提取的特征值。若基于真實數據的某個特征值大于一組隨機數據矩陣相應的平均特征值,那么該主成分可以保留。該方法稱作平行分析。

利用fa.parallel()函數,你可以同時對三種特征值判別準則進行評價。

格式:fa.parallel(data, fa=”PC”, n.iter=100,show.legend=FALSE, main=””)

2提取主成分

principal()函數可以根據原始數據矩陣或者相關系數矩陣做主成分分析。

格式為:principal(r,nfactors=,rotate=,scores=)

其中:r是相關系數矩陣或原始數據矩陣;

nfactors設定主成分數(默認為1);

rotate指定旋轉的方法(默認最大方差旋轉(varimax));

scores設定是否需要計算主成分得分(默認不需要)。

輸出結果解釋:

PC1、PC2欄包含了成分載荷,指觀測變量與主成分的相關系數。

h2欄指成分因子方差——主成分對每個變量的方差解釋度。

u2欄指成分唯一性——方差無法被主成分解釋的比例(1-h2)。

SS loadings行包含了與主成分相關聯的特征值,指與特定主成分相關聯的標準化后的方差值。

Proportion Var行表示的是每個主成分對整個數據集的解釋程度。

3主成分旋轉

旋轉是一系列將成分載荷陣變得更容易解釋的數學方法,它們盡可能地對成分去噪。旋轉方法有兩種:使選擇的成分保持不相關(正交旋轉),和讓它們變得相關(斜交旋轉)。最流行的正交旋轉是方差極大旋轉,它試圖對載荷陣的列進行去噪,使得每個成分只是由一組有限的變量來解釋(即載荷陣每列只有少數幾個很大的載荷,其他都是很小的載荷)。

以方差極大旋轉為例,旋轉后,主成分仍不相關,對變量的解釋性不變,累計方差解釋性也沒有變化,變的只是各個主成分對方差的解釋度(即線性系數)。

4獲取主成分得分

Principal函數中score=TRUE時,即返回每個對象在主成分上的得分。當輸入數據是相關系數矩陣時,則不可能獲取每個觀測的主成分得分,但可以得到用來計算主成分得分的系數。

4 探索性因子分析

EFA的目標是通過發掘隱藏在數據下的一組較少的、更為基本的無法觀測的變量,來解釋一組可觀測變量的相關性。這些虛擬的、無法觀測的變量稱作因子。(每個因子被認為可解釋多個觀測變量間共有的方差,因此準確來說,它們應該稱作公共因子)。

主成分分析和因子分析及其在R中的實現

1判斷需提取的公共因子數

同樣使用fa.parallel函數,令fa=”both”,因子圖形將會同時展示主成分和公共因子分析的結果。

對于EFA,Kaiser-Harris準則的特征值數大于0,而不是1

2提取公共因子

fa(r,nafctors=,n.obs=,rotate=,scores=,fm=)

其中:r是相關系數矩陣或者原始數據矩陣;

nfactors設定提取的因子數(默認為1);

n.obs是觀測數(輸入相關系數矩陣時需要填寫);

rotate設定旋轉的方法(默認互變異數最小法);

scores設定是否計算因子得分(默認不計算);

fm設定因子化方法(默認極小殘差法)。

PCA不同,提取公共因子的方法很多,包括最大似然法(ml)、主軸迭代法(pa)、加權

最小二乘法(wls)、廣義加權最小二乘法(gls)和最小殘差法(minres)。統計學家青睞使用最大似然法,因為它有良好的統計性質。不過有時候最大似然法不會收斂,此時使用主軸迭代法效果會很好。

3因子旋轉

使用正交旋轉將人為地強制兩個因子不相關。使用斜交轉軸法,則允許兩個因子相關。

對于正交旋轉,因子分析的重點在于因子結構矩陣(變量與因子的相關系數),而對于斜交旋轉,因子分析會考慮三個矩陣:因子結構矩陣、因子模式矩陣和因子關聯矩陣。

因子模式矩陣即標準化的回歸系數矩陣。它列出了因子預測變量的權重。PA1,PA2…

因子關聯矩陣即因子相關系數矩陣。

因子結構矩陣(或稱因子載荷陣)在輸出結果上沒顯示出來。

4因子得分

因子分析不怎么關注因子得分

5其他與EFA相關的包

FactoMineR包不僅提供了PCA和EFA方法,還包含潛變量模型。

FaiR包用遺傳算法來估計因子分析模型。

GPArotation包則提供了許多因子旋轉方法。

nFactors包提供了用來判斷因子數目的許多復雜方法


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢