声明:文章参考数学建模清风的网课编写。
因子分析由斯皮尔曼在1904年提出,其在某种程度上可以被看成主成分分析的推广和扩展。
因子分析通过研究变量间的相关系数矩阵,把这些变量间错综复杂的关系归结成少数几个综合因子,由于归结出的因子个数少于原始变量的个数,但它们又几乎包含原始变量的全部信息,所以也是对原有数据的降维。
由于因子往往比主成分更易得到解释,故因子分析比主成分分析更容易成功。
假设有n个样本,p个指标,构成大小为n*p的样本矩阵x:
x
=
[
x
11
x
12
.
.
.
x
1
p
x
21
x
22
.
.
.
x
2
p
⋮
⋮
⋱
⋮
x
n
1
x
n
2
.
.
.
x
n
p
]
=
[
x
1
,
x
2
,
…
,
x
p
]
x =
因子分析:
x
1
,
x
2
,
.
.
.
,
x
p
⇒
f
1
,
f
2
,
.
.
.
,
f
m
(
m
≤
p
)
,
x_{1},x_{2},...,x_{p}\Rightarrow f_{1},f_{2},...,f_{m}(m\le p),
x1,x2,...,xp⇒f1,f2,...,fm(m≤p), 且它们满足:
{
x
1
=
u
1
+
a
11
f
1
+
a
12
f
2
+
.
.
.
+
a
1
m
f
m
+
ε
1
x
2
=
u
2
+
a
21
f
1
+
a
22
f
2
+
.
.
.
+
a
2
m
f
m
+
ε
2
⋮
x
p
=
u
p
+
a
p
1
f
1
+
a
p
2
f
2
+
.
.
.
+
a
p
m
f
m
+
ε
p
\left\{
其中
u
i
u_{i}
ui是
x
i
x_{i}
xi的均值,
a
i
j
a_{ij}
aij是
x
i
x_{i}
xi在因子
f
j
f_{j}
fj上的载荷,
f
1
,
f
2
,
.
.
.
,
f
m
f_{1},f_{2},...,f_{m}
f1,f2,...,fm被称为公共因子,
ε
i
\varepsilon _{i}
εi被称为特殊因子,各因子的线性组合构成了原始的指标。注意:表示式中的每一个
x
i
和
f
i
x_{i}和f_{i}
xi和fi都是一个包含n个元素的列向量。
上述式子可以简记为:
x
=
u
+
A
f
+
ε
x = u + Af + \varepsilon
x=u+Af+ε
其中:
A
p
×
m
=
a
i
j
,
u
=
[
u
1
u
2
⋮
u
p
]
,
f
=
[
f
1
f
2
⋮
f
m
]
,
ε
=
[
ε
1
ε
2
⋮
ε
p
]
A_{p\times m} = a_{ij}, \ \ \ u =
并假设公共因子彼此步相关,且具有单位方差;特殊因子彼此不相关且与公共因子不相关。
因子分析有几个比较重要的数据需要重点说明一下:
将数据导入SPSS后点击分析->降维->因子:

选择要分析的变量:

在第2步页面,单击右侧描述并按图进行勾选:

单变量描述:输出参与分析的每个原始变量的均值、标准差和有效取值个数。
初始解:输出未经过旋转直接计算得到的初始公因子、初始特征值和初始方差贡献率等信息。
系数:输出初始分析变量间的相关系数矩阵。
显著性水平:输出每个相关系数对于单侧假设检验的显著性水平。
KMO检验和巴特利特球形检验:进行因子分析前要对数据进行KMO检验和巴特利特球形检验。简单来说KMO检验标准:KMO>0.9,非常适合;0.8
在第2步页面,单击右侧提取并按图依次选择。注意此步中没有选择要提取因子数,需要经过一次分析观察碎石图选择合适的因子数。

在第2步页面,单击右侧旋转并按图依次选择:

在第2步页面,单击右侧得分并按图依次选择:

确定因子数目:
碎石检验(scree test)是根据碎石图来决定因素数的方法。Kaiser提出,可通过直接观察特征值的变化来决定因素数。当某个特征值较前一特征值的值出现较大的下降,而这个特征值较小,其后面的特征值变化不大,说明添加相应于该特征值的因素只能增加很少的信息,所以前几个特征值就是应抽取的公共因子数。
从碎石图可以看出,前两个因子对应的特征值的变化较为陡峭,从第三个因子开始,特征值的变化较为平坦,因此我们应选择两个因子进行分析。(SPSS中文版翻译成了组件,实际应翻译为因子)。

根据第7步确定好的因子数重新进行因子分析得出最终结果。
数据是否适合因子分析(如图KMO>0.9,并且巴特利球形检验显著性<0.05。非常适合。):

公因子方差,即共性方差。载荷矩阵
A
A
A的行元素平方和
h
i
2
=
∑
j
=
1
m
a
i
j
2
h_{i}^{2} = \sum_{j=1}^{m}a_{ij}^{2}
hi2=∑j=1maij2表示原始变量
x
i
x_{i}
xi对公共因子的依赖程度。

100米(s)这个变量的公因子方差为0.95,这可以解释为我们提取的两个公共因子对100米(s)这个变量的方差贡献率为95%,即这两个公共因子能够反映出(或者说保留)100米(s)这个变量95%的信息。
总方差解释。
从“初始特征值”一栏中可以看出,前2个公共因子解释的累计方差达93.747%,而后面的公共因子的特征值较小,对解释原有变量的贡献越来越小,因此提取两个公共因子是合适的。
“提取载荷平方和” 一栏是在未旋转时被提取的2个公共因子的方差贡献信息,其与“初始特征值”栏的前两行取值一样。
“旋转载荷平方和”是旋转后得到的新公共因子的方差贡献信息,和未旋转的贡献信息相比,每个公共因子的方差贡献率有变化,但最终的累计方差贡献率不变
成分矩阵,即载荷矩阵
A
A
A。
注意:只解释旋转后的成分矩阵。因为旋转的作用使得旋转后的矩阵更容易解释。

因子1(SPSS翻译为成分)在后5个变量的绝对值取值较大;因子2在前三个变量的绝对值取值较大。因此因子1可以解释为耐力因子,因子2可以解释为爆发力因子。
成分得分系数矩阵。
先来解释一下得分:
因子分析是将变量表示为公共因子和特殊因子的线性组合;此外,我们可以反过来将公共因子表示为原变量的线性组合,即可得到因子得分。
{
x
1
=
u
1
+
a
11
f
1
+
a
12
f
2
+
.
.
.
+
a
1
m
f
m
+
ε
1
x
2
=
u
2
+
a
21
f
1
+
a
22
f
2
+
.
.
.
+
a
2
m
f
m
+
ε
2
⋮
x
p
=
u
p
+
a
p
1
f
1
+
a
p
2
f
2
+
.
.
.
+
a
p
m
f
m
+
ε
p
\left\{
b
i
j
b_{ij}
bij就是第i个因子
f
i
f_{i}
fi对应于第j个变量
x
j
x_{j}
xj的系数。
因子分析的结果就是由
b
i
j
b_{ij}
bij构成的
B
m
×
p
B_{m \times p}
Bm×p系数矩阵。

使用因子分析结果,可以计算因子。(图中的因子是SPSS计算好的)
