日誌

検証的(確証的/確認的)因子分析:confirmatory factor analysis(CFA)

Stata 13.1での検証的(確証的/確認的)因子分析について,共分散構造分析
を用いた分析の仕方をまとめます。主には

 help two-factor measurement model

のコマンドで参照されるマニュアルの記述を参考にしています。

データは,現実に扱うデータのタイプによく合致していた
Rのパッケージpsychのbfiデータを使います。
RのデータセットをStataデータセットに変換するには↓参照

EZRでパッケージ中のRデータセットをStataデータセットに変換する


■bfiデータの説明

まず,Rにpsychパッケージが入っていることが前提ですが,
Rの方で

library(psych)
help(bfi)

と書いて実行すると説明が読めます。

25 Personality items representing 5 factors
5因子を表すパーソナリティに関する25項目

とあり,

国際パーソナリティ項目プールからの2800名分のデータ。
それぞれの因子に対応した質問項目A1からA5,C1からC5,E1からE5,N1からN5,O1からO5
の変数に加え,性,教育歴,年齢の変数もあり

といった内容になっています。
想定される因子は,5項目ずつにあり

Agree             →A1からA5
Conscientious →C1からC5
Extraversion    →E1からE5
Neuroticism    →N1からN5
Openness     →O1からO5

となっていて,因子名の頭文字が変数名と対応しています。

■解析手順

ここからはStataでのコマンドです。
まず,Stataデータセットに変換したbfiデータを開きます。
次に,記述統計を確認します。

sum A1-O5

とハイフンを使えば簡単に全項目の記述統計が見られます。
途中まで示してみると,

  Variable |       Obs        Mean    Std. Dev.       Min        Max
--------------+------------------------------------------------------------------------
          A1 |      2784    2.413434    1.407737          1          6
          A2 |      2773     4.80238     1.17202           1          6
          A3 |      2774    4.603821    1.301834          1          6
          A4 |      2781    4.699748    1.479633          1          6
          A5 |      2784    4.560345    1.258512          1          6
-------------+--------------------------------------------------------
          C1 |      2779    4.502339    1.241347          1          6
          C2 |      2776    4.369957    1.318347          1          6
          C3 |      2780    4.303957    1.288552          1          6
          C4 |      2774    2.553353    1.375118          1          6
          C5 |      2784    3.296695    1.628542          1          6
-------------+-------------------------------------------------------------------------


という感じです。
Obsがばらばらなので,適度に欠損値がみられるデータということになります。
欠損のパターンをみたい場合は,↓参照

データの欠損を数える

さて,いよいよCFAの分析に入ります。

SEM Builderを使ってお絵描き風にやってもよいのですが,
コマンドで書いた方がはるかに楽なので,次のようにします。
途中で改行してるので,do-file エディタに以下のように書きます。
エディタはメニューのアイコン押すか,doeditというコマンドで開きます

sem (A1-A5 <- Agree)(C1-C5 <- Conscientious)(E1-E5 <- Extraversion) ///
       (N1-N5 <- Neuroticism)(O1-O5 <- Openness), nocapslatent           ///
       latent(Agree Conscientious Extraversion Neuroticism Openness)


簡単に解説すると,(A1-A5 <-Agree)というのは,A1-A5の項目にAgreeという
潜在変数(因子)が対応しているという意味で,それが5因子分繰り返されています。

通常は,潜在変数の頭文字が大文字,観測変数の頭文字が小文字であることを
想定しているので,変数の頭文字が大文字だったりする場合,nocapslatent
オプションとlatentオプションをつけるみたいです。latent( )の中に因子名が
並んでいますが,ここで潜在変数を明示しています。
結果は長いので省きますが,係数の一覧等が出てくるはずです。
標準化係数を出すには,次のコマンドを実行します。

sem, standardized


次に,適合度指標一覧を算出します。

estat gof, stats(all)

----------------------------------------------------------------------------
     Fit statistic          |      Value        Description
-------------------------------+------------------------------------------------------
     Likelihood ratio     |
           chi2_ms(265) |   4165.467   model vs. saturated
                   p > chi2 |      0.000
            chi2_bs(300) |  18222.116   baseline vs. saturated
                   p > chi2 |      0.000
-------------------------------+------------------------------------------------------
    Population error     |
                   RMSEA |      0.078   Root mean squared error of approximation
 90% CI, lower bound |      0.076
             upper bound |      0.080
                     pclose |      0.000   Probability RMSEA <= 0.05
-------------------------------+------------------------------------------------------
    Information criteria |
                         AIC | 199850.476   Akaike's information criterion
                         BIC | 200343.316   Bayesian information criterion
-------------------------------+------------------------------------------------------
Baseline comparison  |
                          CFI |      0.782   Comparative fit index
                           TLI |      0.754   Tucker-Lewis index
-------------------------------+------------------------------------------------------
    Size of residuals    |
                      SRMR |      0.073   Standardized root mean squared residual
                           CD |      0.999   Coefficient of determination
-----------------------------------------------------------------------------------------


一般的には,カイ二乗値,CFI, TLI, RMSEAとその90%信頼区間,SRMRなどが分かれば
よいので,これで論文に記載する情報がとりあえずそろいます。

因子間相関については
検証的(確証的/確認的)因子分析 (2)因子間相関