Multiple imputation with lavaan.mi()

53 views
Skip to first unread message

Joni Tims

unread,
May 6, 2025, 8:00:46 AM5/6/25
to lavaan
Hello everyone!

I am very new to using lavaan() and multiple imputation, so bare with me.
For my internship, I am running 8 bivariate Random Intercept Cross-Lagged Panel Models (RI-CLPMs). All variables of interest are continuous. I have complete data for n = 108 participants across three time points, and I total, n = 189 participants participated across the three time points. That is, I am imputing for n = 81 cases. I used multilevel MICE for this, as you can see below:

install.packages("mice")
library(mice)

install.packages("miceadds")
library(miceadds)

# 4. Get data ready for imputation

# 4.1. Imputation methods

initialize_mice <- mice(df_imputation_long, maxit = 0)
methods_mice <- initialize_mice$method
methods_mice[c("BI_BMI", "BI_own", "BI_ideal", "BI_bdiss", "INT_mean_acc", "INT_mean_cr", "INS_CT_bi_post",
               "INS_CT_bi_ant", "INS_SA_bi_post", "INS_SA_bi_ant")] <- "2l.pmm"
#methods_mice[c("sex")] <- "logreg" # This is not the case when there is no NA value for sex!
methods_mice

# 4.2. Predictor matrix

predictor_mice <- initialize_mice$predictorMatrix
predictor_mice[, "ppn"] <- -2
predictor_mice[, "Time"] <- 1
predictor_mice[, "sex"] <- 1
predictor_mice

# 5. Impute data

# 5.1. ppn (the cluster variable) needs to be an integer.

df_imputation_long$ppn <- as.integer(df_imputation_long$ppn)

# 5.2. Impute

imp1 <- mice(df_imputation_long, meth = methods_mice, pred = predictor_mice, m = 5, maxit = 20, seed = 1234)
imp2 <- mice(df_imputation_long, meth = methods_mice, pred = predictor_mice, m = 20, maxit = 40, seed = 1234)

# 6. Check the quality of the imputed data sets

# 6.1. Summaries (per data set)

summary(complete(imp1, action = 1))
summary(df_imputation_long)

summary(complete(imp2))

# 6.2. Density plots

densityplot(imp1, action = 5)
densityplot(imp1, ~ BI_own)

densityplot(imp2)
densityplot(imp1, ~ BI_own)

# 6.3. Strip plots (per variable)

stripplot(imp1, INS_CT_bi_ant ~ .imp, pch = c(1, 20), col = c("blue", "red"), cex = 1.5, jitter = 0.3)

stripplot(imp2, INS_CT_bi_ant ~ .imp, pch = c(1, 20), col = c("blue", "red"), cex = 1.5, jitter = 0.3)

# 6.4. Check for convergence (select variables)

plot(imp1, c("BI_bdiss", "INT_mean_acc", "INS_CT_bi_ant"))

plot(imp2, c("BI_bdiss", "INT_mean_acc", "INS_CT_bi_ant"))


As you can see, I tried it twice, once with more data sets and iterations. After imputing, I made a list of all data sets (all in wide format), and I ensured all variable outcomes were standardized. So, I ended up with the list called "imputed_list_standardized" for the first imputation (imp1) and "imputed_list_moreit_standardized" for the second imputation with more data sets and iterations (imp2). 

I tried both out on my RI-CLPM. I am very aware that n = 189 is still not the best for SEM, especially for complex models, but unfortunately, I cannot acquire more data. Below, you can see one unconstrained bivariate RI-CLPM.

# Unconstrained RI-CLPM (sex as time invariant covariate)

RICLPM_CTant_IAcc <- '

# 1. Create the between components (the random intercepts) with factor loadings constrained to 1.

RI_CTant =~ 1*T1_INS_CT_bi_ant + 1*T2_INS_CT_bi_ant + 1*T3_INS_CT_bi_ant
RI_IAcc =~ 1*T1_INT_mean_acc + 1*T2_INT_mean_acc + 1*T3_INT_mean_acc

