Mplusで因子分析 & 因子選択の基準

Mplusで因子分析をしたことがなかったので、勉強がてらのメモ。

今回行うのは、下記のエントリで行った探索的因子分析の内容と同じである。

ides.hatenablog.com

データはこちらから

Mplusのコード

TITLE:
    Exploratory Factor Analysis by Mplus, using NEO data.

DATA:
    FILE = "...\bfi_nvn_utf.csv";

VARIABLE:
    NAMES = id A1-A5 C1-C5 E1-E5 N1-N5 gender education age;
    USEVARIABLES = A1-A5 C1-C5 E1-E5 N1-N5;
    MISSING = .;

ANALYSIS:
    TYPE = EFA 3 6;
    ESTIMATOR = ML;
    ROTATION = oblimin;
    PARALLEL = 50;

PLOT:
   TYPE = plot2;

OUTPUT:
    residual;

DATA:
データを置いた場所を指定する。日本語のフォルダ内に入れない方が良い。データのエンコードUTF-8にしておこう。

VARIABLE:
今回使うのはA1からN5の25個のデータ。

ANALYSIS:
EFAとはExploratory Factor Analysisの省略。
3 6となっているのは、3因子モデルから6因子モデルを検討するという意味。
推定法はML、回転はオブリミオン回転を指定している。回転を指定しない場合のデフォルト値はオブリミオン回転なので、指定はしなくてもよい。
PARALLELは平行分析のサンプリング数。この数を大きくすると、計算が長くなるのでほどほどにしておこう。Mplusのマニュアルでは50回と例示されてある*1が、 Finch & Bolin(2017)では1000という例示がある(p.177)のでマシンパワーがあれば大きい数字でもよいのだろう。

PLOT:
スクリープロットの出力を指定。

まず因子数を決めることから始める。 とはいっても、このデータの妥当な因子数はよくわからない。

ガットマン基準

RESULTS FOR EXPLORATORY FACTOR ANALYSIS


           EIGENVALUES FOR SAMPLE CORRELATION MATRIX
                  1             2             3             4             5
              ________      ________      ________      ________      ________
                4.729         2.581         2.019         1.468         0.979

固有値1を超えるのは4因子モデルである。5因子モデルになると0.979と1を切るため、固有値を1以上とするガットマン基準からは4因子モデルが提案される。

モデル改善の検定

モデルのフィッティングを見てみよう。

SUMMARY OF MODEL FIT INFORMATION


                                  Degrees of
     Model           Chi-Square    Freedom     P-Value

     3-factor          2794.270       133       0.0000
     4-factor          1376.733       116       0.0000
     5-factor           903.210       100       0.0000
     6-factor           649.008        85       0.0000

                                               Degrees of
     Models Compared              Chi-Square    Freedom     P-Value

     3-factor against 4-factor      1417.537        17       0.0000
     4-factor against 5-factor       473.523        16       0.0000
     5-factor against 6-factor       254.203        15       0.0000

Models Comparedのところをみると、モデルが改善されたかがわかる。改善しなくなったところで打ち止めをするのが通常である。具体的にはカイ二乗検定のP値をみる。例えば、6因子モデルのP値が0.360とかになっていると、モデルが改善していないとして、一つ前の5因子モデルを採用する。

ただ、実際には6因子モデルも0.000なので、5→6因子モデルにすることによってフィッティングは改善していることになっている。

MAP

Velicer(1976)のMinimum Average Partial(MAP)はMplusのオプションには含まれないようだ*2

MAPの値を出せるのは、服部先生の「忍者はっとりくん」、清水先生のHAD、RのpsychパッケージにあるVSS()関数のようだ。MAPのデータが必要な時には別のプログラムが必要である。

BIC

Model BIC
3-factor 184190.261
4-factor 182907.658
5-factor 182561.134
6-factor 182425.992

BICは小さいほうがフィッティングがよいとされている。微妙に数値が現象して行っているが、6因子が最も小さく、値も劇的に改善しているとも言いづらいため、あまり参考にはならなさそうである。

ちなみに、BICはプロマックス回転では出力されない。

スクリープロット

下の図はスクリープロットと平行分析の図である。

f:id:iDES:20190712174514p:plain

スクリープロットは推移がなだらかになる前までの数値を採用するので、4因子モデルが良さそうである。

平行分析

黒色の斜め横点線より上側の因子数を採用する方法である。清水先生のブログでちゃんと説明されているのでま詳しい解説はそちらで。

このデータの場合は4因子モデルが支持されている。

結論

基準を総合すると4因子モデルがよさそうである。
このデータはNEOなのでもともとは5因子モデルのデータであったはずなのだが、統計量は4因子モデルを指示している。

Multilevel Modeling Using Mplus (Chapman & Hall/CRC Statistics in the Social and Behavioral Sciences)

Multilevel Modeling Using Mplus (Chapman & Hall/CRC Statistics in the Social and Behavioral Sciences)