因子分析

因子分析とは

因子分析とは、直接は観測できない共通の要因(因子)を数学的に推定する手法です。

例えば、数学・物理・化学のテストの点数には、「理系能力」という共通の因子があるかもしれません。 因子分析では、このような共通の因子を求めることができます。

因子分析の理論

確率変数ベクトル \(\boldsymbol{X}\in\mathbb{R}^d\) に対して、次のモデルを考えます。

\[ \boldsymbol{X}=\boldsymbol{\mu}+\Lambda\boldsymbol{f}+\boldsymbol{\varepsilon} \]

\(\boldsymbol{f}\in\mathbb{R}^k\) は共通因子ベクトルといい

\[ \boldsymbol{f} \sim \mathcal{N}(\boldsymbol{0},I_k) \]

を仮定します。

\(\Lambda\in\mathbb{R}^{d\times k}\) は因子負荷量行列といい、各因子がどれくらい影響度を持っているか(係数)を表します。

\(\boldsymbol{\varepsilon}\in\mathbb{R}^d\) は独自因子ベクトルといい

\[ \boldsymbol{\varepsilon} \sim \mathcal{N}(\boldsymbol{0},\Psi) \]

を仮定します。 \(\Psi\) は対角行列で、各成分は未知です。

また、\(\boldsymbol{f}\) と \(\boldsymbol{\varepsilon}\) は独立と仮定します。

\(\boldsymbol{X}\) の共分散行列 \(\Sigma_{\boldsymbol{X}}\) は

\[ \begin{align} \Sigma_{\boldsymbol{X}} &=E[(\boldsymbol{X}-\boldsymbol{\mu})(\boldsymbol{X}-\boldsymbol{\mu})^\top] \\ &=E[(\Lambda\boldsymbol{f}+\boldsymbol{\varepsilon})(\Lambda\boldsymbol{f}+\boldsymbol{\varepsilon})^\top] \\ &=E[(\Lambda\boldsymbol{f}+\boldsymbol{\varepsilon})(\boldsymbol{f}^\top\Lambda^\top+\boldsymbol{\varepsilon}^\top)] \\ &=E[\Lambda\boldsymbol{f}\boldsymbol{f}^\top\Lambda^\top + \boldsymbol{\varepsilon}\boldsymbol{f}^\top\Lambda^\top+\Lambda\boldsymbol{f}\varepsilon^\top+\boldsymbol{\varepsilon}\boldsymbol{\varepsilon}^\top] \\ &=E[\Lambda\boldsymbol{f}\boldsymbol{f}^\top\Lambda^\top] + E[\boldsymbol{\varepsilon}\boldsymbol{f}^\top\Lambda^\top] + E[\Lambda\boldsymbol{f}\varepsilon^\top] + E[\boldsymbol{\varepsilon}\boldsymbol{\varepsilon}^\top] \\ &=\Lambda E[\boldsymbol{f}\boldsymbol{f}^\top]\Lambda^\top + E[\boldsymbol{\varepsilon}\boldsymbol{f}^\top]\Lambda^\top + \Lambda E[\boldsymbol{f}\varepsilon^\top] + E[\boldsymbol{\varepsilon}\boldsymbol{\varepsilon}^\top] \\ &=\Lambda\Sigma_\boldsymbol{f}\Lambda^\top + O + O + \Sigma_\boldsymbol{\varepsilon} \\ &=\Lambda I_k\Lambda^\top + \Psi \\ &=\Lambda\Lambda^\top + \Psi \\ \end{align} \]

したがって、\(\boldsymbol{X}\sim\mathcal{N}(\boldsymbol{\mu},\Sigma_{\boldsymbol{X}})\) は

\[ \boldsymbol{X}\sim\mathcal{N}(\boldsymbol{\mu},\Lambda\Lambda^\top + \Psi) \]

となります。

最尤推定により、\(\Lambda,\Psi\) を推定します。 尤度関数は

\[ \begin{align} L(\boldsymbol{\mu},\Lambda,\Psi \mid \boldsymbol{x}) &=\prod_{i=1}^N\frac{1}{\sqrt{(2\pi)^d|\Lambda\Lambda^\top + \Psi|}}e^{-\frac{1}{2}(\boldsymbol{x}_i-\boldsymbol{\mu})^\top(\Lambda\Lambda^\top + \Psi)^{-1}(\boldsymbol{x}_i-\boldsymbol{\mu})} \end{align} \]

よって、対数尤度関数は

\[ \ell(\boldsymbol{\mu},\Lambda,\Psi \mid \boldsymbol{x})=-\frac{N}{2}\log|\Lambda\Lambda^\top + \Psi| - \frac{1}{2}\sum_{i=1}^N(\boldsymbol{x}_i-\boldsymbol{\mu})^\top(\Lambda\Lambda^\top + \Psi)^{-1}(\boldsymbol{x}_i-\boldsymbol{\mu}) + \mathrm{const.} \]

演習問題

問題
解答