Subsections

因子分析

データの読み込み

ここでは、Data Library にある練習用データを用いて因子分析を実行してみることにする。

[Open] メニューから [Data Library] $ \rightarrow$ [8. Network Analysis] と進むと、[BFI Network] というデータセットが見つかる。

右側のアイコンをダブルクリックして、.csv 形式のファイルを開いてみよう。

これは、パーソナリティに関する25項目の尺度(A1-O5)と性別、学歴、年齢からなるデータセット(2,800人分)である15

Image figjaspbfi

質問項目は以下の通り。(私家訳版)

A1
他人の気持ちには無関心である。
A2
他人の幸福をたずねる。
A3
人をどうやって安心させるかわかる。
A4
子供が好きだ。
A5
人々を気楽にさせる。
C1
仕事をするのが好きだ。
C2
何事も完璧になるまでやり遂げる。
C3
計画にそって物事を行う。
C4
物事を中途半端に終わらせる。
C5
時間を無駄にする。
E1
無口な方だ。
E2
人と接するのは難しい。
E3
人をどうやって魅了するかわかる。
E4
簡単に友達を作れる。
E5
人の上に立つ。
N1
怒りっぽい。
N2
いらいらしやすい。
N3
気分が変わりやすい。
N4
落ち込むことがある。
N5
パニックになりやすい。
O1
アイデアが豊富だ。
O2
難しい本は読みたくない。
O3
会話を高尚な方向に持っていく。
O4
状況をよく考えて時間を費やす。
O5
物事を深く調べようとはしない。

いずれも、「1=全くあてはまらない」から「6=とてもあてはまる」で得点化されている。 これらの項目に関して因子分析を適用することにしよう。

因子分析の実行

分析メニューから [Factor] $ \rightarrow$ [Exploratory Factor Analysis] と進むと、因子分析を実行する画面が現れる。

左側のボックスから分析に用いる A1-O5 までの25項目を選択し、右側の [Included Variables] に移動してやると、自動的に因子分析が実行され結果が右側画面に表示される。

因子負荷と独自性 uniqueness($ =1-$共通性)の値が [Component Loadings] として報告されている。 因子は RC1-RC6 と表示されており、自動的に因子数が6に設定されたことがわかる。

あとで述べるように、デフォルトでは一定の大きさ未満の因子負荷は "." として表示されるようになっている。 因子負荷行列を見る限り、どの因子にも大きな負荷を持たない項目(A4, A5, O4)があるほか、複数の因子に大きい負荷を持つ項目(O3)もあり、単純構造が満たされているとは言い難い。

Image figjaspfactordefault

変数を指定したボックスのすぐ下に、分析の詳細をコントロールするメニューが設けられている。

Image figjaspfactorspec

Number of Factors

因子数を決定する方法を指定する。 以下の3つから選ぶことができる。

  Parallel Analysis
平行分析による
  Eigenvalues
相関行列の固有値のうち基準値より大きいものの個数
  Manual
分析者が任意の数を指定する

デフォルトでは、平行分析(parallel analysis)と呼ばれる方法によって自動的に因子数が決められる。 これは、分析対象となる項目数と同じ数の乱数を発生させて相関行列を算出し、データの相関行列から計算された固有値のうち乱数による相関行列から計算された相関行列よりも大きいものの数を因子数とするというものである[3]。

固有値の値にもとづく方法を採用するのであれば、[Eigenvalues] を選択し [Eigenvalues above] に続くボックスに基準となる値を入力すればよい。 通常は1を用いることが多く、これをカイザー基準と呼ぶ。

スクリープロットを利用するのであれば、あとで述べる方法で表示されたスクリープロットの形状から [Manual] の [Number of Factors] に続くボックスに因子数を入力すればよい。 理論や経験にもとづいて因子数を指定する場合も同様である。

Rotation

因子の回転方法を指定する。

  Orthogonal
直交回転を行う(因子同士は無相関)
  Oblique
斜交回転を行う(因子間に相関関係を許す)

デフォルトでは、斜交回転のうち(プロマックス法 [promax])が選択されている。 斜交回転であっても別の方法を採用したい場合は、プルダウンメニューから選択することができる。 なお、プロマックス法以外ではオブリミン法 [oblimin] もよく用いられる。

また、直交回転はデフォルトでは回転なし [none] が入っている。 この場合は、初期解(最尤法により算出)が返されることになる。 プルダウンメニューからバリマックス法 [varimax] などを選択することができる。

その他の指定

デフォルトでは、絶対値が0.4未満の因子負荷は値が表示されない。 また、斜交回転を行った場合でも因子間相関が表示されないし、スクリープロットも得られない。

これらの設定は、下部にある [Output options] を開くことで変更することができる。

Image figjaspfactoroptions

Highlight

値を表示する因子負荷の基準を設定する。 デフォルトでは0.4となっている。 値の大きさに関わらずすべての因子負荷の値を表示させたいのであれば、スライダーを一番下まで移動させるか下のボックスに0と入力すればよい。

Include tables

因子負荷行列に加えて出力する情報を設定する。 デフォルトでは、どれにもチェックが入っていない。 因子間相関やスクリープロットなど、必要に応じてチェックを入れれば右側のボックスに結果が追加表示される。

  Factor correlations
