頻度主義で行うのと特に何かが変わるというわけではないものの、Mplusでベイズ推定で因子分析を行った。
コード
DATA: FILE = "HS1939.dat"; VARIABLE: NAMES = x1 x2 x3 x4 x5 x6 x7 x8 x9; MISSING=.; ANALYSIS: ESTIMATOR = BAYES; PROCESS = 2; FBITER = 10000; MODEL: visual by x1-x3; textual by x4-x6; speed by x7-x9; OUTPUT: STDYX;
標準化した解を掲載する。
STDYX Standardization Posterior One-Tailed 95% C.I. Estimate S.D. P-Value Lower 2.5% Upper 2.5% Significance VISUAL BY X1 0.769 0.056 0.000 0.647 0.866 * X2 0.425 0.063 0.000 0.297 0.543 * X3 0.585 0.059 0.000 0.463 0.695 * TEXTUAL BY X4 0.852 0.024 0.000 0.800 0.894 * X5 0.855 0.023 0.000 0.807 0.897 * X6 0.838 0.024 0.000 0.786 0.881 * SPEED BY X7 0.562 0.057 0.000 0.437 0.664 * X8 0.720 0.065 0.000 0.575 0.831 * X9 0.669 0.067 0.000 0.540 0.804 * TEXTUAL WITH VISUAL 0.454 0.064 0.000 0.321 0.572 * SPEED WITH VISUAL 0.471 0.084 0.000 0.301 0.629 * TEXTUAL 0.281 0.071 0.000 0.142 0.417 * Intercepts X1 4.179 0.184 0.000 3.823 4.534 * X2 5.124 0.221 0.000 4.692 5.566 * X3 1.970 0.099 0.000 1.781 2.167 * X4 2.600 0.123 0.000 2.360 2.843 * X5 3.327 0.149 0.000 3.039 3.617 * X6 1.973 0.100 0.000 1.780 2.169 * X7 3.806 0.165 0.000 3.486 4.130 * X8 5.404 0.229 0.000 4.963 5.856 * X9 5.275 0.228 0.000 4.834 5.729 * Variances VISUAL 1.000 0.000 0.000 1.000 1.000 TEXTUAL 1.000 0.000 0.000 1.000 1.000 SPEED 1.000 0.000 0.000 1.000 1.000 Residual Variances X1 0.408 0.084 0.000 0.250 0.581 * X2 0.819 0.053 0.000 0.705 0.912 * X3 0.658 0.069 0.000 0.517 0.786 * X4 0.274 0.040 0.000 0.201 0.360 * X5 0.268 0.039 0.000 0.196 0.348 * X6 0.298 0.040 0.000 0.224 0.382 * X7 0.684 0.064 0.000 0.559 0.809 * X8 0.482 0.092 0.000 0.309 0.670 * X9 0.553 0.091 0.000 0.354 0.708 *
最尤法での推定
いわゆる普通の因子分析である。
DATA: FILE = "HS1939.dat"; VARIABLE: NAMES = x1 x2 x3 x4 x5 x6 x7 x8 x9; MISSING=.; ANALYSIS: ESTIMATOR = ML; MODEL: visual by x1-x3; textual by x4-x6; speed by x7-x9; OUTPUT: STDYX;
こちらも標準化した解。
STDYX Standardization Two-Tailed Estimate S.E. Est./S.E. P-Value VISUAL BY X1 0.772 0.058 13.417 0.000 X2 0.424 0.063 6.752 0.000 X3 0.581 0.058 9.941 0.000 TEXTUAL BY X4 0.852 0.023 37.612 0.000 X5 0.855 0.022 38.529 0.000 X6 0.838 0.024 35.597 0.000 SPEED BY X7 0.569 0.058 9.766 0.000 X8 0.723 0.062 11.607 0.000 X9 0.665 0.066 10.063 0.000 TEXTUAL WITH VISUAL 0.459 0.063 7.225 0.000 SPEED WITH VISUAL 0.471 0.086 5.457 0.000 TEXTUAL 0.283 0.071 3.960 0.000 Intercepts X1 4.235 0.182 23.272 0.000 X2 5.179 0.219 23.669 0.000 X3 1.993 0.100 20.010 0.000 X4 2.634 0.122 21.617 0.000 X5 3.369 0.149 22.623 0.000 X6 1.998 0.100 20.027 0.000 X7 3.848 0.167 23.030 0.000 X8 5.467 0.230 23.754 0.000 X9 5.334 0.225 23.716 0.000 Variances VISUAL 1.000 0.000 999.000 999.000 TEXTUAL 1.000 0.000 999.000 999.000 SPEED 1.000 0.000 999.000 999.000 Residual Variances X1 0.404 0.089 4.550 0.000 X2 0.821 0.053 15.438 0.000 X3 0.662 0.068 9.749 0.000 X4 0.275 0.039 7.126 0.000 X5 0.269 0.038 7.084 0.000 X6 0.298 0.039 7.546 0.000 X7 0.676 0.066 10.172 0.000 X8 0.477 0.090 5.298 0.000 X9 0.558 0.088 6.345 0.000
ちなみに標準化した解での共分散は当然ながら相関係数になる。
データ
データはRのlavaanパッケージに含まれるHolzingerSwineford1939
を利用した。
下記の手順でデータセットが作成できる。
dataの呼び出し
library(lavaan) data(HolzingerSwineford1939) dat <- HolzingerSwineford1939[7:15]
Mplusへの書き出し
library(MplusAutomation) variable.names(dat) # 変数名を書き出し prepareMplusData(dat, filename="HS1939.dat", keepCols=c("x1","x2","x3", "x4", "x5", "x6", "x7", "x8","x9"), overwrite=T)