R语言主成分和因子分析_第1页
R语言主成分和因子分析_第2页
R语言主成分和因子分析_第3页
R语言主成分和因子分析_第4页
R语言主成分和因子分析_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、R语言主成分和因子分析主成分分析(PCA )是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关 变量,这些无关变量称为主成分。探索性因子分析(EFA )是一系列用来发现一组变量的潜在结构的方法,通过寻找一组更 小 的、潜在的或隐藏的结构来解释已观测到的、变量间的关系。1.R中的主成分和因子分析R的基础安装包中提供了 PCA和EFA的函数,分别为 princomp()和factanal ()psych包中有用的因子分析函数函数描述prin cipal ()含多种可选的方差放置方法的主成分分析fa()可用主轴、最小残差、加权最小平方或最大似然法估计的因子分析fa.parallel ()含

2、平等分析的碎石图factor.plot ()绘制因子分析或主成分分析的结果fa.diagram ()绘制因子分析或主成分分析的载荷矩阵scree ()因子分析和主成分分析的碎石图PCA/EFA分析流程:(1)数据预处理;PCA和EFA都是根据观测变量间的相关性来推导结果。用户可以输入原始数据矩阵或相关系数矩阵列到principal()和fa ()函数中,若输出初始结果,相关系数矩阵将会被自动计算,在计算前请确保数据中没有缺失值;(2)选择因子分析模型。判断是 PCA (数据降维)还是 EFA (发现潜在结构)更符合你 的分析目标。若选择EFA方法时,还需要选择一种估计因子模型的方法 (如最大似

3、然估计)(3)判断要选择的主成分/因子数目;(4)选择主成分/因子;(5)旋转主成分/因子;(6) 解释结果;(7) 计算主成分或因子得分。2主成分分析PCA的目标是用一组较少的不相关变量代替大量相关变量,同时尽可能保留初始变量的信 息,这些推导所得的变量称为主成分,它们是观测变量的线性组合。如第一主成分为:PC1=a1X仁a2X2+akXk它是k个观测变量的加权组合,对初始变量集的方差解释性最大。第二主成分是初始变量的线性组合,对方差的解释性排第二,同时与第一主成分正交(不 相关)。后面每一个主成分都最大化它对方差的解释程度,同时与之前所有的主成分都正 交,但从实用的角度来看,都希望能用较少

4、的主成分来近似全变量集。(1)判断主成分的个数PCA中需要多少个主成分的准则:根据先验经验和理论知识判断主成分数;根据要解释变量方差的积累值的阈值来判断需要的主成分数;通过检查变量间k*k的相关系数矩阵来判断保留的主成分数。最常见的是基于特征值的方法,每个主成分都与相关系数矩阵的特征值关联,第一主成分与最大的特征值相关联,第二主成分与第二大的特征值相关联,依此类推。Kaiser-Harris 准则建议保留特征值大于1的主成分,特征值小于1的成分所解释的方差比包含在单个变量中的方差更少。Cattell碎石检验则绘制了特征值与主成分数的图形,这类图形可以展示图形弯曲状况,在 图形变化最大处之上的主

