因子分析以及SPSS实现

因子分析和主成分分析都是统计学中的降维方法。因子分析通过寻找隐藏的公共因子来解释变量间的关系,而主成分分析侧重于找到能够最大化解释数据方差的线性组合。因子分析允许因子旋转以提高解释性,而主成分分析的解是固定的。在体育赛事数据中,因子分析揭示了耐力和爆发力两个关键因素。通过因子得分,可以将原始变量转换为因子得分,便于理解和解释。
摘要由CSDN通过智能技术生成

因子分析

因子分析的相关简介

与主成分分析相似,因子分析也是一种降维的方法,因子分析通过研究多维样本矩阵,在样本的多个指标下,提取出适量的因子,使得每个指标可以表示成各个因子的线性组合。

假设我们有 n n n个样本, p p p个指标,则可以构成大小为 n × p n\times p n×p的样本矩阵
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=\begin{bmatrix} x_{11}& x_{12}& \cdots & x_{1p}\\ x_{21}& x_{22}& \cdots & x_{2p}\\ \vdots & \vdots & \ddots & \vdots \\ x_{n1}& x_{n2}& \cdots &x_{np} \end{bmatrix}=(x_1,x_2,\cdots,x_p) x= x11x21xn1x12x22xn2x1px2pxnp =x1,x2,,xp

