前回に引きつづき潜在クラス分析におけるBCH法について。
http://www.statmodel.com/examples/webnotes/webnote4.zip
今回は共変量(X)を設定し、従属変数(Y)に回帰するモデルである。
データが見つからなかったのでRで仮想データ作成した。適当に乱数を発生させているので、分析内容には意味がない。作成方法はエントリの最後に記載している。
ステップ1
手順が少し複雑で2ステップで行う。一つ目のコマンドファイル?(.inp)を作成する。ファイル名は任意のものでよい。
TITLE: LCA BCH Method Step1 DATA: FILE = manBCH.dat; VARIABLE: NAMES = U1-U10 X Y; USEVARIABLES = U1-U10; CATEGORICAL = U1-U10; CLASSES = C(3); AUXILIARY = X Y; ANALYSIS: TYPE = MIXTURE; SAVEDATA: FILE = manBCH2.dat; SAVE = bchweights;
ウェブノートにもあるように、クラス数は3つ(CLASSES = C(3)
)である。
USEVARIABLES
に入れるのは潜在クラス分析に使用するU1-U10
だけである。CATEGORICAL
も同様である。
AUXILIARY
は共変量Xと従属変数のYを入れておく。
SAVEDATA
にはSAVE = bchweights;
を入れる。これはBCHのウェイトを書き出して、ステップ2で使用するためである。
実行するとmanBCH2.dat
というファイルが生成される。manBCH2.dat
はもともとのデータファイルmanBCH.dat
のXの後にウェイトの変数W1, W2, W3とMLC(Multilevel Latent Covariate)が継ぎ足されたデータになっている。
ステップ2
ステップ2が実際の分析コードである。
TITLE: LCA BCH Method Step2 DATA: FILE = manBCH2.dat; VARIABLE: NAMES = U1-U10 Y X W1-W3 MLC; USEVARIABLES = Y X W1-W3; TRAINING = W1-W3(bch); CLASSES = C(3); ANALYSIS: TYPE = MIXTURE; STARTS = 0; ESTIMATOR = MLR; MODEL: %overall% Y on X; %C#1% Y on X; %C#2% Y on X; %C#3% Y on X;
ステップ2では潜在クラス分析のインジケーターであるU1-U10
が含まれていない。
TRAINING = W1-W3(bch)
がそれぞれのクラスのウェイトの変数であり、補助コマンドである(bch)
がつけられている。
ANALYSIS
の中でStart=0;
となっているのは複数グループの解析でランダム値は必要がないためだ。
結果
MODEL RESULTS Two-Tailed Estimate S.E. Est./S.E. P-Value Latent Class 1 Y ON X -0.829 6.076 -0.136 0.892 Intercepts Y 464.431 217.155 2.139 0.032 Residual Variances Y 33326.199 2144.244 15.542 0.000 Latent Class 2 Y ON X 5.690 10.162 0.560 0.576 Intercepts Y 343.382 370.228 0.927 0.354 Residual Variances Y 33326.199 2144.244 15.542 0.000 Latent Class 3 Y ON X -0.425 0.783 -0.542 0.588 Intercepts Y 485.161 41.606 11.661 0.000 Residual Variances Y 33326.199 2144.244 15.542 0.000 Categorical Latent Variables Means C#1 -2.103 0.380 -5.529 0.000 C#2 -2.299 0.441 -5.213 0.000
Rでの仮想データの作成
仮想データの作成
U1 <- sample(0:1, 1000, replace=T,prob=c(0.4,0.6)) U2 <- sample(0:1, 1000, replace=T,prob=c(0.2,0.8)) U3 <- sample(0:1, 1000, replace=T,prob=c(0.5,0.5)) U4 <- sample(0:1, 1000, replace=T,prob=c(0.6,0.4)) U5 <- sample(0:1, 1000, replace=T,prob=c(0.3,0.7)) U6 <- sample(0:1, 1000, replace=T,prob=c(0.9,0.1)) U7 <- sample(0:1, 1000, replace=T,prob=c(0.5,0.5)) U8 <- sample(0:1, 1000, replace=T,prob=c(0.6,0.4)) U9 <- sample(0:1, 1000, replace=T,prob=c(0.8,0.2)) U10 <- sample(0:1, 1000, replace=T,prob=c(0.55,0.45)) X <- sample(20:75, 1000, replace=T) Y <- sample(150:800, 1000, replace=T) d0<- cbind(U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,X,Y) df <- as.data.frame(d0)
Mplusへの書き出し1
library(MplusAutomation) variable.names(df) # 変数名を書き出し
Mplusへの書き出し2
prepareMplusData(df, filename="manBCH.dat", keepCols=c("U1","U2","U3", "U4", "U5", "U6", "U7", "U8", "U9", "U10","X","Y"), overwrite=T)
manBCH.dat
という仮想データが書き出される。
参考文献
- Asparouhov T. & Muthen B. (2014). Auxiliary variables in mixture modeling: Three-step approaches using Mplus. Structural Equation Modeling: A Multidisciplinary Journal, 21, 329-341. http://statmodel.com/download/AppendicesOct28.pdf