我是靠谱客的博主 懵懂金鱼,最近开发中收集的这篇文章主要介绍【多元统计分析】19.因子分析十九、因子分析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 十九、因子分析
    • 1.正交因子模型
    • 2.如何计算载荷矩阵?
    • 3.正交旋转与因子得分
    • 回顾总结

十九、因子分析

1.正交因子模型

因子分析也是一种降维的方法,但降维方法与主成分分析不同。主成分分析旨在用变量的线性组合生成同等个数的主成分,然后选择合适的线性组合数量,尽可能保持尽可能多的总体信息;而因子分析旨在根据变量之间的联系,找到共同影响变量的因子,将具有复杂关系的变量转化为少数几个因子从而再现原始变量之间的内在联系,这里的因子是假象的、不可观测的随机变量。一般我们称对变量构建的因子模型为 R R R型因子模型。

正交因子模型是这样的模型:

  • X = ( X 1 , ⋯   , X p ) ′ X=(X_1,cdots,X_p)' X=(X1,,Xp)是可观测的随机向量, E ( X ) = μ , D ( X ) = Σ {rm E}(X)=mu,{rm D}(X)=Sigma E(X)=μ,D(X)=Σ
  • F = ( F 1 , ⋯   , F m ) ′ ( m < p ) F=(F_1,cdots,F_m)'(m<p) F=(F1,,Fm)(m<p)是不可观测的随机向量, E ( F ) = 0 , D ( F ) = I m {rm E}(F)=0,{rm D}(F)=I_m E(F)=0,D(F)=Im
  • ε = ( ε 1 , ⋯   , ε p ) ′ varepsilon=(varepsilon_1,cdots,varepsilon_p)' ε=(ε1,,εp)满足 C O V ( ε , F ) = O {rm COV}(varepsilon,F)=O COV(ε,F)=O,且 E ( ε ) = 0 , D ( ε ) = d i a g ( σ 1 2 , ⋯   , σ p 2 ) = D {rm E}(varepsilon)=0,{rm D}(varepsilon)={rm diag}(sigma_1^2,cdots,sigma_p^2)=D E(ε)=0,D(ε)=diag(σ12,,σp2)=D