# 2. Create the within components with factor loadings set to 1.

wINS1 =~ 1*T1_INS_CT_bi_ant
wINS2 =~ 1*T2_INS_CT_bi_ant
wINS3 =~ 1*T3_INS_CT_bi_ant

wINT1 =~ 1*T1_INT_mean_acc
wINT2 =~ 1*T2_INT_mean_acc
wINT3 =~ 1*T3_INT_mean_acc

# 3. Specify the structural relations between the within components (i.e., create latent variables for
# the autoregressive (AR) and cross-lagged (CL) effects and estimate the lagged effects). Below: unconstrained.

wINS2 ~ wINS1 + wINT1
wINT2 ~ wINS1 + wINT1
wINS3 ~ wINS2 + wINT2
wINT3 ~ wINS2 + wINT2

# 4. Estimate the variance and the covariance of the between components (the random intercepts).

RI_CTant ~~ RI_CTant
RI_IAcc ~~ RI_IAcc

RI_CTant ~~ RI_IAcc

# 5. Estimate the (residual) covariance of the within components.

wINS1 ~~ wINT1

wINS2 ~~ wINT2
wINS3 ~~ wINT3

# 6. Estimate the (residual) variance of the within-person centered variables.

wINS1 ~~ wINS1
wINT1 ~~ wINT1

wINS2 ~~ wINS2
wINT2 ~~ wINT2
wINS3 ~~ wINS3
wINT3 ~~ wINT3

# 7. Include sex as a time invariant constraint.

T1_INS_CT_bi_ant + T2_INS_CT_bi_ant + T3_INS_CT_bi_ant ~ s1*sex
T1_INT_mean_acc + T2_INT_mean_acc + T3_INT_mean_acc ~ s2*sex

'


I then tried fitting the model. First, with the first imputed list.

install.packages("lavaan")
library(lavaan)

install.packages("lavaan.mi")
library(lavaan.mi)

install.packages("remotes")  
remotes::install_github("TDJorgensen/lavaan.mi")

# Fit the unconstrained RI-CLPM with the pooled results

fit_RICLPM_CTant_IAcc <- lavaan.mi(RICLPM_CTant_IAcc, data = imputed_list_standardized, missing = 'ML', meanstructure = T, int.ov.free = T, estimator = "MLR")

# Get the summary of the unconstrained RI-CLPM

summary(fit_RICLPM_CTant_IAcc, fit.measures = TRUE, standardized = TRUE, pool.robust = T, pool.method = "D2")

This gave the following output:


