多元统计正交因子分析实验报告x
时间:2020-09-29 16:14:28 来源:勤学考试网 本文已影响 人
正交因子分析(设计性实验)
(Orthogonal factor analysis)
实验原理:因子分析是主成分分析的推广和发展, 其目的是用少数几个不可观测 的隐变量,即因子,来解释原始变量之间的相关关系,它也是属于多元分析中处 理降维的一种统计方法。因子分析的基本思想是通过变量间的协方差矩阵 (或相 关系数矩阵)内部结构的研究,寻找能控制所有变量的少数几个因子去描述多个 变量之间的相关关系。因子分析中最常用的数学模型是正交因子模型,其特点是 模型中的因子相互之间正交。
实验题目一:
下表中给出了二战以来奥运会运动员十项运动成绩的相关系数矩阵: (E9a6)
100米
1.00 .
跳远
0.59 1.00 . . . . . . .
铅球
0.35 0.42 1.00. . . . . .
跳咼
0.34 0.51 0.38 1.00. . . . .
400米
0.63 0.49 0.19 0.29 1.00 . . . .
110米跨栏
0.40 0.52 0.36 0.46 0.34 1.00 . . .
铁饼
0.28 0.31 0.73 0.27 0.17 0.32 1.00 . .
撑竿跳高
0.20 0.36 0.24 0.39 0.23 0.33 0.24 1.00 .
标枪
0.11 0.21 0.44 0.17 0.13 0.18 0.34 0.24 1.00
1500米
-0.07 0.09 -0.08 0.18 0.39 0.00 -0.02 0.17 -0.00 1.00
实验要求:
试由相关系数矩阵作因子分析;covmat
试根据因子载荷,并结合题目背景知识,对公共因子进行命名
实验题目二:下表中给出了不同国家及地区的女子径赛记录: (t1a7)
100 m 200 m 400 m 800 m 1500 m 3000 m Marathon
Country (s) (s) (s) (mi n) (mi n) (mi n) (mi n)
arge nti n
11.61
22.94
54.5
2.15
4.43
9.79
178.52
australi
11.2
22.35
51.08
1.98
4.13
9.08
152.37
austria
11.43
23.09
50.62
1.99
4.22
9.34
159.37
belgium
11.41
23.04
52
2
4.14
8.88
157.85
bermuda
11.46
23.05
53.3
2.16
4.58
9.81
169.98
brazil
11.31
23.17
52.8
2.1
4.49
9.77
168.75
burma
12.14
24.47
55
2.18
4.45
9.51
191.02
canada
11
22.25
50.06
2
4.06
8.81
149.45
chile
12
24.52
54.9
2.05
4.23
9.37
171.38
china
11.95
24.41
54.97
2.08
4.33
9.31
168.48
Columbia
11.6
24
53.26
2.11
4.35
9.46
165.42
cookis
12.9
27.1
60.4
2.3
4.84
11.1
233.22
costa
11.96
24.6
58.25
2.21
4.68
10.43
171.8
czech
11.09
21.97
47.99
1.89
4.14
8.92
158.85
denmark
11.42
23.52
53.6
2.03
4.18
8.71
151.75
domrep
11.79
24.05
56.05
2.24
4.74
9.89
203.88
finland
11.13
22.39
50.14
2.03
4.1
8.92
154.23
france
11.15
22.59
51.73
2
4.14
8.98
155.27
gdr
10.81
21.71
48.16
1.93
3.96
8.75
157.68
frg
11.01
22.39
49.75
1.95
4.03
8.59
148.53
gbni
11
22.13
50.46
1.98
4.03
8.62
149.72
greece
11.79
24.08
54.93
2.07
4.35
9.87
182.2
guatemal
11.84
24.54
56.09
2.28
4.86
10.54
215.08
hun gary
11.45
23.06
51.5
2.01
4.14
8.98
156.37
in dia
11.95
24.28
53.6
2.1
4.32
9.98
188.03
indon esi
11.85
24.24
55.34
2.22
4.61
10.02
201.28
irela nd
11.43
23.51
53.24
2.05
4.11
8.89
149.38
israel
11.45
23.57
54.9
2.1
4.25
9.37
160.48
italy
11.29
23
52.01
1.96
3.98
8.63
151.82
japa n
11.73
24
53.73
2.09
4.35
9.2
150.5
ken ya
11.73
23.88
52.7
2
4.15
9.2
181.05
korea
11.96
24.49
55.7
2.15
4.42
9.62
164.65
dprkorea
12.25
25.78
51.2
1.97
4.25
9.35
179.17
luxembou
12.03
24.96
56.1
2.07
4.38
9.64
174.68
malaysia
12.23
24.21
55.09
2.19
4.69
10.46
182.17
mauritiu
11.76
25.08
58.1
2.27
4.79
10.9
261.13
mexico
11.89
23.62
53.76
2.04
4.25
9.59
158.53
n etherla
11.25
22.81
52.38
1.99
4.06
9.01
152.48
nz
11.55
23.13
51.6
2.02
4.18
8.76
145.48
no rway
11.58
23.31
53.12
2.03
4.01
8.53
145.48
png
12.25
25.07
56.96
2.24
4.84
10.69
233
philippi
11.76
23.54
54.6
2.19
4.6
10.16
200.37
pola nd
11.13
22.21
49.29
1.95
3.99
8.97
160.82
portugal
11.81
24.22
54.3
2.09
4.16
8.84
151.2
fact1.ro
fact1.ro #输出旋转的结果
fact1.ro
fact1.ro #输出旋转的结果
ruma nia
11.44
23.46
51.2
1.92
3.96
8.53
165.45
sin gapor
12.3
25
55.08
2.12
4.52
9.94
182.77
spa in
11.8
23.98
53.59
2.05
4.14
9.02
162.6
swede n
11.16
22.82
51.79
2.02
4.12
8.84
154.48
switzerl
11.45
23.31
53.11
2.02
4.07
8.77
153.42
taipei
11.22
22.62
52.5
2.1
4.38
9.63
177.87
thaila nd
11.75
24.46
55.8
2.2
4.72
10.28
168.45
turkey
11.98
24.44
56.45
2.15
4.37
9.38
201.08
usa
10.79
21.83
50.62
1.96
3.95
8.5
142.72
ussr
11.06
22.19
49.19
1.89
3.87
8.45
151.22
wsamoa
12.74
25.85
58.73
2.33
5.81
13.04
306
(数据来源:
1984年洛杉机奥运会
IAAF/AFT
径赛与田赛统计手册)
ussr
11.06
22.19
49.19
1.89
3.87
8.45
151.22
ruma nia
11.44
23.46
51.2
1.92
3.96
8.53
165.45
实验要求:
根据以上数据对女子径赛项目作因子分析;
对公共因子进行解释;
计算各个国家的第一因子得分并进行 排名。要求列出排名前10的国家或地
区,并给出中国的名次
实验题目一分析报告:
R程序:
record<-read.table("data4.txt",head=F)
#导入数据
record<-record[,-1]
#删除第一列
recordv-as.matrix(record)
#将原数据矩阵化
opti on s(digits=2)
#保留两位小数
pca.data1<-pri ncomp(covmat=record)
#以相关系数矩阵作为基础,建立主成分分析
summary(pca.data1)
#输出主成分分析报表
fact1.st<-factanal(covmat=record,factors=5,rotation="none") #作因子分析,不旋转 fact1.ro<-facta nal(covmat=record,factors=5,rotati on="varimax")#作因子分析,旋转
fact1.st#输出不旋转的结果
fact1.st
apply((fact1.ro$loadi ngs)A2,1,sum)#计算共同度fact2.ro<-facta nal(covmat=record,factors=4,rotati on="varimax")#作因子分析,旋转fact2.ro#输出旋转的结果apply((fact2.ro$loadi ngs)A2,1,sum)#计算共同度输出结果及分析:(1
apply((fact1.ro$loadi ngs)A2,1,sum)
#计算共同度
fact2.ro<-facta nal(covmat=record,factors=4,rotati on="varimax")#作因子分析,旋转
fact2.ro
#输出旋转的结果
apply((fact2.ro$loadi ngs)A2,1,sum)
#计算共同度
输出结果及分析:
(1)试由相关系数矩阵作因子分析;
record<-read.table("data4.txt",head=F)
#导入数据
record<-record[,-1]
#删除第一列
recordv-as.matrix(record)
#将原数据矩阵化
opti on s(digits=2)
#保留两位小数
pca.data1<-pri ncomp(covmat=record)
#以相关系数矩阵作为基础,建立主成分分析
summary(pca.datal)
#输出主成分分析报表
为了确定因子分析中因子的数目,我们先对相关系数矩阵做主成分分析
表1主成分分析报表
Comp. Comp. Comp. Comp. Comp. Comp. Comp. Comp. Comp. Comp.
Stan dard
0.726
0.619
0.485
0.456
deviati on
1.95
1.23
1.06
0.956
0.849
0.771
Proporti on of
Varia nee
0.38
0.15
0.11
0.091
0.072
0.059
0.053
0.038
0.024
0.021
Cumulative
Proporti on
0.38
0.53
0.64
0.733
0.805
0.865
0.917
0.956
0.979
1.000
1
2
3
6
8
9
10
4
5
7
由方差累计贡献率得到,在第五主成分,累积贡献率达到了 80%以上,并趋
于稳定。我们确定因子分析中因子数目为 5.
fact1.st<-factanal(covmat=record,factors=5,rotation="none") #作因子分析,不旋转 fact1.ro<-facta nal(covmat=record,factors=5,rotati on="varimax")#作因子分析,旋转
fact1.st#输出不旋转的结果
fact1.st
apply((fact1.ro$loadi ngsF2,1,sum) # 计算共同度
做因子分析,得到未旋转的因子载荷以及旋转的因子载荷
表2未旋转的因子载荷
Factor
Factor1
Factor2
Factor3
Factor4
Factor5
100米
0.208
0.791
0.301
-0.167
跳远
0.378
0.595
0.246
0.242
铅球
0.644
0.761
跳咼
0.415
0.344
0.157
0.471
-0.139
400米
0.446
0.688
-0.113
-0.203
0.116
110米跨栏
0.265
0.435
0.261
0.343
铁饼
0.503
0.534
撑竿跳高
0.307
0.240
0.402
0.214
标枪
0.313
0.314
0.378
1500米
0.707
-0.704
累积贡献率
0.2
0.38
0.55
0.616
0.640
表3旋转的因子载荷
Factor
Factor1
Factor2
Factor3
Factor4
Factor5
Communa
lities
100米
0.171
0.815
0.276
-0.141
0.79
跳远
0.223
0.480
0.580
0.62
铅球
0.955
0.139
0.241
1.00
跳咼
0.211
0.152
0.687
0.117
0.56
400米
0.760
0.193
0.326
0.126
0.74
110米跨栏
0.187
0.278
0.565
0.45
铁饼
0.693
0.125
0.194
0.111
0.55
撑竿跳高
0.112
0.501
0.119
0.282
0.36
标枪
0.408
0.140
0.401
0.35
1500米
0.989
1.00
累积贡献率
0.17
0.34
0.50
0.61
0.640
观察表格中被标注为绿色的两个因子载荷(标枪项目一行),在 Factorl中 的因子载荷为0.408,在Factor5中的因子载荷为0.401,比较两个因子载荷, 0.408>0.401,因此我们最终选取 0.408。这样一来,我们做因子分时,只需要 4 个因子即可。因此,我们下面再做 4个因子的旋转因子分析。
fact2.ro<-facta nal(covmat=record,factors=4,rotati on="varimax")#乍因子分析,旋转 fact2.ro #输出旋转的结果
apply((fact2.ro$loadi ngsF2,1,sum) # 计算共同度
表4旋转的因子载荷
Factor
Factor1
Factor2
Factor3
Factor4
Communa
lities
100米
0.167
0.857
0.246
-0.138
0.84
跳远
0.239
0.476
0.581
0.62
铅球
0.963
0.153
0.201
1.00
跳咼
0.242
0.172
0.632
0.113
0.50
400米
0.710
0.236
0.331
0.67
110米跨栏
0.205
0.261
0.588
0.46
铁饼
0.699
0.133
0.179
0.54
撑竿跳高
0.138
0.512
0.117
0.30
标枪
0.418
0.175
0.21
1500米
0.113
0.988
1.00
累积贡献率
0.18
0.34
0.50
0.61
(2)试根据因子载荷,并结合题目背景知识,对公共因子进行命名
由旋转后的载荷可发现,第一因子中,铅球、铁饼和标枪的载荷较大,可命 名为投掷因子;第二因子中,100米和400米的载荷较大,可命名为短跑因子; 第三因子中,跳远、跳高、110米跨栏、撑竿跳高较大,可命名为弹跳因子;第 四因子中,1500米的载荷较大,可命名为长跑因子。
实验题目二分析报告:
R程序:
b<-read.csv("data42.csv")
#导入数据
b1<-b[,-1]
#删除第一列
pc.b1<-pri ncomp(b1,cor=T)
#做主成分分析
summary(pc.b1)
#主成分分析结果
fact.b1<-facta nal(b1,factor=2,method="mle",rotatio n="non e") # 未旋转的因子分析
fact.b1$loadi ngs
#输出不旋转的结果
fact.b2<-facta nal(b1,factor=2,method="mle",rotati on="varimax",scores="regressi on")
#旋转的因子分析
fact.b2$loadi ngs
#输出旋转的结果
apply((fact.b2$loadi ngs)A2,1,sum)
#计算共同度
shapiro.test(fact.b2$scores)
#检验正态性
fact.b3<-facta nal(b1,factor=2,method="mle",rotati on="varimax",scores=" Bartlett")
b[order(fact.b3$scores[,1],decreasi ng=F),1] # 排名
输出结果及分析:
(1)根据以上数据对女子径赛项目作因子分析;
b<-read.csv("data42.csv") #导入数据
b1<-b[,-1]
pc.b1<-pri ncomp(b1,cor=T)
summary(pc.bl)
表4主成分分析结果
Comp.
1
Comp.
2
Comp.
3
Comp.
4
Comp.
5
Comp.
6
Comp.
7
Sta ndard deviati on
2.41
0.808
0.548
0.354
0.2320
0.1976
0.1498
Proporti on of
Varia nee
0.83
0.093
0.043
0.018
0.0077
0.0056
0.0032
Cumulative
Proporti on
0.83
0.923
0.966
0.984
0.9912
0.9968
1.0000
根据主成分分析的结果可以看出,在第2个特征根处,累计贡献率就已经达 到了 92.3%。因此,我们选用2个因子进行因子分析。
fact.blv-facta nal(b1,factor=2,method="mle",rotati on=" non e")
fact.b1$loadi ngs
fact.b2<-facta nal(b1,factor=2,method="mle",rotati on="varimax",scores="regressi on")
fact.b2$loadi ngs
ap ply((fact.b2$loadi ngs)A2,1,sum)
表5未旋转的因子载荷
Factorl
Factor2
X100.m..s.
0.95
-0.13
X200.m..s.
0.97
-0.22
X400.m..s.
0.90
0
X800.m..mi n.
0.83
0.38
X1500.m..mi n.
0.84
0.53
X3000.m..mi n.
0.84
0.49
Maratho n..mi n.
0.80
0.40
表6旋转的因子载荷
Factor1
Factor2
Communa lities
X100.m..s.
0.44
0.85
0.92 丁
X200.m..s.
0.38
0.92
1
X400.m..s.
0.57
0.69
0.81
X800.m..mi n.
0.78
0.46
0.83
X1500.m..mi n.
0.92
0.38
0.99
X3000.m..mi n.
0.89
0.40
0.95
Marath on ..mi n.
0.79
0.42
0.8
累积贡献率
0.50
0.90
1
得到旋转前后的载荷矩阵
对公共因子进行解释;
由旋转后的载荷可发现,第一因子中,标枪和铁饼 800m、1500m、3000m、 马拉松载荷较大,可命名为长跑因子;第二因子中, 100米、200米、400米的载
荷较大,可命名为短跑因子;
计算各个国家的第一因子得分并进行排名。 要求列出排名前10的国家或地 区,并给出中国的名次。
fact.b2<-facta nal(b1,factor=2,method="mle",rotati on="varimax",scores="regressi on") shapiro.test(fact.b2$scores)
fact.b3<-facta nal(b1,factor=2,method="mle",rotati on="varimax",scores="Bartlett")
b[order(fact.b3$scores[,1],decreasi ng=F),1]
我们先对用线性回归方法得到的因子进行正态性检验, 得到p值为7.787e-06,
小于0.05,拒绝原假设为正态分布,因子不为正态,说明原始数据也不是正态分 布,所以不能用要求用正态假设的Regressior方法做因子得分,因子得分选用 Bartlett 方法。
排名
国家
1
dprkorea
2
ruma nia
3
no rway
4
ussr
5
italy
6
Portugal
7
spa in
8
switzerl
9
irela nd
10
chile
得到前10的国家,由结果得到:中国为第 23名