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,μ,ϵ∈Rn∗1,Λ∈Rn∗k,z∈Rk∗1上式中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[(X−E[X])(X−E[X])T]=ΛΣzΛT+Σϵ=ΛΛT+Ψ -
1.2 如何构建概率模型
机器学习中很重要的一步就是构建概率模型,模型建立的不一样时,所采用的求解方法也不一样。在因子分析中,由于没有观测到隐藏因子z的值,因此只能构建p(x)模型\color{red}{在因子分析中,由于没有观测到隐藏因子z的值,因此只能构建p(x)模型}在因子分析中,由于没有观测到隐藏因子z的值,因此只能构建p(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=1mlogp(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=1∑mlogp(x(i))=i=1∑mlog[(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)的情形,需要明确哪个是隐藏因子。}一般EM算法适合求解概率模型是p(x)的情形,需要明确哪个是隐藏因子。
(1)构建观测变量x与隐藏变量z之间的联合概率分布\color{blue}{(1)构建观测变量x与隐藏变量z之间的联合概率分布}(1)构建观测变量x与隐藏变量z之间的联合概率分布
由于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],y∈R(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[(Z−E[Z])(Z−E[Z])T]=I,∈Rk∗kΣ12=E[(Z