library(tidySEM)
library(lavaan)
library(MplusAutomation)
#> Version: 0.7-3
#> We work hard to write this free software. Please help us get credit by citing:
#>
#> Hallquist, M. N. & Wiley, J. F. (2018). MplusAutomation: An R Package for Facilitating Large-Scale Latent Variable Analyses in Mplus. Structural Equation Modeling, 25, 621-638. doi: 10.1080/10705511.2017.1402334.
#>
#> -- see citation("MplusAutomation").
library(dplyr)
tidySEM
tabulates the results of different types of models in the same uniform way. This facilitates parsing the output into Tables and Figures for publication.
As an example, let’s tabulate the results from a classic lavaan
tutorial example for a multiple group model. First, we run the model:
HS.model <- ' visual =~ x1 + x2 + x3
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9 '
fit <- cfa(HS.model,
data = HolzingerSwineford1939,
group = "school")
The results can be tabulated using the lavaan
function summary()
:
summary(fit)
#> lavaan 0.6-6 ended normally after 57 iterations
#>
#> Estimator ML
#> Optimization method NLMINB
#> Number of free parameters 60
#>
#> Number of observations per group:
#> Pasteur 156
#> Grant-White 145
#>
#> Model Test User Model:
#>
#> Test statistic 115.851
#> Degrees of freedom 48
#> P-value (Chi-square) 0.000
#> Test statistic for each group:
#> Pasteur 64.309
#> Grant-White 51.542
#>
#> Parameter Estimates:
#>
#> Standard errors Standard
#> Information Expected
#> Information saturated (h1) model Structured
#>
#>
#> Group 1 [Pasteur]:
#>
#> Latent Variables:
#> Estimate Std.Err z-value P(>|z|)
#> visual =~
#> x1 1.000
#> x2 0.394 0.122 3.220 0.001
#> x3 0.570 0.140 4.076 0.000
#> textual =~
#> x4 1.000
#> x5 1.183 0.102 11.613 0.000
#> x6 0.875 0.077 11.421 0.000
#> speed =~
#> x7 1.000
#> x8 1.125 0.277 4.057 0.000
#> x9 0.922 0.225 4.104 0.000
#>
#> Covariances:
#> Estimate Std.Err z-value P(>|z|)
#> visual ~~
#> textual 0.479 0.106 4.531 0.000
#> speed 0.185 0.077 2.397 0.017
#> textual ~~
#> speed 0.182 0.069 2.628 0.009
#>
#> Intercepts:
#> Estimate Std.Err z-value P(>|z|)
#> .x1 4.941 0.095 52.249 0.000
#> .x2 5.984 0.098 60.949 0.000
#> .x3 2.487 0.093 26.778 0.000
#> .x4 2.823 0.092 30.689 0.000
#> .x5 3.995 0.105 38.183 0.000
#> .x6 1.922 0.079 24.321 0.000
#> .x7 4.432 0.087 51.181 0.000
#> .x8 5.563 0.078 71.214 0.000
#> .x9 5.418 0.079 68.440 0.000
#> visual 0.000
#> textual 0.000
#> speed 0.000
#>
#> Variances:
#> Estimate Std.Err z-value P(>|z|)
#> .x1 0.298 0.232 1.286 0.198
#> .x2 1.334 0.158 8.464 0.000
#> .x3 0.989 0.136 7.271 0.000
#> .x4 0.425 0.069 6.138 0.000
#> .x5 0.456 0.086 5.292 0.000
#> .x6 0.290 0.050 5.780 0.000
#> .x7 0.820 0.125 6.580 0.000
#> .x8 0.510 0.116 4.406 0.000
#> .x9 0.680 0.104 6.516 0.000
#> visual 1.097 0.276 3.967 0.000
#> textual 0.894 0.150 5.963 0.000
#> speed 0.350 0.126 2.778 0.005
#>
#>
#> Group 2 [Grant-White]:
#>
#> Latent Variables:
#> Estimate Std.Err z-value P(>|z|)
#> visual =~
#> x1 1.000
#> x2 0.736 0.155 4.760 0.000
#> x3 0.925 0.166 5.583 0.000
#> textual =~
#> x4 1.000
#> x5 0.990 0.087 11.418 0.000
#> x6 0.963 0.085 11.377 0.000
#> speed =~
#> x7 1.000
#> x8 1.226 0.187 6.569 0.000
#> x9 1.058 0.165 6.429 0.000
#>
#> Covariances:
#> Estimate Std.Err z-value P(>|z|)
#> visual ~~
#> textual 0.408 0.098 4.153 0.000
#> speed 0.276 0.076 3.639 0.000
#> textual ~~
#> speed 0.222 0.073 3.022 0.003
#>
#> Intercepts:
#> Estimate Std.Err z-value P(>|z|)
#> .x1 4.930 0.095 51.696 0.000
#> .x2 6.200 0.092 67.416 0.000
#> .x3 1.996 0.086 23.195 0.000
#> .x4 3.317 0.093 35.625 0.000
#> .x5 4.712 0.096 48.986 0.000
#> .x6 2.469 0.094 26.277 0.000
#> .x7 3.921 0.086 45.819 0.000
#> .x8 5.488 0.087 63.174 0.000
#> .x9 5.327 0.085 62.571 0.000
#> visual 0.000
#> textual 0.000
#> speed 0.000
#>
#> Variances:
#> Estimate Std.Err z-value P(>|z|)
#> .x1 0.715 0.126 5.676 0.000
#> .x2 0.899 0.123 7.339 0.000
#> .x3 0.557 0.103 5.409 0.000
#> .x4 0.315 0.065 4.870 0.000
#> .x5 0.419 0.072 5.812 0.000
#> .x6 0.406 0.069 5.880 0.000
#> .x7 0.600 0.091 6.584 0.000
#> .x8 0.401 0.094 4.249 0.000
#> .x9 0.535 0.089 6.010 0.000
#> visual 0.604 0.160 3.762 0.000
#> textual 0.942 0.152 6.177 0.000
#> speed 0.461 0.118 3.910 0.000
Alternatively, we can use the tidySEM
function table_results()
:
table_results(fit)
#> label est_sig se confint group
#> 1 visual.BY.x1.Pasteur 1.00 [1.00, 1.00] Pasteur
#> 2 visual.BY.x2.Pasteur 0.39** 0.12 [0.15, 0.63] Pasteur
#> 3 visual.BY.x3.Pasteur 0.57*** 0.14 [0.30, 0.84] Pasteur
#> 4 textual.BY.x4.Pasteur 1.00 [1.00, 1.00] Pasteur
#> 5 textual.BY.x5.Pasteur 1.18*** 0.10 [0.98, 1.38] Pasteur
#> 6 textual.BY.x6.Pasteur 0.87*** 0.08 [0.72, 1.03] Pasteur
#> 7 speed.BY.x7.Pasteur 1.00 [1.00, 1.00] Pasteur
#> 8 speed.BY.x8.Pasteur 1.12*** 0.28 [0.58, 1.67] Pasteur
#> 9 speed.BY.x9.Pasteur 0.92*** 0.22 [0.48, 1.36] Pasteur
#> 10 Variances.x1.Pasteur 0.30 0.23 [-0.16, 0.75] Pasteur
#> 11 Variances.x2.Pasteur 1.33*** 0.16 [1.02, 1.64] Pasteur
#> 12 Variances.x3.Pasteur 0.99*** 0.14 [0.72, 1.26] Pasteur
#> 13 Variances.x4.Pasteur 0.43*** 0.07 [0.29, 0.56] Pasteur
#> 14 Variances.x5.Pasteur 0.46*** 0.09 [0.29, 0.62] Pasteur
#> 15 Variances.x6.Pasteur 0.29*** 0.05 [0.19, 0.39] Pasteur
#> 16 Variances.x7.Pasteur 0.82*** 0.12 [0.58, 1.06] Pasteur
#> 17 Variances.x8.Pasteur 0.51*** 0.12 [0.28, 0.74] Pasteur
#> 18 Variances.x9.Pasteur 0.68*** 0.10 [0.48, 0.88] Pasteur
#> 19 Variances.visual.Pasteur 1.10*** 0.28 [0.55, 1.64] Pasteur
#> 20 Variances.textual.Pasteur 0.89*** 0.15 [0.60, 1.19] Pasteur
#> 21 Variances.speed.Pasteur 0.35** 0.13 [0.10, 0.60] Pasteur
#> 22 visual.WITH.textual.Pasteur 0.48*** 0.11 [0.27, 0.69] Pasteur
#> 23 visual.WITH.speed.Pasteur 0.19* 0.08 [0.03, 0.34] Pasteur
#> 24 textual.WITH.speed.Pasteur 0.18** 0.07 [0.05, 0.32] Pasteur
#> 25 Means.x1.Pasteur 4.94*** 0.09 [4.76, 5.13] Pasteur
#> 26 Means.x2.Pasteur 5.98*** 0.10 [5.79, 6.18] Pasteur
#> 27 Means.x3.Pasteur 2.49*** 0.09 [2.31, 2.67] Pasteur
#> 28 Means.x4.Pasteur 2.82*** 0.09 [2.64, 3.00] Pasteur
#> 29 Means.x5.Pasteur 4.00*** 0.10 [3.79, 4.20] Pasteur
#> 30 Means.x6.Pasteur 1.92*** 0.08 [1.77, 2.08] Pasteur
#> 31 Means.x7.Pasteur 4.43*** 0.09 [4.26, 4.60] Pasteur
#> 32 Means.x8.Pasteur 5.56*** 0.08 [5.41, 5.72] Pasteur
#> 33 Means.x9.Pasteur 5.42*** 0.08 [5.26, 5.57] Pasteur
#> 34 Means.visual.Pasteur 0.00 [0.00, 0.00] Pasteur
#> 35 Means.textual.Pasteur 0.00 [0.00, 0.00] Pasteur
#> 36 Means.speed.Pasteur 0.00 [0.00, 0.00] Pasteur
#> 37 visual.BY.x1.Grant-White 1.00 [1.00, 1.00] Grant-White
#> 38 visual.BY.x2.Grant-White 0.74*** 0.15 [0.43, 1.04] Grant-White
#> 39 visual.BY.x3.Grant-White 0.92*** 0.17 [0.60, 1.25] Grant-White
#> 40 textual.BY.x4.Grant-White 1.00 [1.00, 1.00] Grant-White
#> 41 textual.BY.x5.Grant-White 0.99*** 0.09 [0.82, 1.16] Grant-White
#> 42 textual.BY.x6.Grant-White 0.96*** 0.08 [0.80, 1.13] Grant-White
#> 43 speed.BY.x7.Grant-White 1.00 [1.00, 1.00] Grant-White
#> 44 speed.BY.x8.Grant-White 1.23*** 0.19 [0.86, 1.59] Grant-White
#> 45 speed.BY.x9.Grant-White 1.06*** 0.16 [0.74, 1.38] Grant-White
#> 46 Variances.x1.Grant-White 0.71*** 0.13 [0.47, 0.96] Grant-White
#> 47 Variances.x2.Grant-White 0.90*** 0.12 [0.66, 1.14] Grant-White
#> 48 Variances.x3.Grant-White 0.56*** 0.10 [0.36, 0.76] Grant-White
#> 49 Variances.x4.Grant-White 0.32*** 0.06 [0.19, 0.44] Grant-White
#> 50 Variances.x5.Grant-White 0.42*** 0.07 [0.28, 0.56] Grant-White
#> 51 Variances.x6.Grant-White 0.41*** 0.07 [0.27, 0.54] Grant-White
#> 52 Variances.x7.Grant-White 0.60*** 0.09 [0.42, 0.78] Grant-White
#> 53 Variances.x8.Grant-White 0.40*** 0.09 [0.22, 0.59] Grant-White
#> 54 Variances.x9.Grant-White 0.53*** 0.09 [0.36, 0.71] Grant-White
#> 55 Variances.visual.Grant-White 0.60*** 0.16 [0.29, 0.92] Grant-White
#> 56 Variances.textual.Grant-White 0.94*** 0.15 [0.64, 1.24] Grant-White
#> 57 Variances.speed.Grant-White 0.46*** 0.12 [0.23, 0.69] Grant-White
#> 58 visual.WITH.textual.Grant-White 0.41*** 0.10 [0.22, 0.60] Grant-White
#> 59 visual.WITH.speed.Grant-White 0.28*** 0.08 [0.13, 0.42] Grant-White
#> 60 textual.WITH.speed.Grant-White 0.22** 0.07 [0.08, 0.37] Grant-White
#> 61 Means.x1.Grant-White 4.93*** 0.10 [4.74, 5.12] Grant-White
#> 62 Means.x2.Grant-White 6.20*** 0.09 [6.02, 6.38] Grant-White
#> 63 Means.x3.Grant-White 2.00*** 0.09 [1.83, 2.16] Grant-White
#> 64 Means.x4.Grant-White 3.32*** 0.09 [3.13, 3.50] Grant-White
#> 65 Means.x5.Grant-White 4.71*** 0.10 [4.52, 4.90] Grant-White
#> 66 Means.x6.Grant-White 2.47*** 0.09 [2.28, 2.65] Grant-White
#> 67 Means.x7.Grant-White 3.92*** 0.09 [3.75, 4.09] Grant-White
#> 68 Means.x8.Grant-White 5.49*** 0.09 [5.32, 5.66] Grant-White
#> 69 Means.x9.Grant-White 5.33*** 0.09 [5.16, 5.49] Grant-White
#> 70 Means.visual.Grant-White 0.00 [0.00, 0.00] Grant-White
#> 71 Means.textual.Grant-White 0.00 [0.00, 0.00] Grant-White
#> 72 Means.speed.Grant-White 0.00 [0.00, 0.00] Grant-White
Now, we’ll reproduce the same analysis in ‘Mplus’. The tidySEM
package has a function measurement()
to generate measurement models automatically. However, to illustrate the fact that tidySEM
is compatible with existing solutions, we will specify the syntax for this example manually, using the package MplusAutomation
. This code will only work on your machine if you have Mplus installed and R can find it. First, we run the model:
fit <- mplusModeler(mplusObject(VARIABLE = "grouping IS school (1 = GW 2 = Pas);",
MODEL = c("visual BY x1 x2 x3;",
"textual BY x4 x5 x6;",
"speed BY x7 x8 x9;"),
usevariables = c(paste0("x", 1:9), "school"),
rdata = HolzingerSwineford1939),
modelout = "example.inp",
run = 1L)
fit$results$parameters
#> $unstandardized
#> paramHeader param est se est_se pval Group
#> 1 VISUAL.BY X1 1.000 0.000 999.000 999.000 GW
#> 2 VISUAL.BY X2 0.576 0.109 5.262 0.000 GW
#> 3 VISUAL.BY X3 0.798 0.130 6.139 0.000 GW
#> 4 TEXTUAL.BY X4 1.000 0.000 999.000 999.000 GW
#> 5 TEXTUAL.BY X5 1.120 0.066 16.962 0.000 GW
#> 6 TEXTUAL.BY X6 0.932 0.057 16.315 0.000 GW
#> 7 SPEED.BY X7 1.000 0.000 999.000 999.000 GW
#> 8 SPEED.BY X8 1.130 0.137 8.258 0.000 GW
#> 9 SPEED.BY X9 1.009 0.160 6.326 0.000 GW
#> 10 TEXTUAL.WITH VISUAL 0.427 0.098 4.366 0.000 GW
#> 11 SPEED.WITH VISUAL 0.329 0.084 3.932 0.000 GW
#> 12 SPEED.WITH TEXTUAL 0.236 0.075 3.154 0.002 GW
#> 13 Means VISUAL 0.000 0.000 999.000 999.000 GW
#> 14 Means TEXTUAL 0.000 0.000 999.000 999.000 GW
#> 15 Means SPEED 0.000 0.000 999.000 999.000 GW
#> 16 Intercepts X1 4.854 0.094 51.772 0.000 GW
#> 17 Intercepts X2 6.066 0.077 78.581 0.000 GW
#> 18 Intercepts X3 2.153 0.084 25.726 0.000 GW
#> 19 Intercepts X4 3.354 0.088 38.162 0.000 GW
#> 20 Intercepts X5 4.680 0.098 47.941 0.000 GW
#> 21 Intercepts X6 2.463 0.084 29.285 0.000 GW
#> 22 Intercepts X7 4.065 0.083 49.067 0.000 GW
#> 23 Intercepts X8 5.430 0.083 65.788 0.000 GW
#> 24 Intercepts X9 5.286 0.078 67.679 0.000 GW
#> 25 Variances VISUAL 0.708 0.162 4.382 0.000 GW
#> 26 Variances TEXTUAL 0.870 0.133 6.550 0.000 GW
#> 27 Variances SPEED 0.505 0.119 4.249 0.000 GW
#> 28 Residual.Variances X1 0.654 0.131 4.973 0.000 GW
#> 29 Residual.Variances X2 0.964 0.127 7.573 0.000 GW
#> 30 Residual.Variances X3 0.641 0.113 5.685 0.000 GW
#> 31 Residual.Variances X4 0.343 0.064 5.397 0.000 GW
#> 32 Residual.Variances X5 0.376 0.074 5.101 0.000 GW
#> 33 Residual.Variances X6 0.437 0.068 6.389 0.000 GW
#> 34 Residual.Variances X7 0.625 0.103 6.078 0.000 GW
#> 35 Residual.Variances X8 0.434 0.101 4.308 0.000 GW
#> 36 Residual.Variances X9 0.522 0.101 5.192 0.000 GW
#> 37 VISUAL.BY X1 1.000 0.000 999.000 999.000 PAS
#> 38 VISUAL.BY X2 0.576 0.109 5.262 0.000 PAS
#> 39 VISUAL.BY X3 0.798 0.130 6.139 0.000 PAS
#> 40 TEXTUAL.BY X4 1.000 0.000 999.000 999.000 PAS
#> 41 TEXTUAL.BY X5 1.120 0.066 16.962 0.000 PAS
#> 42 TEXTUAL.BY X6 0.932 0.057 16.315 0.000 PAS
#> 43 SPEED.BY X7 1.000 0.000 999.000 999.000 PAS
#> 44 SPEED.BY X8 1.130 0.137 8.258 0.000 PAS
#> 45 SPEED.BY X9 1.009 0.160 6.326 0.000 PAS
#> 46 TEXTUAL.WITH VISUAL 0.410 0.107 3.844 0.000 PAS
#> 47 SPEED.WITH VISUAL 0.178 0.067 2.657 0.008 PAS
#> 48 SPEED.WITH TEXTUAL 0.180 0.063 2.867 0.004 PAS
#> 49 Means VISUAL 0.148 0.127 1.164 0.244 PAS
#> 50 Means TEXTUAL -0.576 0.117 -4.935 0.000 PAS
#> 51 Means SPEED 0.177 0.094 1.884 0.060 PAS
#> 52 Intercepts X1 4.854 0.094 51.772 0.000 PAS
#> 53 Intercepts X2 6.066 0.077 78.581 0.000 PAS
#> 54 Intercepts X3 2.153 0.084 25.726 0.000 PAS
#> 55 Intercepts X4 3.354 0.088 38.162 0.000 PAS
#> 56 Intercepts X5 4.680 0.098 47.941 0.000 PAS
#> 57 Intercepts X6 2.463 0.084 29.285 0.000 PAS
#> 58 Intercepts X7 4.065 0.083 49.067 0.000 PAS
#> 59 Intercepts X8 5.430 0.083 65.788 0.000 PAS
#> 60 Intercepts X9 5.286 0.078 67.679 0.000 PAS
#> 61 Variances VISUAL 0.796 0.192 4.146 0.000 PAS
#> 62 Variances TEXTUAL 0.879 0.132 6.654 0.000 PAS
#> 63 Variances SPEED 0.322 0.085 3.786 0.000 PAS
#> 64 Residual.Variances X1 0.555 0.157 3.539 0.000 PAS
#> 65 Residual.Variances X2 1.296 0.161 8.071 0.000 PAS
#> 66 Residual.Variances X3 0.944 0.148 6.399 0.000 PAS
#> 67 Residual.Variances X4 0.445 0.072 6.209 0.000 PAS
#> 68 Residual.Variances X5 0.502 0.086 5.859 0.000 PAS
#> 69 Residual.Variances X6 0.263 0.051 5.124 0.000 PAS
#> 70 Residual.Variances X7 0.888 0.127 7.006 0.000 PAS
#> 71 Residual.Variances X8 0.541 0.099 5.483 0.000 PAS
#> 72 Residual.Variances X9 0.654 0.101 6.476 0.000 PAS
The results can be tabulated using the MplusAutomation
function coef.mplus.model()
:
coef(fit)
#> $GW
#> Label est se pval
#> 1 X1<-VISUAL 1.000 0.000 999.000
#> 2 X2<-VISUAL 0.576 0.109 0.000
#> 3 X3<-VISUAL 0.798 0.130 0.000
#> 4 X4<-TEXTUAL 1.000 0.000 999.000
#> 5 X5<-TEXTUAL 1.120 0.066 0.000
#> 6 X6<-TEXTUAL 0.932 0.057 0.000
#> 7 X7<-SPEED 1.000 0.000 999.000
#> 8 X8<-SPEED 1.130 0.137 0.000
#> 9 X9<-SPEED 1.009 0.160 0.000
#> 10 TEXTUAL<->VISUAL 0.427 0.098 0.000
#> 11 SPEED<->VISUAL 0.329 0.084 0.000
#> 12 SPEED<->TEXTUAL 0.236 0.075 0.002
#> 13 VISUAL<-Means 0.000 0.000 999.000
#> 14 TEXTUAL<-Means 0.000 0.000 999.000
#> 15 SPEED<-Means 0.000 0.000 999.000
#> 16 X1<-Intercepts 4.854 0.094 0.000
#> 17 X2<-Intercepts 6.066 0.077 0.000
#> 18 X3<-Intercepts 2.153 0.084 0.000
#> 19 X4<-Intercepts 3.354 0.088 0.000
#> 20 X5<-Intercepts 4.680 0.098 0.000
#> 21 X6<-Intercepts 2.463 0.084 0.000
#> 22 X7<-Intercepts 4.065 0.083 0.000
#> 23 X8<-Intercepts 5.430 0.083 0.000
#> 24 X9<-Intercepts 5.286 0.078 0.000
#> 25 VISUAL<->VISUAL 0.708 0.162 0.000
#> 26 TEXTUAL<->TEXTUAL 0.870 0.133 0.000
#> 27 SPEED<->SPEED 0.505 0.119 0.000
#> 28 X1<->X1 0.654 0.131 0.000
#> 29 X2<->X2 0.964 0.127 0.000
#> 30 X3<->X3 0.641 0.113 0.000
#> 31 X4<->X4 0.343 0.064 0.000
#> 32 X5<->X5 0.376 0.074 0.000
#> 33 X6<->X6 0.437 0.068 0.000
#> 34 X7<->X7 0.625 0.103 0.000
#> 35 X8<->X8 0.434 0.101 0.000
#> 36 X9<->X9 0.522 0.101 0.000
#>
#> $PAS
#> Label est se pval
#> 37 X1<-VISUAL 1.000 0.000 999.000
#> 38 X2<-VISUAL 0.576 0.109 0.000
#> 39 X3<-VISUAL 0.798 0.130 0.000
#> 40 X4<-TEXTUAL 1.000 0.000 999.000
#> 41 X5<-TEXTUAL 1.120 0.066 0.000
#> 42 X6<-TEXTUAL 0.932 0.057 0.000
#> 43 X7<-SPEED 1.000 0.000 999.000
#> 44 X8<-SPEED 1.130 0.137 0.000
#> 45 X9<-SPEED 1.009 0.160 0.000
#> 46 TEXTUAL<->VISUAL 0.410 0.107 0.000
#> 47 SPEED<->VISUAL 0.178 0.067 0.008
#> 48 SPEED<->TEXTUAL 0.180 0.063 0.004
#> 49 VISUAL<-Means 0.148 0.127 0.244
#> 50 TEXTUAL<-Means -0.576 0.117 0.000
#> 51 SPEED<-Means 0.177 0.094 0.060
#> 52 X1<-Intercepts 4.854 0.094 0.000
#> 53 X2<-Intercepts 6.066 0.077 0.000
#> 54 X3<-Intercepts 2.153 0.084 0.000
#> 55 X4<-Intercepts 3.354 0.088 0.000
#> 56 X5<-Intercepts 4.680 0.098 0.000
#> 57 X6<-Intercepts 2.463 0.084 0.000
#> 58 X7<-Intercepts 4.065 0.083 0.000
#> 59 X8<-Intercepts 5.430 0.083 0.000
#> 60 X9<-Intercepts 5.286 0.078 0.000
#> 61 VISUAL<->VISUAL 0.796 0.192 0.000
#> 62 TEXTUAL<->TEXTUAL 0.879 0.132 0.000
#> 63 SPEED<->SPEED 0.322 0.085 0.000
#> 64 X1<->X1 0.555 0.157 0.000
#> 65 X2<->X2 1.296 0.161 0.000
#> 66 X3<->X3 0.944 0.148 0.000
#> 67 X4<->X4 0.445 0.072 0.000
#> 68 X5<->X5 0.502 0.086 0.000
#> 69 X6<->X6 0.263 0.051 0.000
#> 70 X7<->X7 0.888 0.127 0.000
#> 71 X8<->X8 0.541 0.099 0.000
#> 72 X9<->X9 0.654 0.101 0.000
#>
#> attr(,"class")
#> [1] "mplus.model.coefs.list" "list"
Alternatively, we can use the tidySEM
function table_results()
:
table_results(fit)
#> Calculated confidence intervals from est and se.
#> label est_sig se pval confint group
#> 1 VISUAL.BY.X1.GW 1.00 GW
#> 2 VISUAL.BY.X2.GW 0.58*** 0.11 0.00 [ 0.36, 0.79] GW
#> 3 VISUAL.BY.X3.GW 0.80*** 0.13 0.00 [ 0.54, 1.05] GW
#> 4 TEXTUAL.BY.X4.GW 1.00 GW
#> 5 TEXTUAL.BY.X5.GW 1.12*** 0.07 0.00 [ 0.99, 1.25] GW
#> 6 TEXTUAL.BY.X6.GW 0.93*** 0.06 0.00 [ 0.82, 1.04] GW
#> 7 SPEED.BY.X7.GW 1.00 GW
#> 8 SPEED.BY.X8.GW 1.13*** 0.14 0.00 [ 0.86, 1.40] GW
#> 9 SPEED.BY.X9.GW 1.01*** 0.16 0.00 [ 0.70, 1.32] GW
#> 10 TEXTUAL.WITH.VISUAL.GW 0.43*** 0.10 0.00 [ 0.23, 0.62] GW
#> 11 SPEED.WITH.VISUAL.GW 0.33*** 0.08 0.00 [ 0.16, 0.49] GW
#> 12 SPEED.WITH.TEXTUAL.GW 0.24** 0.07 0.00 [ 0.09, 0.38] GW
#> 13 Means.VISUAL.GW 0.00 GW
#> 14 Means.TEXTUAL.GW 0.00 GW
#> 15 Means.SPEED.GW 0.00 GW
#> 16 Intercepts.X1.GW 4.85*** 0.09 0.00 [ 4.67, 5.04] GW
#> 17 Intercepts.X2.GW 6.07*** 0.08 0.00 [ 5.92, 6.22] GW
#> 18 Intercepts.X3.GW 2.15*** 0.08 0.00 [ 1.99, 2.32] GW
#> 19 Intercepts.X4.GW 3.35*** 0.09 0.00 [ 3.18, 3.53] GW
#> 20 Intercepts.X5.GW 4.68*** 0.10 0.00 [ 4.49, 4.87] GW
#> 21 Intercepts.X6.GW 2.46*** 0.08 0.00 [ 2.30, 2.63] GW
#> 22 Intercepts.X7.GW 4.07*** 0.08 0.00 [ 3.90, 4.23] GW
#> 23 Intercepts.X8.GW 5.43*** 0.08 0.00 [ 5.27, 5.59] GW
#> 24 Intercepts.X9.GW 5.29*** 0.08 0.00 [ 5.13, 5.44] GW
#> 25 Variances.VISUAL.GW 0.71*** 0.16 0.00 [ 0.39, 1.03] GW
#> 26 Variances.TEXTUAL.GW 0.87*** 0.13 0.00 [ 0.61, 1.13] GW
#> 27 Variances.SPEED.GW 0.50*** 0.12 0.00 [ 0.27, 0.74] GW
#> 28 Residual.Variances.X1.GW 0.65*** 0.13 0.00 [ 0.40, 0.91] GW
#> 29 Residual.Variances.X2.GW 0.96*** 0.13 0.00 [ 0.72, 1.21] GW
#> 30 Residual.Variances.X3.GW 0.64*** 0.11 0.00 [ 0.42, 0.86] GW
#> 31 Residual.Variances.X4.GW 0.34*** 0.06 0.00 [ 0.22, 0.47] GW
#> 32 Residual.Variances.X5.GW 0.38*** 0.07 0.00 [ 0.23, 0.52] GW
#> 33 Residual.Variances.X6.GW 0.44*** 0.07 0.00 [ 0.30, 0.57] GW
#> 34 Residual.Variances.X7.GW 0.62*** 0.10 0.00 [ 0.42, 0.83] GW
#> 35 Residual.Variances.X8.GW 0.43*** 0.10 0.00 [ 0.24, 0.63] GW
#> 36 Residual.Variances.X9.GW 0.52*** 0.10 0.00 [ 0.32, 0.72] GW
#> 37 VISUAL.BY.X1.PAS 1.00 PAS
#> 38 VISUAL.BY.X2.PAS 0.58*** 0.11 0.00 [ 0.36, 0.79] PAS
#> 39 VISUAL.BY.X3.PAS 0.80*** 0.13 0.00 [ 0.54, 1.05] PAS
#> 40 TEXTUAL.BY.X4.PAS 1.00 PAS
#> 41 TEXTUAL.BY.X5.PAS 1.12*** 0.07 0.00 [ 0.99, 1.25] PAS
#> 42 TEXTUAL.BY.X6.PAS 0.93*** 0.06 0.00 [ 0.82, 1.04] PAS
#> 43 SPEED.BY.X7.PAS 1.00 PAS
#> 44 SPEED.BY.X8.PAS 1.13*** 0.14 0.00 [ 0.86, 1.40] PAS
#> 45 SPEED.BY.X9.PAS 1.01*** 0.16 0.00 [ 0.70, 1.32] PAS
#> 46 TEXTUAL.WITH.VISUAL.PAS 0.41*** 0.11 0.00 [ 0.20, 0.62] PAS
#> 47 SPEED.WITH.VISUAL.PAS 0.18** 0.07 0.01 [ 0.05, 0.31] PAS
#> 48 SPEED.WITH.TEXTUAL.PAS 0.18** 0.06 0.00 [ 0.06, 0.30] PAS
#> 49 Means.VISUAL.PAS 0.15 0.13 0.24 [-0.10, 0.40] PAS
#> 50 Means.TEXTUAL.PAS -0.58*** 0.12 0.00 [-0.81, -0.35] PAS
#> 51 Means.SPEED.PAS 0.18 0.09 0.06 [-0.01, 0.36] PAS
#> 52 Intercepts.X1.PAS 4.85*** 0.09 0.00 [ 4.67, 5.04] PAS
#> 53 Intercepts.X2.PAS 6.07*** 0.08 0.00 [ 5.92, 6.22] PAS
#> 54 Intercepts.X3.PAS 2.15*** 0.08 0.00 [ 1.99, 2.32] PAS
#> 55 Intercepts.X4.PAS 3.35*** 0.09 0.00 [ 3.18, 3.53] PAS
#> 56 Intercepts.X5.PAS 4.68*** 0.10 0.00 [ 4.49, 4.87] PAS
#> 57 Intercepts.X6.PAS 2.46*** 0.08 0.00 [ 2.30, 2.63] PAS
#> 58 Intercepts.X7.PAS 4.07*** 0.08 0.00 [ 3.90, 4.23] PAS
#> 59 Intercepts.X8.PAS 5.43*** 0.08 0.00 [ 5.27, 5.59] PAS
#> 60 Intercepts.X9.PAS 5.29*** 0.08 0.00 [ 5.13, 5.44] PAS
#> 61 Variances.VISUAL.PAS 0.80*** 0.19 0.00 [ 0.42, 1.17] PAS
#> 62 Variances.TEXTUAL.PAS 0.88*** 0.13 0.00 [ 0.62, 1.14] PAS
#> 63 Variances.SPEED.PAS 0.32*** 0.08 0.00 [ 0.16, 0.49] PAS
#> 64 Residual.Variances.X1.PAS 0.56*** 0.16 0.00 [ 0.25, 0.86] PAS
#> 65 Residual.Variances.X2.PAS 1.30*** 0.16 0.00 [ 0.98, 1.61] PAS
#> 66 Residual.Variances.X3.PAS 0.94*** 0.15 0.00 [ 0.65, 1.23] PAS
#> 67 Residual.Variances.X4.PAS 0.44*** 0.07 0.00 [ 0.30, 0.59] PAS
#> 68 Residual.Variances.X5.PAS 0.50*** 0.09 0.00 [ 0.33, 0.67] PAS
#> 69 Residual.Variances.X6.PAS 0.26*** 0.05 0.00 [ 0.16, 0.36] PAS
#> 70 Residual.Variances.X7.PAS 0.89*** 0.13 0.00 [ 0.64, 1.14] PAS
#> 71 Residual.Variances.X8.PAS 0.54*** 0.10 0.00 [ 0.35, 0.74] PAS
#> 72 Residual.Variances.X9.PAS 0.65*** 0.10 0.00 [ 0.46, 0.85] PAS