5、成分都保留。最后,还可以进行模拟,依据与初始矩阵相同大小的随机数矩阵来判断要提取的特征值。若基于真实数据的某个特征值大于一组随机数据矩阵相应的平均特征值,那么该主成分可 以保留。该方法称作平行分析。利用fa.parallel ()函数,可同时对三种特征值判别准则进行评价。plain view plain copy1. library(psych)2. fa.parallel(USJudgeRatings,-1,fa="PC",n.iter=100,show.legend=FALSE,main="Screen plot with parallel analysis&

6、quot;)?46BHDScretn pM Mhan 邮 i*CHsi 空 *LIIP iot>£E Js n碎石头、特征值大于1准则和100次模拟的平行分析(虚线)都表明保留一个主成分即可(2)提取主成分保留数据集的大部分信息,下一步是使用prin cipal ()函数挑选出相应的主成分。prin cipal ()函数可根据原始数据矩阵或相关系数矩阵做主成分分析格式为: prin cipal(的,n factors=,rotate=,scores=)其中:r是相关系数矩阵或原始数据矩阵;nfactors设定主成分数(默认为 1);u2栏指成分唯一性方差无法被主成分解释的比例(

7、1-h2 )。rotate指定旋转的方式默认最大方差旋转(varimax ) scores设定是否需要计算主成分得分(默认不需要)。plai n view plain copyc1. 美国法官评分的主成分分析2. library(psych)3. pc<-principal(USJudgeRatings,-1,nfactors=1)4. pc> pc/princlpal(usJudgaRatings,-1,nfactor£=l)> pcprincipal 匚ornponenxs Analyst s匸all : priinci pal (r = usjudgeRaxi

8、 ngs + -1. nfacxors = 1) standardized 1 oadings Cpatterri matrix) based upon correlation mitri xPCIh2u2INTG0.52C.S4O.1S65DMNRc.sa0.1663DILG0.70.94Q.0613CFMG0.960 射a 0720DG匚工0.960.920.07G3PREP0.8070.0299FMT0.980.950. 04 69ORAL1.000.990. 0091WRIT4 9匚0.980.0196PHYS0.390.804 2Q13RTEhl6900.970,0275PCI ss

9、 1 oad110.13Test of Ttie hypothesisProportnor Vr 0.92Thai 1 匸口mponenr 1 s suffi cl ent >The deqrees of freedom for rhe null model a.ra 55 and rhe ubjeccIue function v/as The degr ees of f r eedom for t he model are 44 and t he obj ect ve 'Funct i on was 9The tot-al runber 口千 observat i ons 帖

10、as 43 with mle Chi Square =331, 58 wiTh prob -)11 Lp: /blog* csdti. net/1 ilaij FnT based upon off di agonal values 二 1此处,输入的是没有 ONT变量的原始,并指定获取一个未旋转的主成分。由于PCA只对相关系数矩阵进行分析,在获取主成分前,原始数据将会被自动转换为相关系数矩阵。PC1栏包含了成分载荷,指观测变量与主成分的相关系数。如果提取不止一个主成分,则 还将会有PC2、PC3等栏。成分载荷(component loadings )可用来解释主成分的含义。 此处可看到,第一主