fit_RICLPM_CTant_IAcc <- lavaan.mi(RICLPM_CTant_IAcc, data = imputed_list_standardized, missing = 'ML', meanstructure = T, int.ov.free = T, estimator = "MLR") > summary(fit_RICLPM_CTant_IAcc, fit.measures = TRUE, standardized = TRUE, pool.robust = T, pool.method = "D2") lavaan.mi object fit to 5 imputed data sets using: - lavaan (0.6-19) - lavaan.mi (0.1-1.0031) See class?lavaan.mi help page for available methods. Convergence information: The model converged on 5 imputed data sets. Standard errors were available for all imputations. Heywood cases detected for data set(s) 1, 2, 3, 4, 5 These are not necessarily a cause for concern, unless a pooled estimate is also a Heywood case. Estimator ML Optimization method NLMINB Number of model parameters 32 Number of equality constraints 4 Number of observations 189 Number of missing patterns 1 Model Test User Model: Standard Scaled Test statistic 4.232 3.934 Degrees of freedom 5 5 P-value 0.516 0.559 Average scaling correction factor 1.029 Pooling method D2 Pooled statistic “yuan.bentler.mplus” “yuan.bentler.mplus” correction applied BEFORE pooling Model Test Baseline Model: Test statistic 204.489 225.253 Degrees of freedom 21 21 P-value 0.000 0.000 Scaling correction factor 1.124 User Model versus Baseline Model: Comparative Fit Index (CFI) 1.000 1.000 Tucker-Lewis Index (TLI) 1.018 1.022 Robust Comparative Fit Index (CFI) 0.982 Robust Tucker-Lewis Index (TLI) 0.923 Loglikelihood and Information Criteria: Loglikelihood user model (H0) -1345.197 -1345.197 Scaling correction factor 0.931 for the MLR correction Loglikelihood unrestricted model (H1) -1342.460 -1342.460 Scaling correction factor 1.061 for the MLR correction Akaike (AIC) 2746.394 2746.394 Bayesian (BIC) 2837.163 2837.163 Sample-size adjusted Bayesian (SABIC) 2748.472 2748.472 Root Mean Square Error of Approximation: RMSEA 0.000 0.000 90 Percent confidence interval - lower 0.000 0.000 90 Percent confidence interval - upper 0.093 0.089 P-value H_0: RMSEA <= 0.050 0.736 0.760 P-value H_0: RMSEA >= 0.080 0.094 0.080 Robust RMSEA 0.095 90 Percent confidence interval - lower 0.031 90 Percent confidence interval - upper 0.161 P-value H_0: Robust RMSEA <= 0.050 0.104 P-value H_0: Robust RMSEA >= 0.080 0.704 Standardized Root Mean Square Residual: SRMR 0.040 0.040 Parameter Estimates: Standard errors Sandwich Information bread Observed Observed information based on Hessian Pooled across imputations Rubin's (1987) rules Augment within-imputation variance Scale by average RIV Wald test for pooled parameters t(df) distribution Pooled t statistics with df >= 1000 are displayed with df = Inf(inity) to save space. Although the t distribution with large df closely approximates a standard normal distribution, exact df for reporting these t tests can be obtained from parameterEstimates.mi() Latent Variables: Estimate Std.Err t-value df P(>|t|) Std.lv Std.all RI_CTant =~ T1_INS_CT_b_nt 1.000 0.825 0.825 T2_INS_CT_b_nt 1.000 0.825 0.834 T3_INS_CT_b_nt 1.000 0.825 0.838 RI_IAcc =~ T1_INT_mean_cc 1.000 0.371 0.369 T2_INT_mean_cc 1.000 0.371 0.376 T3_INT_mean_cc 1.000 0.371 0.375 wINS1 =~ T1_INS_CT_b_nt 1.000 0.538 0.537 wINS2 =~ T2_INS_CT_b_nt 1.000 0.517 0.522 wINS3 =~ T3_INS_CT_b_nt 1.000 0.507 0.515 wINT1 =~ T1_INT_mean_cc 1.000 0.931 0.928 wINT2 =~ T2_INT_mean_cc 1.000 0.911 0.925 wINT3 =~ T3_INT_mean_cc 1.000 0.916 0.926 Regressions: Estimate Std.Err t-value df P(>|t|) Std.lv Std.all wINS2 ~ wINS1 0.263 0.261 1.007 29.079 0.322 0.274 0.274 wINT1 -0.028 0.072 -0.391 37.298 0.698 -0.051 -0.051 wINT2 ~ wINS1 0.404 0.326 1.239 12.442 0.238 0.238 0.238 wINT1 0.141 0.122 1.151 47.192 0.256 0.144 0.144 wINS3 ~ wINS2 0.335 0.219 1.529 28.196 0.137 0.341 0.341 wINT2 0.163 0.086 1.892 21.909 0.072 0.293 0.293 wINT3 ~ wINS2 0.058 0.233 0.250 141.317 0.803 0.033 0.033 wINT2 0.063 0.153 0.414 36.123 0.682 0.063 0.063 T1_INS_CT_bi_ant ~ sex (s1) -0.355 0.161 -2.209 731.739 0.028 -0.355 -0.177 T2_INS_CT_bi_ant ~ sex (s1) -0.355 0.161 -2.209 731.739 0.028 -0.355 -0.179 T3_INS_CT_bi_ant ~ sex (s1) -0.355 0.161 -2.209 731.739 0.028 -0.355 -0.180 T1_INT_mean_acc ~ sex (s2) -0.103 0.118 -0.876 22.830 0.390 -0.103 -0.051 T2_INT_mean_acc ~ sex (s2) -0.103 0.118 -0.876 22.830 0.390 -0.103 -0.052 T3_INT_mean_acc ~ sex (s2) -0.103 0.118 -0.876 22.830 0.390 -0.103 -0.052 Covariances: Estimate Std.Err t-value df P(>|t|) Std.lv Std.all RI_CTant ~~ RI_IAcc -0.111 0.073 -1.523 33.915 0.137 -0.364 -0.364 wINS1 ~~ wINT1 -0.008 0.076 -0.104 19.370 0.918 -0.016 -0.016 .wINS2 ~~ .wINT2 0.048 0.076 0.634 15.208 0.535 0.111 0.111 .wINS3 ~~ .wINT3 0.038 0.050 0.771 57.568 0.444 0.095 0.095 Intercepts: Estimate Std.Err t-value df P(>|t|) Std.lv Std.all .T1_INS_CT_b_nt 0.535 0.271 1.975 Inf 0.048 0.535 0.535 .T2_INS_CT_b_nt 0.535 0.269 1.993 Inf 0.047 0.535 0.541 .T3_INS_CT_b_nt 0.535 0.271 1.978 Inf 0.048 0.535 0.543 .T1_INT_mean_cc 0.156 0.194 0.800 28.376 0.430 0.156 0.155 .T2_INT_mean_cc 0.156 0.200 0.779 30.307 0.442 0.156 0.158 .T3_INT_mean_cc 0.156 0.197 0.790 29.295 0.436 0.156 0.157 Variances: Estimate Std.Err t-value df P(>|t|) Std.lv Std.all RI_CTant 0.681 0.136 5.019 59.088 0.000 1.000 1.000 RI_IAcc 0.137 0.109 1.257 32.750 0.218 1.000 1.000 wINS1 0.289 0.104 2.790 31.799 0.009 1.000 1.000 wINT1 0.867 0.135 6.418 54.254 0.000 1.000 1.000 .wINS2 0.246 0.075 3.276 25.213 0.003 0.922 0.922 .wINT2 0.767 0.168 4.556 933.786 0.000 0.924 0.924 .wINS3 0.197 0.044 4.435 17.114 0.000 0.766 0.766 .wINT3 0.833 0.123 6.781 79.459 0.000 0.994 0.994 .T1_INS_CT_b_nt 0.000 0.000 0.000 .T2_INS_CT_b_nt 0.000 0.000 0.000 .T3_INS_CT_b_nt 0.000 0.000 0.000 .T1_INT_mean_cc 0.000 0.000 0.000 .T2_INT_mean_cc 0.000 0.000 0.000 .T3_INT_mean_cc 0.000 0.000 0.000 Warning messages: 1: lavaan->lav_lavaan_step11_estoptim(): Model estimation FAILED! Returning starting values. 2: lavaan->lav_lavaan_step11_estoptim(): Model estimation FAILED! Returning starting values.


