多元统计分析上机题之R语言实现(因子分析)

来源:互联网 发布:mac final cutpro x 编辑:程序博客网 时间:2024/05/21 07:53

引言

虽然没有仔细推导书中较为繁琐的公式,但是对于以应用为主的我来说已经够了。最重要的还是了解多元统计的思想和解决问题分析步骤。
因子分析也是一种降维技术,但是它跟主成分分析又有很大不同。主成分分析主要是将多个变量线性组合为少数几个变量来表示原来绝大部分信息。而因子分析主要是寻找多个变量之间隐藏的不能观测的因子,来表示各个变量之间的相关关系。比如从高中各科成绩中通过因子分析来找到理科成绩因子、文科成绩因子等。
数据与书籍下载前往 多元统计分析上机题之R语言实现(多元正态分布) 。

因子分析的基本步骤

1.为避免各变量量纲对结果的不利影响,数据标准化处理,用scale()函数2.标准化数据的相关矩阵,用cor()函数3.求相关矩阵的特征值和单位特征向量,用eigen()函数,根据特征值大于1的个数,确定因子的个数4.因子分析,利用psych包中的fa(r=cor_a,nfactors=2,fm="pa",rotate="none")函数,该函数为多元统计分析的一个包;nfactors为因子个数,fm为估计解的方法:pa为主成分法,ml为极大似然估计法;rotate为是否进行旋转;5.根据因子载荷矩阵进行解释,如果不好解释,进行因子旋转,然后进行解释。解释可结合fa.diagram函数对载荷矩阵进行可视化6.因子旋转:fa(r=cor_a,nfactors=2,fm="pa",rotate="varimax"),用最大方差旋转正交法7.求因子得分:由最小二乘法和回归法:fa(r=cor_a,nfactors=2,fm="pa",rotate="none",scores="regression")

9.18

##(a)主成分解 调用上面构造的factor_pf函数##生成题目所需数据a<-c(1,0,0,0,0,0,     0.4919,1,0,0,0,0,     0.2365,0.3127,1,0,0,0,     0.4653,0.3506,0.4108,1,0,0,     -0.2277,-0.1917,0.0647,-0.2249,1,0,     0.0652,0.2045,0.2493,0.2293,-0.2144,1)cor_x<-matrix(a,6,byrow = TRUE)cor_t<-t(cor_x)diag(cor_t)=0cor_y<-cor_x+cor_tcor_a<-cor_y[1:4,1:4]#加载psych包(一个多元统计分析的包)library(psych)##一个主成分解fa(r=cor_a,nfactors=1,fm="pa",rotate="none")##二个主成分解fa(r=cor_a,nfactors=2,fm="pa",rotate="none")##(b)极大似然解##一个极大似然解fa(r=cor_a,nfactors=1,fm="ml",rotate="none")##二个极大似然解fa(r=cor_a,nfactors=2,fm="ml",rotate="none")##(c)##使用最大方差旋转正交法fa(r=cor_a,nfactors=1,fm="pa",rotate="varimax")##其他类似 略##(d)eigen(cor_y)#观察相关系数矩阵的特征值,因子个数取特征值大于1的个数,由于第三个特征值几乎接近于1,也取在内,故因子个数取3.##旋转之前fa(r=cor_y,nfactors=3,fm="pa",rotate="none")##旋转之后fa(r=cor_y,nfactors=3,fm="pa",rotate="varimax")##解释略

9.19

##(a)求极大似然解#导入原始数据,并标准化data_9.19<-read.table("/home/wangjianlong/files/college/duoyuantongji/JohnsonWichern Data sets/T9-12.DAT")cen_data<-scale(data_9.19)cor_m<-cor(cen_data)##m为2m2<-fa(r=cor_m,nfactors=2,fm="ml",rotate="none")#第一因子为销售人员的综合能力因子##m为3m3<-fa(r=cor_m,nfactors=3,fm="ml",rotate="none")##(b)m20<-fa(r=cor_m,nfactors=2,fm="ml",rotate="varimax")##第一因子似乎将数学能力与销售能力结合起来,表示销售人员的基本能力####第二因子可解释为销售人员的创造力因子m30<-fa(r=cor_m,nfactors=3,fm="ml",rotate="varimax")##不好解释##(c)#三个因子解释了大部分共性方差,m选择3更好
0 0
原创粉丝点击