主成分分析和因子分析及其在R中的…
1? 主成分分析和因子分析比較
主成分分析和探索性因子分析是兩種用來探索和簡(jiǎn)化多變量復(fù)雜關(guān)系的常用方法,它們之間有聯(lián)系也有區(qū)別。
主成分分析(PCA)是一種數(shù)據(jù)降維方法,它能將大量相關(guān)變量轉(zhuǎn)化為一組很少的不相關(guān)變量,這些無關(guān)變量稱為主成分。例如,使用PCA可將30個(gè)相關(guān)(很可能冗余)的環(huán)境變量轉(zhuǎn)化為5個(gè)無關(guān)的成分變量,并且盡可能地保留原始數(shù)據(jù)集的信息。
相對(duì)而言,探索性因子分析(EFA)是一系列用來發(fā)現(xiàn)一組變量的潛在結(jié)構(gòu)的方法。它通過尋找一組更小的、潛在的或隱藏的結(jié)構(gòu)來解釋已觀測(cè)到的、顯式的變量間的關(guān)系。
從上圖可以看出,主成分(PC1和PC2)是觀測(cè)變量(X1到X5)的線性組合。形成線性組合的權(quán)重都是通過最大化各主成分所解釋的方差來獲得,同時(shí)還要保證個(gè)主成分間不相關(guān)。相反,因子(F1和F2)被當(dāng)做是觀測(cè)變量的結(jié)構(gòu)基礎(chǔ)或“原因”,而不是它們的線性組合。代表觀測(cè)變量方差的誤差(e1到e5)無法用因子來解釋。圖中的圓圈表示因子和誤差無法直接觀測(cè),但是可通過變量間的相互關(guān)系推導(dǎo)得到。在本例中,因子間帶曲線的箭頭表示它們之間有相關(guān)性。在EFA模型中,相關(guān)因子是常見的,但并不是必需的。
2? R中的主成分因子分析
R的基礎(chǔ)安裝包提供了PCA和EFA的函數(shù),分別為princomp()和factanal()。下文將重點(diǎn)介紹psych包中提供的函數(shù),它們提供了比基礎(chǔ)函數(shù)更豐富和有用的選項(xiàng)。
???? psych包中有用的因子分析函數(shù)?
| ?函數(shù) | ?描述 |
| ?principal() | ?含多種可選的方差旋轉(zhuǎn)方法的主成分分析 |
| ?fa() | ?可用主軸、最小殘差、加權(quán)最小平方或最大似然法估計(jì)的因子分析 |
| ?fa.parallel() | ?含平行分析的碎石圖 |
| ?factor.plot() | ?繪制因子分析或主成分分析的結(jié)果 |
| ?fa.diagram() | ?繪制因子分析或主成分的載荷矩陣 |
| ?scree() | ?因子分析和主成分分析的碎石圖 |
因子分析常見步驟:
(1)數(shù)據(jù)預(yù)處理。兩種方法都是根據(jù)觀測(cè)變量間的相關(guān)性來推導(dǎo)結(jié)果,可以輸入原始數(shù)據(jù)矩陣或相關(guān)系數(shù)矩陣。
(2)選擇因子模型。判斷是選擇主成分分析(數(shù)據(jù)降維)還是探索性因子分析(發(fā)現(xiàn)潛在結(jié)構(gòu))。如果選擇因子分析方法,還需要選擇一種估計(jì)因子模型的方法(如最大似然估計(jì))。
(3)判斷要選擇的主成分/因子數(shù)目
(4)選擇主成分/因子
(5)旋轉(zhuǎn)主成分/因子
(6)解釋結(jié)果
3? 主成分分析
第一主成分是對(duì)原來觀測(cè)變量的加權(quán)組合,對(duì)初始變量集的方差解釋性最大。第二主成分次之,同時(shí)與第一成分正交(不相關(guān))。
1 判斷主成分個(gè)數(shù)
判斷需要多少個(gè)主成分的準(zhǔn)則:
A 根據(jù)先驗(yàn)經(jīng)驗(yàn)和理論知識(shí)判斷主成分分?jǐn)?shù)
B 根據(jù)要解釋變量方差的積累值的閾值來判斷需要的主成分?jǐn)?shù)
C 通過檢查變量間k×k的相關(guān)系數(shù)矩陣來判斷保留的主成分?jǐn)?shù)
最常見的是基于特征值的方法。每個(gè)主成分都與相關(guān)系數(shù)矩陣的特征值相關(guān)聯(lián),第一主成分
與最大的特征值相關(guān)聯(lián),第二主成分與第二大的特征值相關(guān)聯(lián),依此類推。
Kaiser-Harris準(zhǔn)則建議保留特征值大于1的主成分,特征值小于1的成分所解釋的方差比包含在單個(gè)變量中的方差更少。
Cattell碎石檢驗(yàn)則繪制了特征值與主成分?jǐn)?shù)的圖形。這類圖形可以清晰地展示圖形彎曲狀況,
在圖形變化最大處之上的主成分都可保留。
最后,也可以進(jìn)行模擬,依據(jù)與初始矩陣相同大小的隨機(jī)數(shù)據(jù)矩陣來判斷要提取的特征值。若基于真實(shí)數(shù)據(jù)的某個(gè)特征值大于一組隨機(jī)數(shù)據(jù)矩陣相應(yīng)的平均特征值,那么該主成分可以保留。該方法稱作平行分析。
利用fa.parallel()函數(shù),你可以同時(shí)對(duì)三種特征值判別準(zhǔn)則進(jìn)行評(píng)價(jià)。
格式:fa.parallel(data, fa=”PC”, n.iter=100,show.legend=FALSE, main=””)
2 提取主成分
principal()函數(shù)可以根據(jù)原始數(shù)據(jù)矩陣或者相關(guān)系數(shù)矩陣做主成分分析。
格式為:principal(r,nfactors=,rotate=,scores=)
其中:r是相關(guān)系數(shù)矩陣或原始數(shù)據(jù)矩陣;
????? nfactors設(shè)定主成分?jǐn)?shù)(默認(rèn)為1);
????? rotate指定旋轉(zhuǎn)的方法(默認(rèn)最大方差旋轉(zhuǎn)(varimax));
????? scores設(shè)定是否需要計(jì)算主成分得分(默認(rèn)不需要)。
?
輸出結(jié)果解釋:
PC1、PC2欄包含了成分載荷,指觀測(cè)變量與主成分的相關(guān)系數(shù)。
h2欄指成分因子方差——主成分對(duì)每個(gè)變量的方差解釋度。
u2欄指成分唯一性——方差無法被主成分解釋的比例(1-h2)。
SS loadings行包含了與主成分相關(guān)聯(lián)的特征值,指與特定主成分相關(guān)聯(lián)的標(biāo)準(zhǔn)化后的方差值。
Proportion Var行表示的是每個(gè)主成分對(duì)整個(gè)數(shù)據(jù)集的解釋程度。
3 主成分旋轉(zhuǎn)
旋轉(zhuǎn)是一系列將成分載荷陣變得更容易解釋的數(shù)學(xué)方法,它們盡可能地對(duì)成分去噪。旋轉(zhuǎn)方法有兩種:使選擇的成分保持不相關(guān)(正交旋轉(zhuǎn)),和讓它們變得相關(guān)(斜交旋轉(zhuǎn))。最流行的正交旋轉(zhuǎn)是方差極大旋轉(zhuǎn),它試圖對(duì)載荷陣的列進(jìn)行去噪,使得每個(gè)成分只是由一組有限的變量來解釋(即載荷陣每列只有少數(shù)幾個(gè)很大的載荷,其他都是很小的載荷)。
以方差極大旋轉(zhuǎn)為例,旋轉(zhuǎn)后,主成分仍不相關(guān),對(duì)變量的解釋性不變,累計(jì)方差解釋性也沒有變化,變的只是各個(gè)主成分對(duì)方差的解釋度(即線性系數(shù))。
4 獲取主成分得分
Principal函數(shù)中score=TRUE時(shí),即返回每個(gè)對(duì)象在主成分上的得分。當(dāng)輸入數(shù)據(jù)是相關(guān)系數(shù)矩陣時(shí),則不可能獲取每個(gè)觀測(cè)的主成分得分,但可以得到用來計(jì)算主成分得分的系數(shù)。
4? 探索性因子分析
EFA的目標(biāo)是通過發(fā)掘隱藏在數(shù)據(jù)下的一組較少的、更為基本的無法觀測(cè)的變量,來解釋一組可觀測(cè)變量的相關(guān)性。這些虛擬的、無法觀測(cè)的變量稱作因子。(每個(gè)因子被認(rèn)為可解釋多個(gè)觀測(cè)變量間共有的方差,因此準(zhǔn)確來說,它們應(yīng)該稱作公共因子)。
?
1 判斷需提取的公共因子數(shù)
同樣使用fa.parallel函數(shù),令fa=”both”,因子圖形將會(huì)同時(shí)展示主成分和公共因子分析的結(jié)果。
對(duì)于EFA,Kaiser-Harris準(zhǔn)則的特征值數(shù)大于0,而不是1
2 提取公共因子
fa(r,nafctors=,n.obs=,rotate=,scores=,fm=)
其中:r是相關(guān)系數(shù)矩陣或者原始數(shù)據(jù)矩陣;
????? nfactors設(shè)定提取的因子數(shù)(默認(rèn)為1);
????? n.obs是觀測(cè)數(shù)(輸入相關(guān)系數(shù)矩陣時(shí)需要填寫);
????? rotate設(shè)定旋轉(zhuǎn)的方法(默認(rèn)互變異數(shù)最小法);
????? scores設(shè)定是否計(jì)算因子得分(默認(rèn)不計(jì)算);
fm設(shè)定因子化方法(默認(rèn)極小殘差法)。
與PCA不同,提取公共因子的方法很多,包括最大似然法(ml)、主軸迭代法(pa)、加權(quán)
最小二乘法(wls)、廣義加權(quán)最小二乘法(gls)和最小殘差法(minres)。統(tǒng)計(jì)學(xué)家青睞使用最大似然法,因?yàn)樗辛己玫慕y(tǒng)計(jì)性質(zhì)。不過有時(shí)候最大似然法不會(huì)收斂,此時(shí)使用主軸迭代法效果會(huì)很好。
3 因子旋轉(zhuǎn)
使用正交旋轉(zhuǎn)將人為地強(qiáng)制兩個(gè)因子不相關(guān)。使用斜交轉(zhuǎn)軸法,則允許兩個(gè)因子相關(guān)。
對(duì)于正交旋轉(zhuǎn),因子分析的重點(diǎn)在于因子結(jié)構(gòu)矩陣(變量與因子的相關(guān)系數(shù)),而對(duì)于斜交旋轉(zhuǎn),因子分析會(huì)考慮三個(gè)矩陣:因子結(jié)構(gòu)矩陣、因子模式矩陣和因子關(guān)聯(lián)矩陣。
因子模式矩陣即標(biāo)準(zhǔn)化的回歸系數(shù)矩陣。它列出了因子預(yù)測(cè)變量的權(quán)重。PA1,PA2…
因子關(guān)聯(lián)矩陣即因子相關(guān)系數(shù)矩陣。
因子結(jié)構(gòu)矩陣(或稱因子載荷陣)在輸出結(jié)果上沒顯示出來。
4 因子得分
因子分析不怎么關(guān)注因子得分
5 其他與EFA相關(guān)的包
FactoMineR包不僅提供了PCA和EFA方法,還包含潛變量模型。
FaiR包用遺傳算法來估計(jì)因子分析模型。
GPArotation包則提供了許多因子旋轉(zhuǎn)方法。
nFactors包提供了用來判斷因子數(shù)目的許多復(fù)雜方法
?
?
總結(jié)
以上是生活随笔為你收集整理的主成分分析和因子分析及其在R中的…的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分类算法——决策树算法及其R实现
- 下一篇: 分类算法——决策树(1)