I also tried it with the imputed list that contained more data sets.

summary(fit_RICLPM_CTant_IAcc, fit.measures = TRUE, standardized = TRUE, pool.robust = T, pool.method = "D2") lavaan.mi object fit to 20 imputed data sets using: - lavaan (0.6-19) - lavaan.mi (0.1-1.0031) See class?lavaan.mi help page for available methods. Convergence information: The model converged on 20 imputed data sets. Standard errors were available for all imputations. Heywood cases detected for data set(s) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 These are not necessarily a cause for concern, unless a pooled estimate is also a Heywood case. Estimator ML Optimization method NLMINB Number of model parameters 32 Number of equality constraints 4 Number of observations 189 Number of missing patterns 1 Model Test User Model: Standard Scaled Test statistic 3.700 3.660 Degrees of freedom 5 5 P-value 0.593 0.599 Average scaling correction factor 1.044 Pooling method D2 Pooled statistic “yuan.bentler.mplus” “yuan.bentler.mplus” correction applied BEFORE pooling Model Test Baseline Model: Test statistic 111.640 120.848 Degrees of freedom 21 21 P-value 0.000 0.000 Scaling correction factor 1.134 User Model versus Baseline Model: Comparative Fit Index (CFI) 1.000 1.000 Tucker-Lewis Index (TLI) 1.060 1.056 Robust Comparative Fit Index (CFI) 0.976 Robust Tucker-Lewis Index (TLI) 0.900 Loglikelihood and Information Criteria: Loglikelihood user model (H0) -1378.797 -1378.797 Scaling correction factor 1.050 for the MLR correction Loglikelihood unrestricted model (H1) -1376.081 -1376.081 Scaling correction factor 1.175 for the MLR correction Akaike (AIC) 2813.593 2813.593 Bayesian (BIC) 2904.362 2904.362 Sample-size adjusted Bayesian (SABIC) 2815.671 2815.671 Root Mean Square Error of Approximation: RMSEA 0.000 0.000 90 Percent confidence interval - lower 0.000 0.000 90 Percent confidence interval - upper 0.086 0.083 P-value H_0: RMSEA <= 0.050 0.791 0.812 P-value H_0: RMSEA >= 0.080 0.069 0.058 Robust RMSEA 0.102 90 Percent confidence interval - lower 0.042 90 Percent confidence interval - upper 0.167 P-value H_0: Robust RMSEA <= 0.050 0.072 P-value H_0: Robust RMSEA >= 0.080 0.766 Standardized Root Mean Square Residual: SRMR 0.030 0.030 Parameter Estimates: Standard errors Sandwich Information bread Observed Observed information based on Hessian Pooled across imputations Rubin's (1987) rules Augment within-imputation variance Scale by average RIV Wald test for pooled parameters t(df) distribution Pooled t statistics with df >= 1000 are displayed with df = Inf(inity) to save space. Although the t distribution with large df closely approximates a standard normal distribution, exact df for reporting these t tests can be obtained from parameterEstimates.mi() Latent Variables: Estimate Std.Err t-value df P(>|t|) Std.lv Std.all RI_CTant =~ T1_INS_CT_b_nt 1.000 0.834 0.832 T2_INS_CT_b_nt 1.000 0.834 0.843 T3_INS_CT_b_nt 1.000 0.834 0.843 RI_IAcc =~ T1_INT_mean_cc 1.000 0.288 0.287 T2_INT_mean_cc 1.000 0.288 0.292 T3_INT_mean_cc 1.000 0.288 0.291 wINS1 =~ T1_INS_CT_b_nt 1.000 0.532 0.530 wINS2 =~ T2_INS_CT_b_nt 1.000 0.506 0.511 wINS3 =~ T3_INS_CT_b_nt 1.000 0.506 0.511 wINT1 =~ T1_INT_mean_cc 1.000 0.958 0.956 wINT2 =~ T2_INT_mean_cc 1.000 0.942 0.955 wINT3 =~ T3_INT_mean_cc 1.000 0.943 0.955 Regressions: Estimate Std.Err t-value df P(>|t|) Std.lv Std.all wINS2 ~ wINS1 0.175 0.235 0.746 256.581 0.457 0.184 0.184 wINT1 -0.007 0.069 -0.106 155.508 0.916 -0.014 -0.014 wINT2 ~ wINS1 0.357 0.324 1.103 196.167 0.271 0.202 0.202 wINT1 0.192 0.131 1.471 128.975 0.144 0.196 0.196 wINS3 ~ wINS2 0.174 0.234 0.743 178.601 0.459 0.174 0.174 wINT2 0.153 0.097 1.580 261.941 0.115 0.285 0.285 wINT3 ~ wINS2 -0.066 0.229 -0.289 124.114 0.773 -0.035 -0.035 wINT2 0.153 0.141 1.088 147.559 0.279 0.153 0.153 T1_INS_CT_bi_ant ~ sex (s1) -0.332 0.156 -2.127 751.497 0.034 -0.332 -0.166 T2_INS_CT_bi_ant ~ sex (s1) -0.332 0.156 -2.127 751.497 0.034 -0.332 -0.168 T3_INS_CT_bi_ant ~ sex (s1) -0.332 0.156 -2.127 751.497 0.034 -0.332 -0.168 T1_INT_mean_acc ~ sex (s2) -0.108 0.116 -0.932 467.029 0.352 -0.108 -0.054 T2_INT_mean_acc ~ sex (s2) -0.108 0.116 -0.932 467.029 0.352 -0.108 -0.055 T3_INT_mean_acc ~ sex (s2) -0.108 0.116 -0.932 467.029 0.352 -0.108 -0.055 Covariances: Estimate Std.Err t-value df P(>|t|) Std.lv Std.all RI_CTant ~~ RI_IAcc -0.102 0.072 -1.418 286.458 0.157 -0.424 -0.424 wINS1 ~~ wINT1 0.014 0.069 0.209 208.581 0.835 0.028 0.028 .wINS2 ~~ .wINT2 0.063 0.080 0.785 389.168 0.433 0.141 0.141 .wINS3 ~~ .wINT3 0.005 0.054 0.091 229.198 0.928 0.011 0.011 Intercepts: Estimate Std.Err t-value df P(>|t|) Std.lv Std.all .T1_INS_CT_b_nt 0.501 0.262 1.911 Inf 0.056 0.501 0.500 .T2_INS_CT_b_nt 0.501 0.261 1.920 Inf 0.055 0.501 0.506 .T3_INS_CT_b_nt 0.501 0.264 1.896 Inf 0.058 0.501 0.506 .T1_INT_mean_cc 0.163 0.191 0.856 615.542 0.392 0.163 0.163 .T2_INT_mean_cc 0.163 0.196 0.832 678.015 0.406 0.163 0.166 .T3_INT_mean_cc 0.163 0.195 0.839 659.094 0.402 0.163 0.166 Variances: Estimate Std.Err t-value df P(>|t|) Std.lv Std.all RI_CTant 0.695 0.118 5.899 794.900 0.000 1.000 1.000 RI_IAcc 0.083 0.124 0.665 135.633 0.507 1.000 1.000 wINS1 0.283 0.089 3.193 337.362 0.002 1.000 1.000 wINT1 0.918 0.148 6.218 201.302 0.000 1.000 1.000 .wINS2 0.247 0.079 3.108 289.581 0.002 0.966 0.966 .wINT2 0.816 0.161 5.057 661.730 0.000 0.919 0.919 .wINS3 0.223 0.063 3.560 113.724 0.001 0.872 0.872 .wINT3 0.869 0.126 6.876 504.877 0.000 0.977 0.977 .T1_INS_CT_b_nt 0.000 0.000 0.000 .T2_INS_CT_b_nt 0.000 0.000 0.000 .T3_INS_CT_b_nt 0.000 0.000 0.000 .T1_INT_mean_cc 0.000 0.000 0.000 .T2_INT_mean_cc 0.000 0.000 0.000 .T3_INT_mean_cc 0.000 0.000 0.000 Warning messages: 1: lavaan->lav_lavaan_step11_estoptim(): Model estimation FAILED! Returning starting values. 2: lavaan->lav_lavaan_step11_estoptim(): Model estimation FAILED! Returning starting values. The weird thing is, that when I run the model on one separate data set, everything seems to go fine. I tried this multiple times for both imputations.Below is an example.

