カテゴリカル確証的因子分析の求め方
因子分析にも探索的と確証的とあるんですね.
今回は,確証的因子分析について述べたいと思います.
<サンプルデータ>
7個の質問に対して4件法で回答を得たとします.
以下のようにExcelにデータを入力し,ファイル名を「sample.xlsx」として保存.A列は「ID」,B-H列は「各質問ごとに対する回答」を示しています.
install.packages("readxl ")
library(readxl)
dat <- read_excel("sample.xlsx", col_names=c("ID", paste0("v", 1:7)))
1行目は,readxlパッケージ(1)のインストールをしています.
readxlパッケージはexcelをRに読み込む関数です.
2行目は,readxlパッケージを読み込んでいます.
3行目は,datに「sample.xlsx」のファイルデータを格納しています.
paste0の中身の"v"は項目数を示しており, 1から7あることを示しています.
install.packages("lavaan")
library(lavaan)
model<-'fA =~v1 + v2 + v3 + v4 + v7
fB =~ v5 + v6 '
result<- cfa(model,data=dat,ordered=c("v1","v2","v3","v4","v5","v6","v7"),
estimator="WLSMV")
1行目は,lavaanパッケージ(2)のインストールをしてます.
2行目は,lavaanパッケージを読み込んでいます.
3行目-4行目は,modelにv1 + v2 + v3 + v4 + v7から構成される因子Aと,
v5+ v6で構成される因子Bを格納しています.
なお,v1はExcelデータのB列,v2はC列…をそれぞれ示しています.
(本データでは因子Aと因子Bの2因子としましたが,事前にデータに対して因子分析をかけておくことで最適な因子数が特定されます.因子数の決め方は,本サイトの「因子数の求め方」に記載してありますのでもしよければ参考にしてください)
5行目-6行目は,modelをresultに格納して実行しています.
cfa() は,検証的因子分析モデルに当てはめるための専用の関数なります.
ordered=はv1からv7をカテゴリカル変数に置き換えています.
estimator(推定法)は,WLSMV(重みつき最小二乗法)を指定しています.
summary(result,standardized=TRUE,fit.measures=TRUE)
summary() を用いて,当てはめたモデルの要約情報を表示することができます.
適合度指標をみると,良好な結果が得られていることがわかりますね^ ^
モデルの適合度指標(3):
CFI/TLI:当てはまりが良い(0.95以上)
User Model versus Baseline Model:
Comparative Fit Index (CFI) 0.993 0.973
Tucker-Lewis Index (TLI) 0.989 0.957
ご参考に〜
文献
(1) Hadley Wickham and Jennifer Bryan (2019). readxl: Read Excel Files. R
package version 1.3.1. https://CRAN.R-project.org/package=readxl
(2)Yves Rosseel (2012). lavaan: An R Package for Structural Equation
Modeling. Journal of Statistical Software, 48(2), 1-36. URL
http://www.jstatsoft.org/v48/i02/.
(3)清水考司・清水裕士:M-plusとRによる構造方程式モデリング入門.北大路書房,2014