頻度主義で行うのと特に何かが変わるというわけではないものの、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)