fit_RICLPM_CTant_IAcc_TRY_notpooled <- lavaan(RICLPM_CTant_IAcc, data = df_imp1_wide_standardized, missing = 'ML', meanstructure = T, int.ov.free = T, estimator = "MLR") > summary(fit_RICLPM_CTant_IAcc_TRY_notpooled, fit.measures = TRUE, standardized = TRUE) lavaan 0.6-19 ended normally after 53 iterations Estimator ML Optimization method NLMINB Number of model parameters 32 Number of equality constraints 4 Number of observations 189 Number of missing patterns 1 Model Test User Model: Standard Scaled Test Statistic 5.474 5.263 Degrees of freedom 5 5 P-value (Chi-square) 0.361 0.385 Scaling correction factor 1.040 Yuan-Bentler correction (Mplus variant) Model Test Baseline Model: Test statistic 527.217 468.639 Degrees of freedom 21 21 P-value 0.000 0.000 Scaling correction factor 1.125 User Model versus Baseline Model: Comparative Fit Index (CFI) 0.999 0.999 Tucker-Lewis Index (TLI) 0.996 0.998 Robust Comparative Fit Index (CFI) 0.999 Robust Tucker-Lewis Index (TLI) 0.997 Loglikelihood and Information Criteria: Loglikelihood user model (H0) -1345.197 -1345.197 Scaling correction factor 0.931 for the MLR correction Loglikelihood unrestricted model (H1) -1342.460 -1342.460 Scaling correction factor 1.061 for the MLR correction Akaike (AIC) 2746.394 2746.394 Bayesian (BIC) 2837.163 2837.163 Sample-size adjusted Bayesian (SABIC) 2748.472 2748.472 Root Mean Square Error of Approximation: RMSEA 0.022 0.017 90 Percent confidence interval - lower 0.000 0.000 90 Percent confidence interval - upper 0.106 0.102 P-value H_0: RMSEA <= 0.050 0.606 0.633 P-value H_0: RMSEA >= 0.080 0.165 0.145 Robust RMSEA 0.019 90 Percent confidence interval - lower 0.000 90 Percent confidence interval - upper 0.106 P-value H_0: Robust RMSEA <= 0.050 0.615 P-value H_0: Robust RMSEA >= 0.080 0.162 Standardized Root Mean Square Residual: SRMR 0.020 0.020 Parameter Estimates: Standard errors Sandwich Information bread Observed Observed information based on Hessian Latent Variables: Estimate Std.Err z-value P(>|z|) Std.lv Std.all RI_CTant =~ T1_INS_CT_b_nt 1.000 0.808 0.804 T2_INS_CT_b_nt 1.000 0.808 0.812 T3_INS_CT_b_nt 1.000 0.808 0.818 RI_IAcc =~ T1_INT_mean_cc 1.000 0.422 0.423 T2_INT_mean_cc 1.000 0.422 0.423 T3_INT_mean_cc 1.000 0.422 0.424 wINS1 =~ T1_INS_CT_b_nt 1.000 0.563 0.561 wINS2 =~ T2_INS_CT_b_nt 1.000 0.546 0.549 wINS3 =~ T3_INS_CT_b_nt 1.000 0.532 0.539 wINT1 =~ T1_INT_mean_cc 1.000 0.905 0.906 wINT2 =~ T2_INT_mean_cc 1.000 0.904 0.906 wINT3 =~ T3_INT_mean_cc 1.000 0.901 0.905 Regressions: Estimate Std.Err z-value P(>|z|) Std.lv Std.all wINS2 ~ wINS1 0.335 0.209 1.603 0.109 0.346 0.346 wINT1 -0.041 0.065 -0.632 0.527 -0.068 -0.068 wINT2 ~ wINS1 0.487 0.218 2.237 0.025 0.304 0.304 wINT1 0.126 0.098 1.290 0.197 0.127 0.127 wINS3 ~ wINS2 0.447 0.149 3.003 0.003 0.458 0.458 wINT2 0.223 0.064 3.494 0.000 0.378 0.378 wINT3 ~ wINS2 0.082 0.194 0.423 0.673 0.050 0.050 wINT2 -0.026 0.132 -0.198 0.843 -0.026 -0.026 T1_INS_CT_bi_ant ~ sex (s1) -0.392 0.135 -2.900 0.004 -0.392 -0.195 T2_INS_CT_bi_ant ~ sex (s1) -0.392 0.135 -2.900 0.004 -0.392 -0.197 T3_INS_CT_bi_ant ~ sex (s1) -0.392 0.135 -2.900 0.004 -0.392 -0.199 T1_INT_mean_acc ~ sex (s2) 0.018 0.094 0.187 0.852 0.018 0.009 T2_INT_mean_acc ~ sex (s2) 0.018 0.094 0.187 0.852 0.018 0.009 T3_INT_mean_acc ~ sex (s2) 0.018 0.094 0.187 0.852 0.018 0.009 Covariances: Estimate Std.Err z-value P(>|z|) Std.lv Std.all RI_CTant ~~ RI_IAcc -0.145 0.057 -2.548 0.011 -0.424 -0.424 wINS1 ~~ wINT1 -0.053 0.061 -0.872 0.383 -0.105 -0.105 .wINS2 ~~ .wINT2 0.040 0.060 0.675 0.500 0.092 0.092 .wINS3 ~~ .wINT3 0.041 0.043 0.959 0.338 0.113 0.113 Intercepts: Estimate Std.Err z-value P(>|z|) Std.lv Std.all .T1_INS_CT_b_nt 0.592 0.228 2.597 0.009 0.592 0.589 .T2_INS_CT_b_nt 0.592 0.226 2.620 0.009 0.592 0.595 .T3_INS_CT_b_nt 0.592 0.227 2.602 0.009 0.592 0.599 .T1_INT_mean_cc -0.027 0.154 -0.172 0.863 -0.027 -0.027 .T2_INT_mean_cc -0.027 0.158 -0.169 0.866 -0.027 -0.027 .T3_INT_mean_cc -0.027 0.163 -0.163 0.870 -0.027 -0.027 Variances: Estimate Std.Err z-value P(>|z|) Std.lv Std.all RI_CTant 0.653 0.115 5.660 0.000 1.000 1.000 RI_IAcc 0.178 0.078 2.294 0.022 1.000 1.000 wINS1 0.317 0.089 3.583 0.000 1.000 1.000 wINT1 0.820 0.100 8.206 0.000 1.000 1.000 .wINS2 0.259 0.064 4.049 0.000 0.871 0.871 .wINT2 0.736 0.131 5.598 0.000 0.900 0.900 .wINS3 0.166 0.028 5.979 0.000 0.586 0.586 .wINT3 0.809 0.100 8.089 0.000 0.997 0.997 .T1_INS_CT_b_nt 0.000 0.000 0.000 .T2_INS_CT_b_nt 0.000 0.000 0.000 .T3_INS_CT_b_nt 0.000 0.000 0.000 .T1_INT_mean_cc 0.000 0.000 0.000 .T2_INT_mean_cc 0.000 0.000 0.000 .T3_INT_mean_cc 0.000 0.000 0.000

No warning messages here (and very different outcomes than the ones where I used lavaan.mi() ). I have read some previous post on this topic, for example here (Model estimation FAILED! Returning starting values) or here (https://groups.google.com/g/lavaan/c/Zp4-xlbcfbI), but I found no definite answer. Can anyone tell me why this "mismatch" occurs? 

Thank you so much in advance!

Sincerely,

Joni Tims

Joni Tims

unread,
May 6, 2025, 10:42:15 AM5/6/25
to lavaan
So sorry, I see my layout got scrambled up. I added some screenshots.
The images called lavaan1-lavaan4 are for the RI-CLPM I estimated with lavaan.mi() with 20 data sets. Images lavaan5-lavaan7 are for the single data set. Images lavaan8-lavaan11 are for the RI-CLPM I estimated with lavaan.mi() with 5 imputed data sets.



Op dinsdag 6 mei 2025 om 14:00:46 UTC+2 schreef Joni Tims:
lavaan2.jpg
lavaan7.jpg
lavaan6.jpg
lavaan9.jpg
lavaan3.jpg
lavaan10.jpg
lavaan1.jpg
lavaan4.jpg
lavaan11.jpg
lavaan8.jpg
lavaan5.jpg
Reply all
Reply to author
Forward
0 new messages