R語言主成分和因子分析_第1頁
R語言主成分和因子分析_第2頁
R語言主成分和因子分析_第3頁
R語言主成分和因子分析_第4頁
R語言主成分和因子分析_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、R語言主成分和因子分析主成分分析(PCA)是一種數(shù)據(jù)降維技巧,它能將大量相關(guān)變量轉(zhuǎn)化為一組很少的不相關(guān)變量,這些無關(guān)變量稱為主成分。探索性因子分析(EFA)是一系列用來發(fā)現(xiàn)一組變量的潛在結(jié)構(gòu)的方法,通過尋找一組更小的、潛在的或隱藏的結(jié)構(gòu)來解釋已觀測到的、變量間的關(guān)系。1.R中的主成分和因子分析R的基礎(chǔ)安裝包中提供了PCA和EFA的函數(shù),分別為princomp()和factanal()psych包中有用的因子分析函數(shù)函數(shù)描述principal()含多種可選的方差放置方法的主成分分析fa()可用主軸、最小殘差、加權(quán)最小平方或最大似然法估計(jì)的因子分析fa.parallel()含平等分析的碎石圖fac

2、tor.plot()繪制因子分析或主成分分析的結(jié)果fa.diagram()繪制因子分析或主成分分析的載荷矩陣scree()因子分析和主成分分析的碎石圖PCA/EFA 分析流程:(1)數(shù)據(jù)預(yù)處理;PCA和EFA都是根據(jù)觀測變量間的相關(guān)性來推導(dǎo)結(jié)果。用戶可以輸入原始數(shù)據(jù)矩陣或相關(guān)系數(shù)矩陣列到principal()和fa()函數(shù)中,若輸出初始結(jié)果,相關(guān)系數(shù)矩陣將會被自動計(jì)算,在計(jì)算前請確保數(shù)據(jù)中沒有缺失值;(2)選擇因子分析模型。判斷是PCA(數(shù)據(jù)降維)還是EFA(發(fā)現(xiàn)潛在結(jié)構(gòu))更符合你的分析目標(biāo)。若選擇EFA方法時,還需要選擇一種估計(jì)因子模型的方法(如最大似然估計(jì))。(3)判斷要選擇的主成分/因子

3、數(shù)目;(4)選擇主成分/因子;(5)旋轉(zhuǎn)主成分/因子;(6)解釋結(jié)果;(7)計(jì)算主成分或因子得分。2.主成分分析PCA的目標(biāo)是用一組較少的不相關(guān)變量代替大量相關(guān)變量,同時盡可能保留初始變量的信息,這些推導(dǎo)所得的變量稱為主成分,它們是觀測變量的線性組合。如第一主成分為:PC1=a1X1=a2X2+akXk 它是k個觀測變量的加權(quán)組合,對初始變量集的方差解釋性最大。第二主成分是初始變量的線性組合,對方差的解釋性排第二, 同時與第一主成分正交(不相關(guān))。后面每一個主成分都最大化它對方差的解釋程度,同時與之前所有的主成分都正交,但從實(shí)用的角度來看,都希望能用較少的主成分來近似全變量集。(1)判斷主成分

4、的個數(shù)PCA中需要多少個主成分的準(zhǔn)則:根據(jù)先驗(yàn)經(jīng)驗(yàn)和理論知識判斷主成分?jǐn)?shù);根據(jù)要解釋變量方差的積累值的閾值來判斷需要的主成分?jǐn)?shù);通過檢查變量間k*k的相關(guān)系數(shù)矩陣來判斷保留的主成分?jǐn)?shù)。最常見的是基于特征值的方法,每個主成分都與相關(guān)系數(shù)矩陣的特征值 關(guān)聯(lián),第一主成分與最大的特征值相關(guān)聯(lián),第二主成分與第二大的特征值相關(guān)聯(lián),依此類推。Kaiser-Harris準(zhǔn)則建議保留特征值大于1的主成分,特征值小于1的成分所解釋的方差比包含在單個變量中的方差更少。Cattell碎石檢驗(yàn)則繪制了特征值與主成分?jǐn)?shù)的圖形,這類圖形可以展示圖形彎曲狀況,在圖形變化最大處之上的主成分都保留。最后,還可以進(jìn)行模擬,依據(jù)與初

5、始矩陣相同大小的隨機(jī)數(shù)矩陣來判斷要提取的特征值。若基于真實(shí)數(shù)據(jù)的某個特征值大于一組隨機(jī)數(shù)據(jù)矩陣相應(yīng)的平均特征值,那么該主成分可以保留。該方法稱作平行分析。利用fa.parallel()函數(shù),可同時對三種特征值判別準(zhǔn)則進(jìn)行評價(jià)。plainview plaincopy1. library(psych)2. fa.parallel(USJudgeRatings,-1,fa=PC,n.iter=100,show.legend=FALSE,main=Screenplotwithparallelanalysis)碎石頭、特征值大于1準(zhǔn)則和100次模擬的平行分析(虛線)都表明保留一個主成分即可保留數(shù)據(jù)集的大

