好奇心の横断歩道を創る!

自分の思考をラバーダック・デバッグするためのブログ

因子分析の直感的な解釈~~ものぐさ君がなんとなく分かったつもりになるためのメモ~~

※おそらく明確に間違った記述が含まれていると思われます。ご注意ください。私自身の勉強が進み次第、訂正や追記をしていく予定です。

 

難しいことをできるだけ避けて、直感的に因子分析を分かった気になりたい私のような横着者ために、因子分析の結果の解釈を説明を試みる。具体的な計算手順には触れない。行列の基本がわかる人向けかも。数学強者に言わせれば、下の説明は穴だらけだと思うが、目くじら立てないでほしい。因子分析の解釈に必要な厳密な説明を見つけたければ、”因子分析 数学”でググったり、それっぽい本を読んだりすればいいと思う。

 

 

概要、全体像

因子分析は普通、行列を使って説明される。

Z:観測変数を示す行列

A:因子負荷行列

F:共通因子行列

E:独自因子行列

このように変数を置いたときに、

ZAFE

となるA,F,Eの組み合わせの中から、解釈し易い”良い感じの組み合わせ”を選ぶのが、因子分析の基本だと思う。

共通因子の数をLと想定した場合、Z,EがM行N列、AがM行L列、FがL行M列の行列になる。

因子分析では、共通因子の数Lを分析者が主観で設定してみて、その時のA,F,Eの様子を観察する。共通因子の数を決める過程は、絶対的な手続きがあるわけではないので、あくまで分析者の意図が反映されているとみるべきだ。また、後で触れるが、共通因子の数以外の理由で、分析者の意図がA,F,Eに反映される。客観的に因果関係を探る方法だとは思わない方が良いと思う。

i行j列の成分をxijと表現するとき、

f:id:rokaboNatttsu:20211221192852p:plain

である。本質的に、線形一次のモデルなのだ。事実が非線形な因果関係で結ばれていた場合、因子分析が客観的な因果関係を説明することはできない。

 

概要みたいなのはここまで。ここからは、少し詳しく細かく見ていく。

 

 

各行列について

これ以降、説明のために、一人当たりのアンケート質問数M、調査対象になった人数Nの場合を想定する。i=1,2,3,,,N   j=1,2,3,,,M となる。

 

観測変数Zの行列について

まず変数Zについて。Zは観測変数を表す行列。同じ列に属する行列の成分は、同じ人の情報を表し、同じ行に属する成分は同じ質問の情報を表す。それぞれの行に対して平均0,分散1になるように正規化する。

f:id:rokaboNatttsu:20211221211416p:plain

f:id:rokaboNatttsu:20211221211447p:plain

Zの正規化は因子分析の準備段階で行うことだ。

 

 

因子行列FEについて

「観測する変数Zに影響を与える潜在的な原因」という設定を与えられているのが、共通因子行列Fと独自因子行列Eである。(Eを誤差と解釈するのは、おそらく不適切。)仮に因子分析の結果が真正の因果関係を表現できていた場合、FEはともに観測変数Zに影響を与える原因と対応する。

Eは独自因子と名乗るだけあって、一つの観測変数zijに影響を与える独自因子はeijだけである。eijは、一つの原因からの影響を表すのではなく、むしろ、複数の原因の影響を合成した結果だと解釈するべきだと思う。Eは行で平均が0になるという前提をとるらしい。

f:id:rokaboNatttsu:20211221205844p:plain

Fは「複数の観測変数に対して影響を与える、観測されていない原因=共通因子」を想定している。Fの任意の列は、調査対象になった任意の人の持っている共通因子(遺伝や特定の経験の有無などを表す指標)である。Fの任意の行は、「任意の共通因子」の個人差を表す。Fはそれぞれの行で、平均0分散1に正規化される。

f:id:rokaboNatttsu:20211221210822p:plain

f:id:rokaboNatttsu:20211221211141p:plain

各人が持つ特定の因子について、分布を正規化しているのだ。

 

 

因子負荷行列Aについて

続いて因子負荷行列Aについて。Aの行は、それぞれの共通因子が、特定の観測結果にどの程度影響を及ぼすかを表す。特定の質問の答えが因子から受ける影響の比重を表している、ということだ。aは0以上1以下の範囲の値をとる。Aの列は、特定の共通因子が各質問の答えにどの程度影響を与えるかを示す。因子負荷というネーミングセンス、すげぇよ。

f:id:rokaboNatttsu:20220402024736p:plain

を共通性と呼び、共通因子で観測変数の分散の何%が説明できたかを示す、とされる。

f:id:rokaboNatttsu:20220402024833p:plain

という性質もあるらしい。

 

因子分析の主観性

因子分析は、手元のデータを用いてその奥に隠された「原因」を自動的にあぶりだす魔法のような分析手法、ではない。我々詐欺師には、高尚な分析手法を使いこなしているフリをしながら、無知な人々をだます義務がある。

 

行列の性質上、

ZAFE

となるA,F,Eの組み合わせは無限にある。回転を表す行列Rを用いて、

ZAFEAR⁻¹RFEA’F’E

のように変形できるからだ。因子分析では、解釈しやすさを基準にして、いい感じのA’F’を分析結果として採用するのが普通らしい。

 

Fの行ベクトル同士が直交するという条件を付ける場合もある。(Fの行ベクトルの直行と、共通因子間の相関係数0は、同じ意味のはず。)直交因子分析などと呼ぶらしい。因子同士の影響が直交するという前提は非現実的なので、コンピュータの計算能力が高くなった最近では、直交因子分析を使うことも以前より少なくなっているらしい。

 

因子分析の実用例~~ビッグファイブ理論~~

性格心理学の世界で多用されるビッグファイブは、因子の数を5つに指定し、多くの人に対して「人の性格を表現する単語」がどの程度当てはまるかを質問で評価し、直交因子分析を行ったもの。A’F’の組み合わせのうち、因子負荷行列A’が小さい行列Aiを使って

A1 0   0   0   0

0   A2 0   0   0

0   0   A3 0   0

0   0   0   A4 0

0   0   0   0   A5

みたいに表現できるものを選んでいる。(小さい0行列は厳密には0行列ではない。) A’は5列。Aiは1列。性格を表す単語の任意のクラスターと、それ以外のクラスターの間に、相関がほとんど出ない。

 

 

因子分析を学べる資料

数学的に(厳密に?)因子分析を説明した情報源を、知ってる範囲でリンクしておく。私だって、書けるならこのくらいのハイクオリティで書きたい。

http://racco.mikeneko.jp/Kougi/10s/AS/AS12pr.pdf

http://cogpsy.educ.kyoto-u.ac.jp/personal/Kusumi/datasem13/masuda.pdf

『マンガでわかる統計学 因子分析編』|感想・レビュー - 読書メーター