主成分分析:通过 ( x 1 , x 2 , ⋯   , x p ) (x_1,x_2,\cdots,x_p) x1,x2,,xp推出它们的主成分 z 1 , z 2 , ⋯   , z m ( m ≤ p ) z_1,z_2,\cdots,z_m(m\le p) z1,z2,,zm(mp),并且存在关系
{ z 1 = l 11 x 1 + l 12 x 2 + ⋯ + l 1 p x p z 2 = l 21 x 1 + l 22 x 2 + ⋯ + l 2 p x p ⋮ z m = l m 1 x 1 + l m 2 x 2 + ⋯ + l m p x p \begin{cases} z_1=l_{11}x_1+l_{12}x_2+\cdots+l_{1p}x_p\\ z_2=l_{21}x_1+l_{22}x_2+\cdots+l_{2p}x_p\\ \qquad\vdots\\ z_m=l_{m1}x_1+l_{m2}x_2+\cdots+l_{mp}x_p\\ \end{cases} z1=l11x1+l12x2++l1pxpz2=l21x1+l22x2++l2pxpzm=lm1x1+lm2x2++lmpxp
z 1 , z 2 , ⋯   , z m ( m ≤ p ) z_1,z_2,\cdots,z_m(m\le p) z1,z2,,zm(mp) m m m个主成分,各指标的线性组合构成了主成分。

因子分析:通过 ( x 1 , x 2 , ⋯   , x p ) (x_1,x_2,\cdots,x_p) x1,x2,,xp推出它们的”因子“ f 1 , f 2 , ⋯   , f m ( m ≤ p ) f_1,f_2,\cdots,f_m(m\le p) f1,f2,,fm(mp),并且存在关系
{ 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 \begin{cases} x_1=u_1+a_{11}f_1+a_{12}f_2+\cdots+a_{1m}f_m+\varepsilon_1\\ x_2=u_2+a_{21}f_1+a_{22}f_2+\cdots+a_{2m}f_m+\varepsilon_2\\ \qquad\vdots\\ x_p=u_p+a_{p1}f_1+a_{p2}f_2+\cdots+a_{pm}f_m+\varepsilon_p\\ \end{cases} x1=u1+a11f1+a12f2++a1mfm+ε1x2=u2+a21f1+a22f2++a2mfm+ε2xp=up+ap1f1+ap2f2++apmfm+εp
f 1 , f 2 , ⋯   , f m ( m ≤ p ) f_1,f_2,\cdots,f_m(m\le p) f1,f2,,fm(mp)是公共因子, ε i \varepsilon_i εi是特殊因子,各因子的线性组合构成了原始的指标。

x=u+Af+ ε \varepsilon ε,假设
{ E ( f ) = 0 E ( ε ) = 0 V a r ( f ) = d i a g ( 1 , 1 , ⋯   , 1 ) V a r ( ε ) = d i a g ( σ 1 2 , σ 2 2 , ⋯   , σ p 2 ) C o v ( f , ε ) = E ( f ε ′ ) = 0 \begin{cases} E(f)=0\\ E(\varepsilon)=0\\ Var(f)=\mathrm{diag}(1,1,\cdots,1)\\ Var(\varepsilon)=\mathrm{diag}(\sigma_1^2,\sigma_2^2,\cdots,\sigma_p^2)\\ Cov(f,\varepsilon)=E(f\varepsilon^{\prime})=0 \end{cases} E(f)=0E(ε)=0Var(f)=diag(1,1,,1)Var(ε)=diag(σ12,σ22,,σp2)Cov(f,ε)=E(fε)=0
其中 f = ( f 1 , f 2 , ⋯   , f m ) ′ ( m ≤ p ) f=(f_1,f_2,\cdots,f_m)^{\prime}(m\le p) f=(f1,f2,,fm)(mp)是公因子向量

ε = ( ε 1 , ε 2 , ⋯   , ε p ) ′ \varepsilon=(\varepsilon_1,\varepsilon_2,\cdots,\varepsilon_p)^{\prime} ε=(ε1,ε2,,εp)为特殊因子向量

A p × m = ( a i j ) A_{p\times m}=(a_{ij}) Ap×m=(aij)称为因子载荷矩阵,假设 r a n k ( A ) = m \mathrm{rank}(A)=m rank(A)=m

主成分分析和因子分析的区别:

主成分分析是简单的数值计算,比较容易实现,解是唯一的,但是可能难以对结果进行解释

因子分析需要构造因子模型,伴随关键性的假定,因为我们可以进行因子旋转,所以我们可以得到多个可行解,这导致了因子分析的成功率远大于主成分分析的成功率。

因子载荷

因子分析模型 x = u + A f + ε x=u+Af+\varepsilon x=u+Af+ε中, A p × m = ( a i j ) A_{p\times m}=(a_{ij}) Ap×m=(aij)称为因子载荷矩阵,假设 r a n k ( A ) = m \mathrm{rank}(A)=m rank(A)=m

(1) a i j a_{ij} aij是原始变量 x i x_i xi与公因子 f i f_i fi之间的协方差, a i j = c o v ( x i , f j ) a_{ij}=cov(x_i,f_j) aij=cov(xi,fj),如果 x x x经过了标准化,则 a i j = ρ ( x i , f j ) a_{ij}=\rho(x_i,f_j) aij=ρ(xi,fj)

(2) A A A的行元素平方和 h i 2 = ∑ j = 1 m a i j 2 h_i^2=\sum_{j=1}^ma_{ij}^2 hi2=j=1maij2是原始变量 x i x_i xi对公因子依赖的程度,可以证明 V a r ( x i ) = h i 2 + σ i 2 ( i = 1 , 2 , ⋯   , p ) Var(x_i)=h_i^2+\sigma_i^2(i=1,2,\cdots,p) Var(xi)=hi2+σi2(i=1,2,,p)

h i 2 h_i^2 hi2反映了公因子对于 x i x_i xi的影响,可以看成是公因子对于 x i x_i xi的方差贡献,称为共性方差, σ i 2 \sigma_i^2 σi2是特殊因子 ε i \varepsilon_i εi对于 x i x_i xi的方差贡献,称为个性方差,若标准化,则 h i 2 + σ i 2 = 1 h_i^2+\sigma_i^2=1 hi2+σi2=1

(3) A A A的列元素平方和 g j 2 = ∑ i = 1 p a i j 2 g_j^2=\sum_{i=1}^pa_{ij}^2 gj2=i=1paij2是公因子 f j f_j fj对于 x i x_i xi的贡献

可以证明: ∑ i = 1 p V a r ( x i ) = g 1 2 + g 2 2 + ⋯ + g m 2 + ∑ i = 1 p σ i 2 \sum_{i=1}^pVar(x_i)=g_1^2+g_2^2+\cdots+g_m^2+\sum_{i=1}^p\sigma_i^2 i=1pVar(xi)=g12+g22++gm2+i=1pσi2

g j 2 g_j^2 gj2的值越大,反映了 f j f_j fj x x x的影响越大, g j 2 g_j^2 gj2是衡量公因子 f j f_j fj重要性的一个尺度,可视为公因子 f j f_j fj x x x的贡献。

因子旋转

T T T是一个任意的 m × m m\times m m×m的正交矩阵,令 A ∗ = A T , f ∗ = T ′ f A^{*}=AT,f^{*}=T^{\prime}f A=AT,f=Tf,则模型可以表示为:

x = u + A ∗ f ∗ + ε x=u+A^*f^*+\varepsilon x=u+Af+ε,这是因为上述假设仍然成立
{ E ( f ∗ ) = T ′ E ( f ) = 0 E ( ε ) = 0 V a r ( f ∗ ) = T ′ V a r ( f ) T = T ′ I T = I = d i a g ( 1 , 1 , ⋯   , 1 ) V a r ( ε ) = d i a g ( σ 1 2 , σ 2 2 , ⋯   , σ p 2 ) C o v ( f ∗ , ε ) = E ( f ∗ ε ′ ) = T ′ E ( f ε ′ ) = 0 \begin{cases} E(f^*)=T^{\prime}E(f)=0\\ E(\varepsilon)=0\\ Var(f^*)=T^{\prime}Var(f)T=T^{\prime}IT=I=\mathrm{diag}(1,1,\cdots,1)\\ Var(\varepsilon)=\mathrm{diag}(\sigma_1^2,\sigma_2^2,\cdots,\sigma_p^2)\\ Cov(f^*,\varepsilon)=E(f^*\varepsilon^{\prime})=T^{\prime}E(f\varepsilon^{\prime})=0 \end{cases} E(f)=TE(f)=0E(ε)=0Var(f)=TVar(f)T=TIT=I=diag(1,1,,1)Var(ε)=diag(σ12,σ22,,σp2)Cov(f,ε)=E(fε)=TE(fε)=0
推导比较复杂,不需要大家掌握。

因子旋转应当使得新的公共因子的载荷系数的绝对值尽可能接近0或1,这是为了使结果更易于解释。

下面介绍几种SPSS中的因子旋转的方法

最大方差法

正交旋转,使得对每个因子有高负载的变量数目达到最小,该方法简化了因子的解释。这是最常用的因子旋转方法。

最大四次方值法

一种旋转方法,它可以使得解释每个变量所需的因子最少,简化了观察变量的解释。

最大平衡值法

一种旋转方法,是简化因子的最大方差法与简化变量的最大四次方值法的组合,可以使得高度依赖因子的变量个数以及解释变量所需的因子的个数最少。

最优斜交旋转

斜交旋转,可使因子相关联,该旋转比直接最小斜交旋转更快的计算出来,适用于大型数据集。

因子得分

我们可以反过来将公共因子表示为原变量的线性组合,即可得出因子得分
{ 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 → { f 1 = b 11 x 1 + b 12 x 2 + ⋯ + b 1 p x p f 2 = b 21 x 1 + b 22 x 2 + ⋯ + b 2 p x p ⋮ f m = b m 1 x 1 + b m 2 x 2 + ⋯ + b m p x p \begin{cases} x_1=u_1+a_{11}f_1+a_{12}f_2+\cdots+a_{1m}f_m+\varepsilon_1\\ x_2=u_2+a_{21}f_1+a_{22}f_2+\cdots+a_{2m}f_m+\varepsilon_2\\ \qquad\vdots\\ x_p=u_p+a_{p1}f_1+a_{p2}f_2+\cdots+a_{pm}f_m+\varepsilon_p\\ \end{cases}\to \begin{cases} f_1=b_{11}x_1+b_{12}x_2+\cdots+b_{1p}x_p\\ f_2=b_{21}x_1+b_{22}x_2+\cdots+b_{2p}x_p\\ \qquad\vdots\\ f_m=b_{m1}x_1+b_{m2}x_2+\cdots+b_{mp}x_p\\ \end{cases} x1=u1+a11f1+a12f2++a1mfm+ε1x2=u2+a21f1+a22f2++a2mfm+ε2xp=up+ap1f1+ap2f2++apmfm+εp f1=b11x1+b12x2++b1pxpf2=b21x1+b22x2++b2pxpfm=bm1x1+bm2x2++bmpxp
i i i个因子的得分可以写成 f i = b i 1 x 1 + b i 2 x 2 + ⋯ + b i p x p ( i = 1 , 2 , ⋯   , m ) f_i=b_{i1}x_1+b_{i2}x_2+\cdots+b_{ip}x_p\quad(i=1,2,\cdots,m) fi=bi1x1+bi2x2++bipxp(i=1,2,,m)

可以通过回归、Bartlett、Anderson-Rubin方法计算因子得分。第三种方法比较常用。

Anderson-Rubin方法是一种估计因子得分的方法,对Bartlett方法进行了修正,从而确保被估计的因子的正交性,生成的分数平均值为0,标准差为1,且不相关。

判断是否适合因子分析的检验——KMO检验和巴特利特球形检验

KMO检验:

KMO统计量是取值在0和1之间, KMO值越接近于1,意味着变量间的相关性越强,原有变量越适合作因子分析;当所有变量间的简单相关系数平方和接近0时, KMO值越接近于0,意味着变量间的相关性越弱,原有变量越不适合作因子分析

直接上结论,KMO>0.9,非常适合; 0.8<KMO<0.9,适合;0.7<KMO<0.8, 一般; 0.6<KMO<0.7,不太适合; KMO<0.5,不适合

巴特利特球形检验:

基于假设检验:原假设:相关系数矩阵是单位阵

直接上结论,如果巴特利特检验的统计量对应的p值小于用户心中的显著性水平(一般为0.05),那么拒绝原假设,认为相关系数不可能是单位阵,适合因子分析

SPSS可以直接进行上述检验。

因子分析的应用

给定下列各个国家的数据,试找出各个指标的因子

序号国家一百米两百米四百米八百米一千五百米五千米一万米马拉松
1阿根廷10.3920.8146.841.813.714.0429.36137.72
2澳大利亚10.3120.0644.841.743.5713.2827.66128.3
3奥地利10.4420.8146.821.793.613.2627.72135.9
4比利时10.3420.6845.041.733.613.2227.45129.95
5百慕大10.2820.5845.911.83.7514.6830.55146.62
6巴西10.2220.4345.211.733.6613.6228.62133.13
7缅甸10.6421.5248.31.83.8514.4530.28139.95
8加拿大10.1720.2245.681.763.6313.5528.09130.15
9智利10.3420.846.21.793.7113.6129.3134.03
10中国10.5121.0447.31.813.7313.929.13133.53
11哥伦比亚10.4321.0546.11.823.7413.4927.88131.35
12库克群岛12.1823.252.942.024.2416.735.38164.7
13哥斯达黎加10.9421.948.661.873.8414.0328.81136.58
14捷克斯洛伐克10.3520.6545.641.763.5813.4228.19134.32
15丹麦10.5620.5245.891.783.6113.528.11130.78
16多米尼加共和国10.1420.6546.81.823.8214.9131.45154.12
17芬兰10.4320.6945.491.743.6113.2727.52130.87
18法国10.1120.3845.281.733.5713.3427.97132.3
19德意志民主共和10.1220.3344.871.733.5613.1727.42129.92
20德意志联邦共和10.1620.3744.51.733.5313.2127.61132.23
21大不列颠及北爱10.1120.2144.931.73.5113.0127.51129.13
22希腊10.2220.7146.561.783.6414.5928.45134.6
23危地马拉10.9821.8248.41.893.814.1630.11139.33
24匈牙利10.2620.6246.021.773.6213.4928.44132.58
25印度10.621.4245.731.763.7313.7728.81131.98
26印度尼西亚10.5921.4947.81.843.9214.7330.79148.83
27以色列10.6120.9646.31.793.5613.3227.81132.35
28爱尔兰10.712147.81.773.7213.6628.93137.55
29意大利10.0119.7245.261.733.613.2327.52131.08
30日本10.3420.8145.861.793.6413.4127.72128.63
31肯尼亚10.4620.6644.921.733.5513.127.38129.75
32韩国10.3420.8946.91.793.7713.9629.23136.25
33朝鲜人民民主共10.9121.9447.31.853.7714.1329.67130.87
34卢森堡10.3520.7747.41.823.6713.6429.08141.27
35马来西亚10.420.9246.31.823.814.6431.01154.1
36毛里求斯11.1922.4547.71.883.8315.0631.77152.23
37墨西哥10.4221.346.11.83.6513.4627.95129.2
38荷兰10.5220.9545.11.743.6213.3627.61129.02
39新西兰10.5120.8846.11.743.5413.2127.7128.98
40挪威10.5521.1646.711.763.6213.3427.69131.48
41巴布亚新几内亚10.9621.7847.91.94.0114.7231.36148.22
42菲律宾10.7821.6446.241.813.8314.7430.64145.27
43波兰10.1620.2445.361.763.613.2927.89131.58
44葡萄牙10.5321.1746.71.793.6213.1327.38128.65
45罗马尼亚10.4120.9845.871.763.6413.2527.67132.5
46新加坡10.3821.2847.41.883.8915.1131.32157.77
47西班牙10.4220.7745.981.763.5513.3127.73131.57
48瑞士10.2520.6145.631.773.6113.2927.94130.63
49瑞典10.3720.4645.781.783.5513.2227.91131.2
50中国台北10.5921.2946.81.793.7714.0730.07139.27
51泰国10.3921.0947.911.833.8415.2332.56149.9
52土耳其10.7121.4347.61.793.6713.5628.58131.5
53美国9.9319.7543.861.733.5313.227.43128.22
54苏联10.072044.61.753.5913.227.53130.55
55西萨摩亚10.8221.86492.024.2416.2834.71161.83

我们可以通过SPSS进行因子分析

因子分析的SPSS实现

1.我们在SPSS界面点击分析——降维——因子

在这里插入图片描述

2.SPSS因子分析通常要做两次,要提取因子,第一次是基于特征值得到碎石图,进而得出选取多少个因子,可以解释大多数变量。第二次再选择固定数目的因子。
在这里插入图片描述
3.在描述的按钮内,选中初始解,系数,显著性水平,KMO检验和巴特利特球形检验。
在这里插入图片描述
4.选择因子旋转的方法,由于因子旋转最常用的方法是最大方差法,所以我们选中最大方差法,我们需要显示旋转后的解和载荷图,故勾选。
在这里插入图片描述

5.我们选择计算因子得分的方法——安德森鲁宾法,因为这个方法是计算得分比较好的方法。

在这里插入图片描述

6.点击确定

在这里插入图片描述

7.我们看到了KMO和巴特利特球形检验的结果,可以发现KMO>0.9且巴特利特统计量的显著性小于0.001,所以适合做因子分析

在这里插入图片描述

8.我们看到了碎石图,可以明显看出,前两个特征值可以解释大多数的信息,所以我们回到2.,把提取的法则定为因子的固定数目2
在这里插入图片描述
在这里插入图片描述

9.点击确定,再次运行因子分析

在这里插入图片描述

这是因子旋转之前的成分矩阵,我们发现因子1在各个变量上的载荷都近似相同,难以解释。

在这里插入图片描述

这是旋转后的成分矩阵,我们发现,随着跑步距离增加,因子1在增加,因子2在减少,这说明因子1可以理解为耐力,因子2可以理解为爆发力。

我们的模型可以这样得到

设一百米,两百米,四百米,八百米,一千五百米,五千米,一万米,马拉松分别为 x 1 , x 2 , ⋯   , x 8 x_1,x_2,\cdots,x_8 x1,x2,,x8,因子1,因子2分别为 f 1 , f 2 f_1,f_2 f1,f2,则
{ x 1 = 0.274 f 1 + 0.935 f 2 x 2 = 0.376 f 1 + 0.893 f 2 x 3 = 0.543 f 1 + 0.773 f 2 x 4 = 0.712 f 1 + 0.627 f 2 x 5 = 0.813 f 1 + 0.525 f 2 x 6 = 0.902 f 2 + 0.389 f 2 x 7 = 0.903 f 1 + 0.397 f 2 x 8 = 0.936 f 1 + 0.261 f 2 \begin{cases} x_1=0.274f_1+0.935f_2\\ x_2=0.376f_1+0.893f_2\\ x_3=0.543f_1+0.773f_2\\ x_4=0.712f_1+0.627f_2\\ x_5=0.813f_1+0.525f_2\\ x_6=0.902f_2+0.389f_2\\ x_7=0.903f_1+0.397f_2\\ x_8=0.936f_1+0.261f_2 \end{cases} x1=0.274f1+0.935f2x2=0.376f1+0.893f2x3=0.543f1+0.773f2x4=0.712f1+0.627f2x5=0.813f1+0.525f2x6=0.902f2+0.389f2x7=0.903f1+0.397f2x8=0.936f1+0.261f2
我们因子旋转所使用的正交矩阵是
T = [ 0.759 0.651 − 0.651 0.759 ] T=\begin{bmatrix} 0.759& 0.651 \\ -0.651& 0.759 \end{bmatrix} T=[0.7590.6510.6510.759]
这是我们的因子旋转后的空间组件图

在这里插入图片描述

可以发现,随着距离的增加,组件1增加,组件2减少,所以组件1是耐力,组建2是爆发力,这个假设是合理的。

因子得分

我们看到了成分得分系数矩阵,这就是因子得分。

在这里插入图片描述

{ f 1 = − 0.300 x 1 − 0.222 x 2 − 0.068 x 3 + 0.100 x 4 + 0.207 x 5 + 0.324 x 6 + 0.321 x 7 + 0.406 x 8 f 2 = + 0.540 x 1 + 0.459 x 2 + 0.291 x 3 + 0.103 x 4 − 0.019 x 5 − 0.161 x 6 − 0.157 x 7 − 0.269 x 8 \begin{cases} f_1=-0.300x_1-0.222x_2-0.068x_3+0.100x_4+0.207x_5+0.324x_6+0.321x_7+0.406x_8\\ f_2=+0.540x_1+0.459x_2+0.291x_3+0.103x_4-0.019x_5-0.161x_6-0.157x_7-0.269x_8\\ \end{cases} {f1=0.300x10.222x20.068x3+0.100x4+0.207x5+0.324x6+0.321x7+0.406x8f2=+0.540x1+0.459x2+0.291x3+0.103x40.019x50.161x60.157x70.269x8

总方差解释表

在这里插入图片描述

上表为总方差解释表,给出了每个公共因子所解释的方差及累计和。
从“初始特征值”一栏中可以看出,前2个公共因子解释的累计方差达93.747%,而后面的公共因子的特征值较小,对解释原有变量的贡献越来越小,因此提取两个公共因子是合适的。
“提取载荷平方和” 一栏是在未旋转时被提取的2个公共因子的方差贡献信息,其与“初始特征值”栏的前两行取值一样。
“旋转载荷平方和”是旋转后得到的新公共因子的方差贡献信息,和未旋转的贡献信息相比,每个公共因子的方差贡献率有变化,但最终的累计方差贡献率不变。

  • 2
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Logistic..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值