6、部分信息,下一步是使用principal()函數(shù)挑選出相應(yīng)的主成分。(2)提取主成分principal()函數(shù)可根據(jù)原始數(shù)據(jù)矩陣或相關(guān)系數(shù)矩陣做主成分分析格式為:principal(的,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)不需要)。plainview plaincopy1. 美國法官評分的主成分分析2. library(psych)3. pc-principal(USJudgeRatings,-1

7、,nfactors=1)4. pc此處,輸入的是沒有ONT變量的原始,并指定獲取一個未旋轉(zhuǎn)的主成分。由于PCA只對相關(guān)系數(shù)矩陣進(jìn)行分析,在獲取主成分前,原始數(shù)據(jù)將會被自動轉(zhuǎn)換為相關(guān)系數(shù)矩陣。PC1欄包含了成分載荷,指觀測變量與主成分的相關(guān)系數(shù)。如果提取不止一個主成分,則還將會有PC2、PC3等欄。成分載荷(component loadings)可用來解釋主成分的含義。此處可看到,第一主成分(PC1)與每個變量都高度相關(guān),也就是說,它是一個可用來進(jìn)行一般性評價(jià)的維度。h2柆指成分公因子方差-主成分對每個變量的方差解釋度。u2欄指成分唯一性-方差無法 被主成分解釋的比例(1-h2)。SS load

8、ings行包含了主成分相關(guān)聯(lián)的特征值,指的是與特定主成分相關(guān)聯(lián)的標(biāo)準(zhǔn)化后的方差值。Proportin Var行表示的是每個主成分對整個數(shù)據(jù)集的解釋程度。結(jié)果不止一個主成分的情況plainview plaincopy1. library(psych)2. fa.parallel(Harman23.cor$cov,n.obs=302,fa=pc,n.iter=100,show.legend=FALSE,main=Screeplotwithparallelanalysis)載荷陣解釋了成分和因子的含義,第一成分與每個身體測量指標(biāo)都正相關(guān),看起來似乎是一個一般性的衡量因子;第二主成分與前四個變量負(fù)相關(guān)

9、,與后四個變量正相關(guān),因此它看起來似乎是一個長度容量因子。但理念上的東西都不容易構(gòu)建,當(dāng)提取了多個成分時,對它們進(jìn)行旋轉(zhuǎn)可使結(jié)果更具有解釋性。(3)主成分旋轉(zhuǎn)旋轉(zhuǎn)是一系列將成分載荷陣變得更容易解釋的數(shù)學(xué)方法,它們盡可能地對成分去噪。旋轉(zhuǎn)方法有兩種:使選擇的成分保持不相關(guān)(正效旋轉(zhuǎn)),和讓它們變得相關(guān)(斜交旋轉(zhuǎn))。旋轉(zhuǎn)方法也會依據(jù)去噪定義的不同而不同。最流行的下次旋轉(zhuǎn)是方差極大旋轉(zhuǎn),它試圖對載荷陣的列進(jìn)行去噪,使得每個成分只是由一組有限的變量來解釋(即載荷陣每列只有少數(shù)幾個很大的載荷,其他都是很小的載荷)。plainview plaincopy1. install.packages(GPArot

10、ation)2. library(GPArotation)3. rc-principal(Harman23.cor$cov,nfactors=2,rotate=varimax)4. rc列名從PC變成了RC,以表示成分被旋轉(zhuǎn)觀察可以發(fā)現(xiàn)第一主成分主要由前四個變量來解釋,第二主成分主要由變量5到變量8來解釋。注意兩個主成分仍不相關(guān),對變量的解釋性不變,這是因?yàn)樽兞康娜航M沒有發(fā)生變化。另外,兩個主成分放置后的累積方差解釋性沒有變化,變的只是各個主成分對方差的解釋(成分1從58%變?yōu)?4%,成分2從22%變?yōu)?7%)。各成分的方差解釋度趨同,準(zhǔn)確來說,此時應(yīng)該稱它們?yōu)槌煞侄皇侵鞒煞?。?)獲取主成

11、分得分利用principal()函數(shù),很容易獲得每個調(diào)查對象在該主成分上的得分。plainview plaincopy1. 從原始數(shù)據(jù)中獲取成分得分plainview plaincopy1. library(psych)2. pc-principal(USJudgeRatings,-1,nfactors=1,score=TRUE)3. head(pc$scores)當(dāng)scores=TRUE時,主成分得分存儲在principal()函數(shù)返回對象的scores元素中。plainview plaincopy1. cor(USJudgeRatings$CONT,PC$scores)plainview

12、plaincopy1. 獲取主成分得分的系數(shù)plainview plaincopy1. library(psych)2. rc-principal(Harman23.cor$cov,nfactor=2,rotate=varimax)3. round(unclass(rc$weights),2)得到主成分得分:PC1=0.28*height+0.30*arm.span+0.30*forearm+0.29*lower.leg-0.06*weight-0.08*bitro.diameter-0.10*chest.girth-0.04*chest.widthPC2=-0.05*height-0.08*

