見出し画像

【因子分析】 因子分析モデルは2タイプある

こんにちは、Aska Intelligenceの川本です。

この記事は、Zenn本『因子分析の導出』のなかからポイントとなる部分をダイジェスト的に紹介するものです。

因子分析モデルは、$${p}$$個の観測変数を持つデータ $${\bm{x}}$$ ($${p}$$次元ベクトル)に対して

$$
\bm{x} = \bm{f} \Lambda^{\top} + \bm{e}
$$

という式で表現されます。因子数を$${k}$$とすると、$${\bm{f}}$$は$${k}$$次元ベクトルの因子得点(もしくは共通因子)、$${\Lambda^{\top}}$$は$${k \times p}$$行列の因子負荷行列です($${\top}$$は行列の転置)。$${\bm{e}}$$は$${p}$$次元の乱数ベクトルで、独立因子残差と呼ばれているものです。

$${\bm{e}}$$の成分が乱数によって生成されるので、$${\bm{x}}$$の成分もそれに影響されてランダムな振る舞いをする確率変数になっています。

因子得点が確率変数のバージョンとパラメーターのバージョン

では$${\bm{f}}$$と$${\Lambda}$$はどうでしょうか?

$${\Lambda}$$の成分は因子負荷と呼ばれ、これの成分は推定するパラメーター(つまり確率的に変動しない値)です。

$${\bm{f}}$$の成分は因子得点と呼ばれます。因子負荷にかかる係数ベクトルです。

入門的な資料ではあまり触れられていることがないのですが、$${\bm{f}}$$をパラメーターとするバージョンの因子分析モデルと$${\bm{f}}$$を確率変数(乱数)とするバージョンの因子分析モデルがあります。

後者のバージョンで最もシンプルなものは、$${\bm{f}}$$の成分は標準正規乱数であるとするものです。つまり$${a}$$番目の成分について、$${f_{a} \sim \mathcal{N}(0,1)}$$です。

乱数にしてしまっていいの?と思うかもしれませんが、因子分析をする際には基本的に共分散行列によって分析を行うという事情と、因子の回転不定性があるせいで、$${\bm{f}}$$は乱数ベクトルになっていても意味のある分析($${\Lambda}$$の推定など)ができます。

因子得点の推定に関する説明が入門資料にはあまり見当たらないですが、おそらくその理由の1つは、$${\bm{f}}$$を乱数とするバージョンを採用しているからです。この場合$${\bm{f}}$$は推定する量ではありません。

$${\bm{f}}$$の推定を行うということは、乱数ではなくパラメーターだと思って因子分析モデルを扱っているということです。ただ、因子得点の推定法やその導出が詳しく書いてある文献はほとんど見当たりません。

下のZennの本に因子得点の推定について詳しく書いていますので、ご興味あれば買ってみてください。


因子分析についての入門資料はウェブ上に膨大にありますし、入門書やセミナーもたくさんありますが、ちゃんと数式を使って中身を説明したものはあまりないので、「ちゃんと公式を導出して理解する本」をZennで書きました。

この記事が気に入ったらサポートをしてみませんか?