机器学习-因子分析(FA)

因子分析是一种分析可观测变量背后隐藏因子的方法,常用于社会学和金融领域。该文详细介绍了因子分析的概念,包括其数学表达式,并探讨了如何构建概率模型,特别是如何使用EM算法简化因子分析模型的求解过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 因子分析(Factor Analysis)

  • 1.1 概念
    因子分析是一种通过可观测变量分析背后隐藏因子(也称为公共因子)的方法\color{red}{因子分析是一种通过可观测变量分析背后隐藏因子(也称为公共因子)的方法}(),此方法认为观测到的变量是由公共因子加上特殊因子共同作用产生的。因子分析在社会学/金融领域应用很广。
    具体表达式如下
    x=μ+Λz+ϵx,μ,ϵ∈Rn∗1,Λ∈Rn∗k,z∈Rk∗1 x = \mu +\Lambda z + \epsilon \\ x,\mu,\epsilon\in R^{n*1}, \Lambda \in R^{n*k}, z\in R^{k*1} x=μ+Λz+ϵx,μ,ϵRn1,ΛRnk,zRk1

    上式中xxx表示观测到的变量,zzz表示隐藏因子(未知变量),满足多元高斯分布N(0,I)N(0,I)N(0,I), ϵ\epsilonϵ表示误差因子(噪声因子),也满足多元高斯分布N(0,Ψ)N(0,\Psi)N(0,Ψ)
    由于多元高斯分布的线性变换仍属于高斯分布,根据上式得到
    μx=μ+Λμz+μϵ=μΣx=E[(X−E[X])(X−E[X])T]=ΛΣzΛT+Σϵ=ΛΛT+Ψ \mu _x = \mu +\Lambda\mu _z + \mu _{\epsilon} = \mu \\ \Sigma _x = E[(X-E[X])(X-E[X])^T]=\Lambda \Sigma _z\Lambda ^T + \Sigma _{\epsilon} = \Lambda \Lambda ^T + \Psi μx=μ+Λμz+μϵ=μΣx=E[(XE[X])(XE[X])T]=ΛΣzΛT+Σϵ=ΛΛT+Ψ

  • 1.2 如何构建概率模型
    机器学习中很重要的一步就是构建概率模型,模型建立的不一样时,所采用的求解方法也不一样。在因子分析中,由于没有观测到隐藏因子z的值,因此只能构建p(x)模型\color{red}{在因子分析中,由于没有观测到隐藏因子z的值,因此只能构建p(x)模型}zp(x),而不能像高斯判别分析一样,构建完整的联合概率p(x,y).
    由于xxx满足多元高斯分布,因此
    p(x)=1(2π)n/2∣ΛΛT+Ψ∣1/2exp⁡(−12(x−μ)T(ΛΛT+Ψ)−1(x−μ)) p(x) = \frac{1}{(2\pi)^{n/2}|\Lambda \Lambda ^T + \Psi|^{1/2}}\exp{(-\frac{1}{2}(x-\mu)^T(\Lambda \Lambda ^T + \Psi)^{-1}(x-\mu))} p(x)=(2π)n/2ΛΛT+Ψ1/21exp(21(xμ)T(ΛΛT+Ψ)1(xμ))

    样本集的的对数似然函数为
    l(μ,Λ,Ψ)=∑i=1mlog⁡p(x(i))=∑i=1mlog⁡[1(2π)n/2∣ΛΛT+Ψ∣1/2exp⁡(−12(x−μ)T(ΛΛT+Ψ)−1(x−μ))] l(\mu,\Lambda,\Psi)=\sum_{i=1}^m\log p(x^{(i)})\\ =\sum_{i=1}^m\log[\frac{1}{(2\pi)^{n/2}|\Lambda \Lambda ^T + \Psi|^{1/2}}\exp{(-\frac{1}{2}(x-\mu)^T(\Lambda \Lambda ^T + \Psi)^{-1}(x-\mu))}] l(μ,Λ,Ψ)=i=1mlogp(x(i))=i=1mlog[(2π)n/2ΛΛT+Ψ1/21exp(21(xμ)T(ΛΛT+Ψ)1(xμ))]

    上式子如果直接偏导求解会比较麻烦(Σ\SigmaΣ不好化简), 在这里使用EM算法就能实现更简单的化简。

  • 1.3 如何使用EM算法化简因子分析模型
    在求解概率模型时,一般使用极大化对数似然函数或者使用贝叶斯法则进行化简,若在求偏导过程中发现不能得到比较好的表达式,此时可以尝试使用EM算法。一般EM算法适合求解概率模型是p(x)的情形,需要明确哪个是隐藏因子。\color{red}{一般EM算法适合求解概率模型是p(x)的情形,需要明确哪个是隐藏因子。}EMp(x)
    (1)构建观测变量x与隐藏变量z之间的联合概率分布\color{blue}{(1)构建观测变量x与隐藏变量z之间的联合概率分布}(1)xz
    由于EM算法涉及计算条件概率,因此对于多元高斯分布而言,一般将隐藏因子zzz与观测因子xxx放到一个变量中进行分析
    y=[zx],y∈R(k+n)∗1 y = \begin{bmatrix}z \\ x \end{bmatrix} ,y \in R^{(k+n)*1} y=[zx],yR(k+n)1

    上述这种写法方便分析两个高斯分布变量的关系,可知新变量yyy也是一个多元高斯分布,满足
    μy=[μzμx]=[0μ]Σy=[Σ11Σ12Σ21Σ22]Σ11=E[(Z−E[Z])(Z−E[Z])T]=I,∈Rk∗kΣ12=E[(Z−E[Z])(X−E[X])T]=ΛT,∈Rk∗nΣ21=E[(X−E[X])(Z−E[Z])T]=Λ,∈Rn∗kΣ22=E[(X−E[X])(X−E[X])T]=ΛΛT+Ψ,∈Rn∗n \mu _y = \begin{bmatrix} \mu _z \\ \mu _x \end{bmatrix}=\begin{bmatrix} 0 \\ \mu \end{bmatrix} \\ \Sigma _y = \begin{bmatrix} \Sigma _{11} & \Sigma _{12} \\ \Sigma _{21} & \Sigma _{22} \end{bmatrix} \\ \Sigma _{11} = E[(Z-E[Z])(Z-E[Z])^T] = I, \in R^{k*k} \\ \Sigma _{12} = E[(Z-E[Z])(X-E[X])^T] = \Lambda ^T, \in R^{k*n} \\ \Sigma _{21} = E[(X-E[X])(Z-E[Z])^T] = \Lambda, \in R^{n*k} \\ \Sigma _{22} = E[(X-E[X])(X-E[X])^T] = \Lambda \Lambda ^T + \Psi, \in R^{n*n} μy=[μzμx]=[0μ]Σy=[Σ11Σ21Σ12Σ22]Σ11=E[(ZE[Z])(ZE[Z])T]=I,RkkΣ12=E[(Z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值