13、arm.span-0.09*forearm-0.06*lower.leg+0.33*weight+0.32*bitro.diameter+0.34*chest.girth+0.27*chest.width3.探索性因子分析EFA的目標(biāo)是通過發(fā)掘隱藏在數(shù)據(jù)下的一組較少的、更為基本的無法觀測的變量,來解釋一組可觀測變量的相關(guān)性。這些虛擬的、無法觀測的變量稱作因子。(每個因子被認(rèn)為可解釋多個觀測變量間共有的方差,也叫作公共因子)模型的形式為:Xi=a1F1+a2F2+apFp+UiXi是第i個可觀測變量(i=1,2,k)Fj是公共因子(j=1,2,p)并且pkplainview plaincopy1

14、. options(digits=2)2. covariances-ability.cov$cov3. correlations-cov2cor(covariances)4. correlationsability.cov提供了變量的協(xié)方差矩陣cov2cor()函數(shù)將其轉(zhuǎn)化為相關(guān)系數(shù)矩陣(1)判斷需提取的公共因子數(shù)plainview plaincopy1. library(psych)2. convariances-ability.cov$cov3. correlations-cov2cor(covariances)4. fa.parallel(correlations,n.obs=112,f

15、a=both,n.iter=100,main=Screeplotswithparallelanalysis)若使用PCA方法,可能會選擇一個成分或兩個成分。當(dāng)搖擺不定時,高估因子數(shù)通常比低估因子數(shù)的結(jié)果好,因?yàn)楦吖酪蜃訑?shù)一般較少曲解“真實(shí)”情況。(2)提取公共因子可使用fa()函數(shù)來提取因子fa()函數(shù)的格式為:fa(r,nfactors=,n.obs=,rotate=,scores=,fm)r是相關(guān)系數(shù)矩陣或原始數(shù)據(jù)矩陣;nfactors設(shè)定提取的因子數(shù)(默認(rèn)為1);n.obs是觀測數(shù)(輸入相關(guān)系數(shù)矩陣時需要填寫);rotate設(shè)定放置的方法(默認(rèn)互變異數(shù)最小法);scores設(shè)定是否計(jì)算因

16、子得分(默認(rèn)不計(jì)算);fm設(shè)定因子化方法(默認(rèn)極小殘差法)。與PCA不同,提取公共因子的方法很多,包括最大似然法(ml)、主軸迭代法(pa)、加權(quán)最小二乘法(wls)、廣義加權(quán)最小二乘法(gls)和最小殘差法(minres)。plainview plaincopy1. 未旋轉(zhuǎn)的主軸迭代因子法plainview plaincopy1. fa-fa(correlations,nfactors=2,rotate=none,fm=pa)2. fa(3)因子旋轉(zhuǎn)plainview plaincopy1. 用正交旋轉(zhuǎn)提取因子plainview plaincopy1. fa.varimax-fa(corre

17、lations,nfactors=2,rotate=varimax,fm=pa)2. fa.varimaxplainview plaincopy1. 正交放置將人為地強(qiáng)制兩個因子不相關(guān)plainview plaincopy1. 正交旋轉(zhuǎn),因子分析的重點(diǎn)在于因子結(jié)構(gòu)矩陣(變量與因子的相關(guān)系數(shù))用斜交旋轉(zhuǎn)提取因子plainview plaincopy1. max-fa(correlations,nfactors=2,rotate=promax,fm=pa)2. maxplainview plaincopy1. 對于斜交旋轉(zhuǎn),因子分析會考慮三個矩陣:因子結(jié)構(gòu)矩陣、因子模式矩陣

18、和因子關(guān)聯(lián)矩陣plainview plaincopy1. 因子模式矩陣即標(biāo)準(zhǔn)化的回歸系數(shù)矩陣,它列出了因子的預(yù)測變量的權(quán)重;plainview plaincopy1. 因子關(guān)聯(lián)矩陣即因子相關(guān)系數(shù)矩陣;plainview plaincopy1. 因子結(jié)構(gòu)矩陣(或稱因子載荷陣),可使用公式F=P*Phi來計(jì)算得到,其中F是載荷陣,P為因子模式矩陣,Phi為因子關(guān)聯(lián)矩陣。plainview plaincopy1. fsm-function(oblique)2. if(class(oblique)2=fa&is.null(oblique$Phi)3. warning(Objectdoesntlookl

19、ikeobliqueEFA)4. else5. P-unclass(oblique$loading)6. F-P%*%oblique$Phi7. colnames(F)-c(PA1,PA2)8. return(F)9. 10. 11. fsm(max)可以看到變量與因子間的相關(guān)系數(shù)。將它們與正交旋轉(zhuǎn)所得因子載荷陣相比,發(fā)現(xiàn)該載荷陣列的噪音較大,這是因?yàn)橹霸试S潛在因子相關(guān)。雖然斜交方法更為復(fù)雜,但模型將更加符合真實(shí)數(shù)據(jù)。使用factor.plot()或fa.diagram()函數(shù),可繪制正交或斜交結(jié)果的圖形plainview plaincopy1. factor.plot(max,labels=rownames(max$loadings)plainview plaincopy1. fa.diagram(max,simple=TRUE)(4)因子得分EFA并不十分關(guān)注因子得分,在fa()函數(shù)中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論