11、成分(PC1 )与每个变量都高度相关,也就是说,它是一个可用来进 行一般性评价的维度。SS loadi ngs 行包含了主成分相关联的特征值,指的是与特定主成分相关联的标准化后的 方差值。Proporti nVar 行表示的是每个主成分对整个数据集的解释程度。结果不止一个主成分的情况plai nview plain copy1. library(psych)2. fa.parallel(Harman23.cor$cov,n.obs=302,fa="pc",n.iter=100,show.legend=FALSE, main="Scree plot with par

12、allel analysis")pnftI - N "二.- GUTJ :二; . -n载荷阵解释了成分和因子的含义,第一成分与每个身体测量指标都正相关,看起来似乎是 一个一般性的衡量因子;第二主成分与前四个变量负相关,与后四个变量正相关,因此它 看起来似乎是一个长度容量因子。但理念上的东西都不容易构建,当提取了多个成分时, 对它们进行旋转可使结果更具有解释性。(3)主成分旋转旋转是一系列将成分载荷阵变得更容易解释的数学方法,它们尽可能地对成分去噪。旋转方法有两种:使选择的成分保持不相关(正效旋转),和让它们变得相关(斜交旋转) 旋转方法也会依据去噪定义的不同而不同。最流行

13、的下次旋转是方差极大旋转,它试图对载荷阵的列进行去噪,使得每个成分只是由 一组有限的变量来解释(即载荷阵每列只有少数几个很大的载荷,其他都是很小的载荷)plai n view plain copyc1. install.packages("GPArotation")2. library(GPArotation)3. rc<-principal(Harman23.cor$cov,nfactors=2,rotate="varimax")4. rc> 1ibraryCGPArorationD> rc<-pr1nc-iparl (narr

14、nan23 .coricov, nf acrors=2, rotaTa-"varimar")> rcprlnci卩且 1 coniponenxs Analysis匚all; principal(r = narrnan23.corlcov, nfactors = 2、rotate = "varinaK"5 standardised loadings Cp-iTTerri niarr 1 based upon correlatiar» matrixRdRC2h2u2height0-Q00.25C.8S0,123arm,5pans的0.0.09

15、7forearm0.920160,128lower, "leg0. SOa22a呂阳5139wl ght0.260.8S0*850.150bltro.diamater0-190.840.740.261dnmsc.girth0.110.840.720.285匚 hest. width0.260.750,620.375FJ二 1R匚2ss loadnngs352 232proportion var0.44 0.蔚Oumularlve var4<4 0.SIProportnonaimed0.5 5 0.45CurnuH ative Pr oportnori0.55 1.00Test

16、of the hyporhesns That 2 components are suffl clenr.The degrees of freedom for the null model ar? 28 and tha ohjactive funcrlonThe degrees of freedom for the model are 13 and the obje匚tive functi on was 0. 55<./ F, -./ "I " Tj-fcP fh_fi l to i / / o 1 ocsdn. net/ 11 J. SiDi6nsJ Fit base

17、d upon ofT diagonal values = 0.99列名从PC变成了 RC ,以表示成分被旋转观察可以发现第一主成分主要由前四个变量来解释,第二主成分主要由变量5到变量8来解释。注意两个主成分仍不相关,对变量的解释性不变,这是因为变量的群组没有发生变化。另外,两个主成分放置后的累积方差解释性没有变化,变的只是各个主成分对方差的解释(成分1从58%变为44%,成分2从22%变为37% )。各成分的方差解释度趋同,准确来说,此时应该称它们为成分而不是主成分。(4 )获取主成分得分利用principal()函数,很容易获得每个调查对象在该主成分上的得分。plai nview plain

18、 copy1. <strong>从原始数据中获取成分得分</strong>plai n view plain copy1. library(psych)2. pc<-principal(USJudgeRatings,-1,nfactors=1,score=TRUE)3. head(pc$scores)> pc<-principa'l, -1 , n fact or s =1, scor e=TR.U£)> head(p匚匚口包£)PCIAARONSON,L.H. -0.1857981 ALEXANDER,3.M.749

19、85ARMENTANO,A.-0704772 B£RDONP R.I.1.1358765BRACKEhl, J J-2.1566211BURNS,E* 氐0.76940当scores=TRUE时,主成分得分存储在principal ()函数返回对象的scores元素中。plai nview plain copy1. cor(USJudgeRatings$CONT,PC$scores)plai nview plain copyc1. <strong>获取主成分得分的系数 </strong>plai nview plain copy1. library(psych

20、)2. rc<-principal(Harman23.cor$cov,nfactor=2,rotate="varimax")3. round(unclass(rc$weights),2)> 1ibraryfpsych、rc<-principal(CHarman22. corlcovs nfa<toir=2, roraTe= "varlmx"2> roundCunei ass2)只匚1RC2height0.23-0.05arm.span0.30-0.08forea rin0.30-0_09. leg0.28-0_06wi gh

21、t-0.060 .刘bItro. diaineter0l32chest.girth00chest, width-0.040.27得到主成分得分:PC1=0.28*height+0.30*arm.spa n+0.30*forearm+0.29*lower.leg-0.06*weight-0.08*bitro.di ameter-0.10*chest.girth-0.04*chest.widthPC2=-0.05*height-0.08*arm.spa n-0.09*forearm-0.06*lower.leg+0.33*weight+0.32*bitro.di ameter+0.34*chest

22、.girth+0.27*chest.width3. 探索性因子分析EFA的目标是通过发掘隐藏在数据下的一组较少的、更为基本的无法观测的变量,来解释 一组可观测变量的相关性。这些虚拟的、无法观测的变量称作因子。(每个因子被认为可 解释多个观测变量间共有的方差,也叫作公共因子)模型的形式为:Xi=a1F1+a2F2+ apFp+UiXi是第i个可观测变量(i=1,2,k)Fj是公共因子(j=1,2,p并且p<kplai nview plain copy1. options(digits=2)2. covariances<-ability.cov$cov3. correlations&l

23、t;-cov2cor(covariances)4. correlations> apt 1ons(digiT£ = 2J> cavariances<-ab1'l 1ty. cov?cav> COrre1ations-<-cofv2cor(cOvar1ances)> correl a.T 1 onsgeneralpi ctureblocksmazereadlngvocabgeneral1.000.470. 550. 340+ 5SQ51pi ct are0.17l000. 570.190.26Q. 24blocks0550. 571,000,

24、4 50. 350. 36帕200.340.190.451.000.180. 22reading0. 590.260.35Q.1S1.000. 79vocab0. 510.240.360-220,791, 00ability.cov提供了变量的协方差矩阵cov2cor ()函数将其转化为相关系数矩阵(1)判断需提取的公共因子数plai nview plain copy1. library(psych)2. convariances<-ability.cov$cov3. correlations<-cov2cor(covariances)4. fa.parallel(correlat

25、ions,n.obs=112,fa="both",n.iter=100,main="Scree plots with parallel analysis")若使用PCA方法,可能会选择一个成分或两个成分。当摇摆不定时,高估因子数通常比低 估因子数的结果好,因为高估因子数一般较少曲解真实”情况。(2)提取公共因子可使用fa ()函数来提取因子fa ()函数的格式为:fa (r, nfactors= , n.obs= , rotate= , scores= , fm)r是相关系数矩阵或原始数据矩阵; nfactors设定提取的因子数(默认为 1);n.obs

26、是观测数(输入相关系数矩阵时需要填写); rotate设定放置的方法(默认互变异数最小法); scores设定是否计算因子得分(默认不计算); fm设定因子化方法(默认极小残差法)。与PCA不同,提取公共因子的方法很多,包括最大似然法( ml)、主轴迭代法(pa )、 加权最小二乘法(wls )、广义加权最小二乘法(gls )和最小残差法(minres )。plai nview plain copyc1. <strong>未旋转的主轴迭代因子法 </strong>plai nview plain copy1. fa<-fa(correlations,nfactor

27、s=2,rotate="none",fm="pa")2. fa> r<-Tr£l at 1 ons, ntict-2,rotste-"nonetn-St aridar di zed loadings fpttenri matrPA_LPA2h2U2anuener0.750.070.570,4321-0p1 CtlT00.52Q.220.80d231,7bl Dckt0-750. 1?0.810.186丄&rase0.390+2 20.200.7981.6readingL . SI-0. 5L0.910.059L.T

28、aoceb0.73-0.390.690.5131,5Facto- AnalysT? using rid hod cil1: fa(rrcrrali匸nficiors2, roETa = "nnnt"r fir > "p*1 baec M3 an car rtlnticin matrixPA1 PA? 菇 loadings2. ?5 讥殆propQT Ion var0.6 D.14Cuinulative Yar0.*&Frcifiotiqn £Kf 1 a-!nsd 。了了 Q+2占 Cuirulative Prcpcrion 0. 77 1

29、,00vaai i 11 tan CDttip 1 e-i t ty -1. 5rest Df the hzrhesl: that 2 roctor: are sufficient.The degrees of fresdau for the nul model arc 15 and the objective function 斗as 2.5The cieq"ees of frascini for the nrozlela and the obectlua function wjs D, 07The roc ptein cua*& trr xht resldis .QJr

30、Iib* dr correctrhaoc£qudf世 of i hm r006ba sac upon off Ji Agonal- Q* 99eaues of cGtor s;ore adecua<yPM PA2Correlaflun of 5ccw&5 with factor-s0. 6 0. 2multip le R square at scores with factors(k S3 0. £4Ml nlimjm cnrre1iT:1on of possible facior scar si b. 80 o.(3 )因子旋转plai nview plai

31、n copy1.<strong> 用正交旋转提取因子 </strong>plai nview plain copy1.fa.varimaxv-fa(correlations,nfactors=2,rotate="varimax",fm="pa")2.fa.varimaxplainview plain copy1.<strong>正交放置将人为地强制两个因子不相关</strong>plai nview plain copy1.<strong>正交旋转,因子分析的重点在于因子结构矩阵(变量与因子的相

32、关系数)</strong>、fa.varimax/faCcorrslaTlons,nfactors=2,rotite= virimax", fm="pa"5PAIPA2h2UZcomgeneral0.490. 57a 5;0.4322.0pncture0.160旳0. 6231.1blocks0,180.89C.S30,1661,1maze0.130.430.200* 7981*2readlng0-9M0.200.10,丽1.1vocab0.800.236殆90. 3131.2f且匚tor Analysis usnng method = call: f

33、aCr = standardized> fa.vrirnax匚口 rrelari ons, rrf actors = 2, r ox ax e = "varlmax". fm = "pa" loadlrg Cpttern matrix) based upon corrElztio门 matrixPAlPA 255 loadnngs1.831.75Proport nonvrA 30029cumul dfivevar'0300 巧0pr opart nonEjcplcil ned0. 510,49cumulativeproporxon0. 51

34、1.00Mean ltEin cotnplexity =Test of the hypcThesns That 2 factors are sufficieritThe dgreesThe degreesof freedom for the null model are 15 and the objective function was of freedom for The model are 4 ind the abjQcrivq function0.07The 口口t near square of the residual5 (RM5R.) 150. 03The df <orre屯

35、1:已时 retre mean squdre of the resi dual s 1 s Q. Fit based upcn off di agonal values = 099Measures of factor score adequacyPAI PA? correlari on of scores with fact口rs0*96 0 92Multi pie R square of scores wlTh factor's0+91 0&5Mlnimijni corr elaTlon of possl bl e fact or scares 03 0 了亍用斜交旋转提取因

36、子plai nview plain copy1. max<-fa(correlations,nfactors=2,rotate="promax",fm="pa")2. maxplai nview plain copyc1. vstrong>对于斜交旋转,因子分析会考虑三个矩阵:因子结构矩阵、因子模式矩阵和因子关联矩 阵 </strong>plai nview plain copyc1. <strong>因子模式矩阵即标准化的回归系数矩阵,它列出了因子的预测变量的权重; v/strong>p

37、lai nview plain copy1. <strong>因子关联矩阵即因子相关系数矩阵;</strong>plai nview plain copy1. <strong>因子结构矩阵(或称因子载荷阵),可使用公式 F=P*Phi来计算得到,其中F是载荷 阵,P为因子模式矩阵,Phi为因子关联矩阵。</strong>、fa. prr el it 1 ons, nfactors=2, roraTe=,promay",s> fG-promaxFactor Analysis usnng method = paPA?1.760.091

38、.00匚al 1: fa(r = 匚广ElmFcn行.nfactors = 2, rotate = "promax", ftn = "pa"L) standardized loadings Cpattern m且trlx basEd upon correlation matrixPAIPA2hzU2camgeneral0.490. 570-4321.SpF cture-0-M0.640. 3865231.0blocks-0_120.980. S30-丄茁1.0maze-0,010.456 20Cl7981.0readlng1.Q1-0.110, 91Cl

39、08Q1,0vocab0.84-0.020. &90,1.0PAI55 "loadnngs1.32proportnon Var0了QCumuldXnve VrO.MQProportion Explaiined 0. 51CumuHative Propcrtion 0. 51with factor cornel arions ofPAI PA2PAI 1.00 6 57PA2 0.57 1.00Mean item complexity = 丄2Test of the hypotheses thax 2 factol"W are sufficientwas k07The

40、 degrees of freedom for the riul-! model are 15 and the objective functionThe degrees of freedom for the model are 4 and the objective functi口门 was 0The roar meari square nf th乜 residuals 匸口mg口) 1s 0.03The df corecraci root mean square of the rduals is 0_06Fir based upon off diagonal values = a号9Mea

41、sures of factor score adequacyPAI PA2匸relarlan of scores wluh factors097 094Mui tn p"l e R square of scores with f actors0_ 93 0. 39correlation of possible factor scor0.86 0_771.fsm<-function(oblique)2.if(class(oblique)2="fa"&is.null(oblique$Phi)3.warning("Object doesn't look like oblique EFA")4.else5.P<-unclass(oblique$loading)6.F<-P%*%oblique$Phi7.colnames(F)<-c("PA1","PA2")8.return (F)9.10.11.fsm(max)> funcflontobliquM+ Iffclass Cobl 1 que) 2="fah,&-1s. nulobllqueSPhlf+ warnlrigC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论