因子間相関
  Additional fit indices
追加の適合度指標
  Path diagram
パス図
  Scree plot
スクリープロット

このデータの場合、[Scree plot] にチェックを入れると次のようなスクリープロットが得られる。 黒丸で表されたのがデータとして得られた相関行列の固有値を示している。

Image figjaspfactorscreeplot

Missing values

データに欠測があった場合の処理方法を指定する。

  Exclude cases pairwise
ペアワイズ除去
  Exclude cases listwise
リストワイズ除去

データに欠測がある場合、1変数でも欠測のあるケースはすべて分析から除去してしまう(リストワイズ)か、相関行列を算出する際にペアとしてデータがない場合のみ除去する(ペアワイズ)か、いずれかを選択できるようになっている。 デフォルトはペアワイズになっている。

因子数の変更と再分析

ここで、上で出力されたスクリープロットを見てみよう。 黒丸で表されたのがデータから得られた固有値であり、黒三角で表されたのが乱数から得られた固有値である。 平行分析ではこの黒三角より大きい黒丸の数を因子数とするのであるが、このプロットを見る限り第6固有値に関してはほとんど差がないようである。 また、第6固有値自体がほとんど1に近く、この場合は因子数5でもよいのではないかという気がしてくる。

そこで、因子数を5と指定して再分析してみることにしよう。 [Number of Factors] で [Manual] を選択し、ボックスに5と入力する。 その他の条件はデフォルトのまま維持するものとする。

すると、結果は次のようになる。 O4の因子負荷がいずれも0.4に届いていないが、それ以外はきれいな単純構造になっていることがわかる。 因子負荷がマイナスの項目は、逆転項目のはずである。 項目内容を確認してみよう。

Image figjaspfactorre

[Highlight] を操作してすべての因子負荷を出力させ、項目O4がどのような状態になっているのか調べてみよう。

Image figjaspfactoro4

すると、項目O4は因子5に最大の負荷 .376 を持っているものの、因子1や因子2、因子3にも .20 に近い負荷を持っていることがわかる。 独自性も .749 と高く(つまり共通性が低く)、他の項目と一緒に因子分析にかけることか妥当か少し疑わしい。 (項目O4の文言も再度チェックしてみよう。他の項目と比べて異質な内容になっているだろうか。)

そこで、ここでは項目O4を削除した上で、再度因子数を5とした因子分析を適用することにする。 項目O4を選択して右側のボックスから左側のボックスに移動させるだけでよい。

Image figjaspfactorwithouto4

うまくいくかと思いきや、今度は項目A4の因子負荷がいずれも0.4を下回るという結果になった。 このように、特定の項目を外すと、それ以外の項目の因子負荷にも影響が及ぶことになる。 1つ前の結果を見てみると、A4はもともと因子負荷がギリギリ0.4という項目だったことがわかる。

ここでさらにA4を省いて再分析するかどうかは分析者の裁量次第である。 今は、このままの結果を採用することとし、すべての因子負荷の値を表示させることにする。

得られた結果をコピーして編集したものが次の表である。


表 11.1: 因子負荷行列
  因子1 因子2 因子3 因子4 因子5 独自性
A1 .119 .151 .078 -.477 .094 .794
A2 .073 .078 .064 .617 -.025 .545
A3 .056 .210 -.001 .616 -.012 .469
A4 -.025 .099 .188 .387 .154 .721
A5 -.067 .336 -.028 .458 .008 .541
C1 .068 -.023 .562 -.056 -.122 .674
C2 .162 -.097 .696 .046 -.039 .548
C3 .032 -.083 .591 .062 .066 .680
C4 .187 .079 -.616 .014 .079 .551
C5 .234 -.075 -.544 .031 -.080 .585
E1 -.000 -.631 .161 .021 .021 .659
E2 .186 -.716 .049 .057 -.024 .478
E3 .088 .535 -.048 .147 -.196 .561
E4 -.049 .710 -.024 .120 .194 .447
E5 .113 .480 .238 -.047 -.135 .598
N1 .776 .156 .029 -.217 .076 .357
N2 .757 .098 .038 -.186 .014 .404
N3 .737 -.025 -.002 .008 -.008 .451
N4 .563 -.349 -.092 .120 -.116 .508
N5 .529 -.150 .037 .157 .144 .651
O1 .061 .169 .048 .015 -.459 .703
O2 .152 .102 -.053 .059 .503 .717
O3 .092 .238 -.020 .083 -.557 .548
O5 .057 .099 -.001 -.052 .568 .686

同様に、因子間相関も出力して次のように加工した。


表 11.2: 因子間相関
  因子1 因子2 因子3 因子4
因子2 -.199      
因子3 -.248 .457    
因子4 -.149 .555 .355  
因子5 .131 -.341 -.315 -.144

この結果から、因子1-因子5はどのように命名、解釈できるだろうか。 項目内容と照らし合わせながら各自考えてみてほしい。

因子分析は、このように様々な条件を試行錯誤で変えながら、解釈しやすい結果にたどり着くよう工夫を重ねるものである。 唯一絶対の正解があるわけではなく、多くの部分が分析者の裁量に委ねられることになる。 その分、なぜそのような選択をしたのか、説明する責任が分析者側にあるとも言える。

Taichi Okumura
2021-06-01