X = μ + A F + ε , ⇓ { X 1 − μ 1 = a 11 F 1 + a 12 F 2 + ⋯ + a 1 m F m + ε 1 , X 2 − μ 2 = a 21 F 1 + a 22 F 2 + ⋯ + a 2 m F m + ε 2 , ⋯ X p − μ p = a p 1 F 1 + a p 2 F 2 + ⋯ + a p m F m + ε p . X=mu+AF+varepsilon,\ Downarrow \ left{ begin{array}l X_1-mu_1=a_{11}F_1+a_{12}F_2+cdots+a_{1m}F_m+varepsilon_1,\ X_2-mu_2=a_{21}F_1+a_{22}F_2+cdots+a_{2m}F_m+varepsilon_2,\ cdots\ X_p-mu_p=a_{p1}F_1+a_{p2}F_2+cdots+a_{pm}F_m+varepsilon_p. end{array} right. X=μ+AF+ε,X1μ1=a11F1+a12F2++a1mFm+ε1,X2μ2=a21F1+a22F2++a2mFm+ε2,Xpμp=ap1F1+ap2F2++apmFm+εp.

这个模型将 p p p个变量约为 m m m个公共因子的线性组合与一个特殊因子的求和,一共有 m + p m+p m+p个不可观测的随机变量; A = ( a i j ) p × m A=(a_{ij})_{ptimes m} A=(aij)p×m是待估的系数矩阵,称为因子载荷矩阵,里面的每一个元素 a i j a_{ij} aij称为第 i i i个变量在第 j j j个因子上的载荷。

正交因子模型的关键假定是特殊因子互不相关、特殊因子同公共因子互不相关、公共因子互不相关(正交性),在这种假定下,每一个公共因子至少对两个变量有贡献(载荷不为0),否则将被认定为特殊因子。在这种模型的假定下,有
Σ = D ( X ) = E [ ( X − μ ) ( X − μ ′ ) ] = E [ ( A F + ε ) ( A F + ε ) ′ ] = E [ A F F ′ A ′ + ε A F + A F ε ′ + ε ε ′ ] = A E ( F F ′ ) A ′ + E ( ε ε ′ ) = A A ′ + D , ⇓ Σ − D = A A ′ . begin{aligned} Sigma=&{rm D}(X)={rm E}[(X-mu)(X-mu')] \ =&{rm E}[(AF+varepsilon)(AF+varepsilon)'] \ =&{rm E}[AFF'A'+varepsilon AF+AFvarepsilon'+varepsilonvarepsilon']\ =&A{rm E}(FF')A'+{rm E}(varepsilonvarepsilon')\ =&AA'+D, end{aligned}\ Downarrow \ Sigma-D=AA'. Σ=====D(X)=E[(Xμ)(Xμ)]E[(AF+ε)(AF+ε)]E[AFFA+εAF+AFε+εε]AE(FF)A+E(εε)AA+D,ΣD=AA.
这样,相当于将总体的方差作分解,分解为相关部分与自有部分。如果 D D D中元素比较小,则代表每个变量的特殊因子影响不大,也就是变量主要由公共因子决定、一般地有
C o v ( X k , X j ) = ∑ i = 1 m a j i a k i + δ k − j σ j σ k . {rm Cov}(X_k,X_j)=sum_{i=1}^ma_{ji}a_{ki}+delta_{k-j}sigma_jsigma_k. Cov(Xk,Xj)=i=1majiaki+δkjσjσk.
如果我们计算在 X = μ + A F + ε X=mu+AF+varepsilon X=μ+AF+ε模型下,各个变量与因子之间的相关关系,会得到
C O V ( X , F ) = C O V ( μ + A F + ε , F ) = A D ( F ) = A . {rm COV}(X,F)={rm COV}(mu+AF+varepsilon,F)=A{rm D}(F)=A. COV(X,F)=COV(μ+AF+ε,F)=AD(F)=A.
也就是说, a i j a_{ij} aij还刻画了变量 X i X_i Xi与因子 F j F_j Fj之间的相关性,故称 a i j a_{ij} aij X i X_i Xi F j F_j Fj上的因子载荷,反映了第 i i i个变量在第 j j j个公共因子上的相对重要性。如果 X i X_i Xi是标准化变量,那么 a i j a_{ij} aij还是 X i X_i Xi F j F_j Fj的相关系数。

还有一些指标具有重要的统计意义,如 A A A各行的平方和与各列的平方和。

载荷矩阵 A A A的第 i i i行元素的平方和,记作 h i h_i hi,被称为变量 X i X_i Xi的共同度,也就是
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的方差上,因为
D ( X i ) = D ( a i 1 F 1 + ⋯ + a i m F m + ε i ) = ∑ j = 1 m a i m 2 + σ i 2 = h i 2 + σ i 2 , {rm D}(X_i)={rm D}(a_{i1}F_1+cdots+a_{im}F_m+varepsilon_i)=sum_{j=1}^ma_{im}^2+sigma_i^2=h_i^2+sigma_i^2, D(Xi)=D(ai1F1++aimFm+εi)=j=1maim2+σi2=hi2+σi2,
这表明变量 X i X_i Xi的方差可以分解为两部分,一是公因子方差 h i 2 h_i^2 hi2也就是共同度,二是剩余方差 σ 2 sigma^2 σ2,即特殊因子的方差。公因子方差越大,变量就越依赖于公因子 F F F

载荷矩阵 A A A的第 j j j列元素的平方和,记作 q j 2 q_j^2 qj2,表示第 j j j个公共因子对整个变量 X X X的贡献程度,即
q j 2 = ∑ i = 1 p a i j 2 . q_j^2=sum_{i=1}^pa_{ij}^2. qj2=i=1paij2.
如果因子的贡献程度 q j 2 q_j^2 qj2越大,就说明其影响力越大。

2.如何计算载荷矩阵?

现在讨论 A A A的计算问题。在实际生活中,如果不知道 Σ Sigma Σ的实际值,就用样本协方差阵 S S S来估计,由于 Σ Sigma Σ S S S都是对称矩阵,具有 p p p个实特征根 λ 1 ≥ λ 2 ≥ ⋯ λ p lambda_1gelambda_2ge cdotslambda_p λ1λ2λp以及对应的 p p p个单位正交向量 l 1 , ⋯   , l p l_1,cdots,l_p l1,,lp,所以有如下的谱分解式:
S = ( s i j ) p × p = ∑ i = 1 p λ i l i l i ′ . S=(s_{ij})_{ptimes p}=sum_{i=1}^plambda_il_il_i'. S=(sij)p×p=i=1pλilili.
由此,如果前面 m m m个特征值已经足够大(如权重和超过0.7),就可以忽略后面的 p − m p-m pm个特征值,只保留前面 m m m个特征值的加权部分:
∑ i = 1 m λ i l i l i ′ = ( λ 1 l 1 , ⋯   , λ m l m ) ( λ 1 l 1 ′ ⋮ λ m l m ′ ) = d e f A A ′ . sum_{i=1}^mlambda_il_il_i'=(sqrt{lambda_1}l_1,cdots,sqrt{lambda_m}l_m)begin{pmatrix} sqrt{lambda_1}l_1' \ vdots \ sqrt{lambda_m}l_m' end{pmatrix}xlongequal{def}AA'. i=1mλilili=(λ1 l1,,λm lm)λ1 l1λm lmdef AA.
也就是 A = ( λ 1 l 1 , ⋯   , λ m l m ) = d e f ( a i j ) p × m A=(sqrt{lambda_1}l_1,cdots,sqrt{lambda_m}l_m)xlongequal{def}(a_{ij})_{ptimes m} A=(λ1 l1,,λm lm)def (aij)p×m,而剩余部分,我们全部归于对角线元素上,也就是
D = d e f d i a g ( σ 1 2 , ⋯   , σ p 2 ) , σ i 2 = s i i − ∑ t = 1 m a i t 2 . Dxlongequal{def}{rm diag}(sigma^2_1,cdots,sigma^2_p),quadsigma_i^2=s_{ii}-sum_{t=1}^m a_{it}^2. Ddef diag(σ12,,σp2),σi2=siit=1mait2.
这样,我们依然保留了 D ( X i ) = h i 2 + σ i 2 {rm D}(X_i)=h_i^2+sigma_i^2 D(Xi)=hi2+σi2的性质,由此给出的载荷矩阵 A A A D D D被称为因子模型的主成分解,这是因为 A A A j j j列恰好和 X X X的第 j j j个主成分相差了一个常数倍(主成分就是单位特征向量)。不过,主成分解只能保证 S ≈ A A ′ + D Sapprox AA'+D SAA+D,存在一个误差矩阵 ε = S − ( A A ′ + D ) = d e f ( ε i j ) p × p varepsilon=S-(AA'+D)xlongequal{def}(varepsilon_{ij})_{ptimes p} ε=S(AA+D)def (εij)p×p

主因子解是对主成分解的一种修正,它从相关阵 R R R出发,并且需要知道特殊方差的初始估计 ( σ ^ i ∗ ) 2 (hat sigma_i^*)^2 (σ^i)2,此时 D = d i a g ( σ ^ 1 2 , ⋯   , σ ^ p 2 ) D={rm diag}(hatsigma_1^2,cdots,hatsigma_p^2) D=diag(σ^12,,σ^p2),就有
R − D = A A ′ = d e f R ∗ = [ 1 − ( σ ^ 1 ) 2 r 12 ⋯ r 1 p r 21 1 − ( σ ^ 2 ) 2 ⋯ r 2 p ⋮ ⋮ ⋮ r p 1 r p 2 ⋯ 1 − ( σ ^ p ) 2 ] . R-D=AA'xlongequal {def}R^*=begin{bmatrix} 1-(hatsigma_1)^2 & r_{12} & cdots & r_{1p} \ r_{21} & 1-(hatsigma_2)^2 & cdots & r_{2p} \ vdots & vdots & & vdots \ r_{p1} & r_{p2} & cdots & 1-(hatsigma_p)^2 end{bmatrix}. RD=AAdef R=1(σ^1)2r21rp1r121(σ^2)2rp2r1pr2p1(σ^p)2.
这时候由于 R ∗ R^* R已知,也可以进行谱分解,取前 m m m个特征值近似构成 A = ( λ 1 l 1 , ⋯   , λ m l m ) A=(sqrt{lambda_1}l_1,cdots,sqrt{lambda_m}l_m) A=(λ1 l1,,λm lm)即可,这时的 A , D A,D A,D就称为主因子解。

综上所述,应用主成分估计法的步骤如下:

  1. 由样本数据阵计算样本均值 X ˉ bar X Xˉ、离差阵 E E E、相关阵 R R R

  2. R R R的特征值 λ 1 ≥ λ 2 ≥ ⋯ ≥ λ p lambda_1gelambda_2ge cdotsgelambda_p λ1λ2λp和对应单位正交特征向量 l 1 , ⋯   , l p l_1,cdots,l_p l1,,lp,确定公因子个数 m m m,如满足条件
    λ 1 + ⋯ + λ m λ 1 + ⋯ + λ p = λ 1 + ⋯ + λ m p ≥ p 0 = d e f 0.8. frac{lambda_1+cdots+lambda_m}{lambda_1+cdots+lambda_p}=frac{lambda_1+cdots+lambda_m}{p}ge p_0xlongequal{def}0.8. λ1++λpλ1++λm=pλ1++λmp0def 0.8.

  3. a i = λ i l i a_i=sqrt{lambda_i}l_i ai=λi li,得到因子载荷矩阵为 A = ( a 1 , ⋯   , a m ) A=(a_1,cdots,a_m) A=(a1,,am)

  4. 求特殊因子方差为 σ ^ i 2 = 1 − ∑ t = 1 m a i t 2 hatsigma_i^2=1-sum_{t=1}^m a_{it}^2 σ^i2=1t=1mait2,得到对角阵 D = d i a g ( σ ^ 1 2 , ⋯   , σ ^ p 2 ) D={rm diag}(hatsigma_1^2,cdots,hatsigma_p^2) D=diag(σ^12,,σ^p2),以及 X i X_i Xi的共同度为 h i 2 = ∑ t = 1 m a i t 2 h_i^2=sum_{t=1}^m a_{it}^2 hi2=t=1mait2

  5. 对潜因子 F F F做解释,此时 X = μ + A F + ε X=mu+AF+varepsilon X=μ+AF+ε

3.正交旋转与因子得分

实际生活中,我们往往希望潜因子具有一定的解释能力,如果每个因子具有类似的效果,就不知道哪个因子对哪个变量的影响比较大。在第一节中,我们定义了载荷矩阵的第 j j j列平方和 q j 2 q_j^2 qj2,称这是公共因子对变量 X j X_j Xj的解释能力,如果 q j 2 q_j^2 qj2趋近于1或者趋近于0,就说明公共因子对这个变量有明显贡献或者不明显贡献。我们的目标,就是找到一个使得每个 q j 2 q_j^2 qj2都尽可能大或尽可能小的载荷矩阵 A A A

为什么我们有这样的选择权呢?考虑因子模型 X = μ + A F + ε X=mu+AF+varepsilon X=μ+AF+ε,由于 D ( X ) = Σ = A A ′ + D {rm D}(X)=Sigma=AA'+D D(X)=Σ=AA+D,结合正交矩阵 Γ Γ ′ = I GammaGamma'=I ΓΓ=I的特点,设 C = A Γ C=AGamma C=AΓ,则 Σ = A A ′ + D = A Γ ( Γ ′ A ′ ) + D = C C ′ + D Sigma=AA'+D=AGamma(Gamma'A')+D=CC'+D Σ=AA+D=AΓ(ΓA)+D=CC+D,这样 C C C也可以作为因子载荷矩阵,也就是
X = μ + A Γ ( Γ ′ F ) + ε . X=mu+AGamma (Gamma'F)+varepsilon. X=μ+AΓ(ΓF)+ε.
新的因子就是 ( Γ ′ F ) (Gamma'F) (ΓF)。由于施加正交变换相当于作一次旋转(或镜像),所以我们也称这样的变换载荷矩阵的方法为因子轴的正交旋转。

定义因子载荷矩阵的方差为
V = 1 p 2 { ∑ j = 1 m [ p ∑ i = 1 p a i j 4 h j 4 − ( ∑ t = 1 p a t j 2 h t 2 ) 2 ] } , V=frac1{p^2}left{sum_{j=1}^mleft[psum_{i=1}^pfrac{a_{ij}^4}{h_j^4}-left(sum_{t=1}^pfrac{a_{tj}^2}{h_t^2} right)^2 right] right}, V=p21j=1mpi=1phj4aij4(t=1pht2atj2)2,
如果 V V V越大,则因子就越具有简化结构。在实际应用中,我们选择二维的旋转矩阵
Γ = [ cos ⁡ φ − sin ⁡ φ sin ⁡ φ cos ⁡ φ ] , Gamma=begin{bmatrix} cosvarphi & -sin varphi \ sin varphi & cos varphi end{bmatrix}, Γ=[cosφsinφsinφcosφ],
对于双因子总体,其因子载荷矩阵是 A p × 2 A_{ptimes 2} Ap×2,施加变换得到 B p × 2 = A Γ B_{ptimes 2}=AGamma Bp×2=AΓ,可以计算此时的 V V V,并对 φ varphi φ求导就可以得到最合适的旋转矩阵 Γ Gamma Γ。对于 m m m因子模型,每一次选择两个因子进行 Γ Gamma Γ旋转即可,每轮一共旋转 C m 2 C_{m}^2 Cm2次,并且需要经过多轮旋转直到 V V V不再增大。

因子得分,是将公共因子表示成变量的线性组合,或者对每一个样品计算公共因子的估计值。有以下几种因子得分:

  1. 巴特莱特因子得分: F ^ = ( A ′ D − 1 A ) − 1 A ′ D − 1 X hat F=(A'D^{-1}A)^{-1}A'D^{-1}X F^=(AD1A)1AD1X
  2. 使用主成分法估计时的因子得分: F ^ = ( A ′ A ) − 1 A ′ X hat F=(A'A)^{-1}A'X F^=(AA)1AX
  3. 汤普森因子得分: F ^ = A ′ R − 1 X hat F=A'R^{-1}X F^=AR1X,或 F ^ = A ′ ( A A ′ + D ) − 1 X hat F=A'(AA'+D)^{-1}X F^=A(AA+D)1X

这里巴特莱特因子得分是无偏的,汤普森因子得分是有偏的,但是汤普森因子得分有较小的平均预报误差。

回顾总结

  1. 因子分析中的因子是不可观测的、假象的随机变量,与随机变量的线性组合——主成分不同。
  2. 正交因子模型是 X = μ + A F + ε X=mu+AF+varepsilon X=μ+AF+ε,且满足 E ( F ) = 0 , D ( F ) = I m , C O V ( X , F ) = 0 {rm E}(F)=0,{rm D}(F)=I_m,{rm COV}(X,F)=0 E(F)=0,D(F)=Im,COV(X,F)=0。这里的 A A A称为因子载荷矩阵,满足 Σ = A A ′ + D Sigma=AA'+D Σ=AA+D
  3. 共同度是 A A A的第 i i i行平方和,代表第 i i i个随机变量的公因子方差,剩余部分为剩余方差,即 D D D i i i个元素。
  4. 常用的求解 A , D A,D A,D的方法有主成分法、主因子法。我们将数据标准化后,从相关矩阵 R R R出发,得到 R R R的特征值与单位正交特征向量,确定合适的特征值数,得到 A = ( λ 1 l 1 , ⋯   , λ m l m ) A=(sqrt{lambda_1}l_1,cdots,sqrt{lambda_m}l_m) A=(λ1 l1,,λm lm),再计算剩余方差 σ ^ i 2 = 1 − h i 2 hatsigma_i^2=1-h_i^2 σ^i2=1hi2
  5. 我们会希望得到的因子模型有较强的解释能力,所以对因子进行正交变换,得到 Γ ′ F Gamma'F ΓF,以使得载荷矩阵方差最大化。

最后

以上就是懵懂金鱼为你收集整理的【多元统计分析】19.因子分析十九、因子分析的全部内容,希望文章能够帮你解决【多元统计分析】19.因子分析十九、因子分析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部