複数の観測変数によって1つの構成概念が規定され、その構成概念が別の観測変数群に影響を与えているようなモデルをMIMIC(Multiple Indicator Multiple Cause)モデルと呼ぶ。
MIMICモデルのデモを見ていると、Mplusの例5.8を使ったものが多かったので、それを走らせてみたい。 このケースは確証的因子分析(Confirmatory Factor Analysis)の拡張モデルである。
R lavaan
まずlavaanで扱えるようにデータを整える。
# Example 5.8 from Mplus user guide: Data <- read.table("http://www.statmodel.com/usersguide/chap5/ex5.8.dat") # Add variable names names(Data) <- c(paste("y", 1:6, sep = ""), paste("x", 1:3, sep = ""))
このようなデータになる。
実行コードは下記。
library("lavaan") model <- ' f1 =~ y1 + y2 + y3 f2 =~ y4 + y5 + y6 f1 + f2 ~ x1 + x2 + x3' fit <- lavaan:::cfa(model, data = Data, std.lv = TRUE) summary(fit, standardized=TRUE, fit.measures=TRUE)
結果。
lavaan 0.6-5 ended normally after 36 iterations Estimator ML Optimization method NLMINB Number of free parameters 19 Number of observations 500 Model Test User Model: Test statistic 20.023 Degrees of freedom 20 P-value (Chi-square) 0.457 Model Test Baseline Model: Test statistic 4176.601 Degrees of freedom 33 P-value 0.000 User Model versus Baseline Model: Comparative Fit Index (CFI) 1.000 Tucker-Lewis Index (TLI) 1.000 Loglikelihood and Information Criteria: Loglikelihood user model (H0) -4000.617 Loglikelihood unrestricted model (H1) -3990.606 Akaike (AIC) 8039.235 Bayesian (BIC) 8119.312 Sample-size adjusted Bayesian (BIC) 8059.005 Root Mean Square Error of Approximation: RMSEA 0.002 90 Percent confidence interval - lower 0.000 90 Percent confidence interval - upper 0.038 P-value RMSEA <= 0.05 0.994 Standardized Root Mean Square Residual: SRMR 0.008 Parameter Estimates: Information Expected Information saturated (h1) model Structured Standard errors Standard Latent Variables: Estimate Std.Err z-value P(>|z|) Std.lv Std.all f1 =~ y1 0.849 0.036 23.407 0.000 1.643 0.914 y2 0.876 0.037 23.627 0.000 1.696 0.921 y3 0.867 0.037 23.733 0.000 1.679 0.925 f2 =~ y4 0.802 0.035 23.067 0.000 1.748 0.922 y5 0.780 0.033 23.504 0.000 1.700 0.937 y6 0.783 0.034 23.046 0.000 1.707 0.921 Regressions: Estimate Std.Err z-value P(>|z|) Std.lv Std.all f1 ~ x1 0.585 0.037 15.786 0.000 0.302 0.517 x2 0.667 0.043 15.414 0.000 0.345 0.497 x3 0.814 0.058 13.950 0.000 0.420 0.429 f2 ~ x1 0.846 0.045 18.783 0.000 0.388 0.663 x2 0.750 0.046 16.237 0.000 0.344 0.496 x3 0.539 0.054 9.975 0.000 0.247 0.252 Covariances: Estimate Std.Err z-value P(>|z|) Std.lv Std.all .f1 ~~ .f2 0.336 0.051 6.621 0.000 0.336 0.336 Variances: Estimate Std.Err z-value P(>|z|) Std.lv Std.all .y1 0.529 0.046 11.505 0.000 0.529 0.164 .y2 0.512 0.046 11.056 0.000 0.512 0.151 .y3 0.477 0.044 10.806 0.000 0.477 0.145 .y4 0.541 0.046 11.678 0.000 0.541 0.151 .y5 0.399 0.038 10.490 0.000 0.399 0.121 .y6 0.522 0.044 11.722 0.000 0.522 0.152 .f1 1.000 0.267 0.267 .f2 1.000 0.210 0.210
パス図
ついでにsemPlotパッケージで描画もしておこう。
library(semPlot) semPaths(fit, title = FALSE, curvePivot = TRUE)
やはり手書きの方がキレイに描けるが、自動でここまでやってくれるのだから文句も言えないだろう。
Mplus
Mplusの例を使ったので、Mplusでも同じように走らせておこう。ちなみに結果は微妙に違っている。
inpファイルは下記。
TITLE: this is an example of a CFA with covariates (MIMIC) with continuous factor indicators DATA: FILE IS ex5.8.dat; VARIABLE: NAMES ARE y1-y6 x1-x3; MODEL: f1 BY y1-y3; f2 BY y4-y6; f1 f2 ON x1-x3;
データはこちらからダウンロード。 http://www.statmodel.com/usersguide/chapter5.shtml
this is an example of a CFA with covariates (MIMIC) with continuous factor indicators SUMMARY OF ANALYSIS Number of groups 1 Number of observations 500 Number of dependent variables 6 Number of independent variables 3 Number of continuous latent variables 2 Observed dependent variables Continuous Y1 Y2 Y3 Y4 Y5 Y6 Observed independent variables X1 X2 X3 Continuous latent variables F1 F2 Estimator ML Information matrix OBSERVED Maximum number of iterations 1000 Convergence criterion 0.500D-04 Maximum number of steepest descent iterations 20 Input data file(s) ex5.8.dat Input data format FREE UNIVARIATE SAMPLE STATISTICS UNIVARIATE HIGHER-ORDER MOMENT DESCRIPTIVE STATISTICS Variable/ Mean/ Skewness/ Minimum/ % with Percentiles Sample Size Variance Kurtosis Maximum Min/Max 20%/60% 40%/80% Median Y1 2.066 -0.174 -2.827 0.20% 0.516 1.668 2.111 500.000 3.227 -0.300 6.876 0.20% 2.616 3.685 Y2 2.088 0.021 -2.785 0.20% 0.544 1.611 2.178 500.000 3.388 -0.114 7.456 0.20% 2.561 3.658 Y3 2.088 0.036 -2.223 0.20% 0.534 1.685 2.046 500.000 3.295 -0.323 6.987 0.20% 2.510 3.553 Y4 1.663 -0.017 -3.780 0.20% 0.067 1.162 1.694 500.000 3.595 -0.233 7.734 0.20% 2.122 3.307 Y5 1.623 -0.138 -3.931 0.20% 0.039 1.236 1.649 500.000 3.290 -0.253 5.979 0.20% 2.060 3.303 Y6 1.596 -0.104 -3.491 0.20% 0.040 1.122 1.588 500.000 3.434 -0.338 6.396 0.20% 2.087 3.243 X1 -0.061 -0.070 -5.568 0.20% -1.405 -0.513 -0.093 500.000 2.921 0.161 4.844 0.20% 0.268 1.410 X2 1.033 -0.175 -4.642 0.20% -0.089 0.776 1.082 500.000 2.082 0.136 4.880 0.20% 1.424 2.167 X3 2.090 0.036 -0.597 0.20% 1.176 1.777 2.115 500.000 1.042 -0.377 4.840 0.20% 2.374 3.002 THE MODEL ESTIMATION TERMINATED NORMALLY MODEL FIT INFORMATION Number of Free Parameters 25 Loglikelihood H0 Value -4000.617 H1 Value -3990.606 Information Criteria Akaike (AIC) 8051.235 Bayesian (BIC) 8156.600 Sample-Size Adjusted BIC 8077.248 (n* = (n + 2) / 24) Chi-Square Test of Model Fit Value 20.023 Degrees of Freedom 20 P-Value 0.4565 RMSEA (Root Mean Square Error Of Approximation) Estimate 0.002 90 Percent C.I. 0.000 0.038 Probability RMSEA <= .05 0.994 CFI/TLI CFI 1.000 TLI 1.000 Chi-Square Test of Model Fit for the Baseline Model Value 4176.601 Degrees of Freedom 33 P-Value 0.0000 SRMR (Standardized Root Mean Square Residual) Value 0.008 MODEL RESULTS Two-Tailed Estimate S.E. Est./S.E. P-Value F1 BY Y1 1.000 0.000 999.000 999.000 Y2 1.032 0.030 34.711 0.000 Y3 1.022 0.029 34.981 0.000 F2 BY Y4 1.000 0.000 999.000 999.000 Y5 0.973 0.026 38.093 0.000 Y6 0.977 0.027 35.735 0.000 F1 ON X1 0.497 0.026 18.964 0.000 X2 0.566 0.031 18.283 0.000 X3 0.691 0.043 15.968 0.000 F2 ON X1 0.678 0.026 25.863 0.000 X2 0.601 0.030 20.268 0.000 X3 0.432 0.040 10.711 0.000 F2 WITH F1 0.228 0.040 5.762 0.000 Intercepts Y1 0.068 0.108 0.633 0.527 Y2 0.025 0.110 0.227 0.820 Y3 0.046 0.109 0.421 0.674 Y4 0.179 0.101 1.774 0.076 Y5 0.180 0.096 1.873 0.061 Y6 0.147 0.099 1.488 0.137 Residual Variances Y1 0.529 0.046 11.496 0.000 Y2 0.512 0.046 11.064 0.000 Y3 0.477 0.044 10.789 0.000 Y4 0.541 0.046 11.655 0.000 Y5 0.399 0.038 10.485 0.000 Y6 0.522 0.045 11.659 0.000 F1 0.720 0.061 11.717 0.000 F2 0.643 0.056 11.471 0.000
MplusのDiagrammer
RのsemPlotパッケージよりこちらの方がキレイに出力される気がする。
何も手を入れていないが、いろいろと手が入れられるので、もう少しキレイな感じに仕上げることができる。
参考
https://personality-project.org/revelle/syllabi/454/454.wk9.pdf