model comparision - lavTestLRT.mi?

142 views
Skip to first unread message

Jacquelin Kluge

unread,
May 30, 2023, 9:30:54 AM5/30/23
to lavaan
Hello,

i am trying to figure out if or how I can compare two nested models with multiple imputed datasets. I used sem.mi ti compute the models. Of course I can comapre the pooled fit indicies, but is there a possibility to compare models like the anova() function does?
I thought about the lavtestLRT.mi function but could not figure it out.

I am thankful for any tipps on this matter. Thanks a lot,
Jacquelin

Terrence Jorgensen

unread,
Jun 9, 2023, 7:04:05 PM6/9/23
to lavaan
i am trying to figure out if or how I can compare two nested models with multiple imputed datasets
Yes
 
I thought about the lavtestLRT.mi function but could not figure it out.

Did you run the help-page examples?  It works the same way that lavTestLRT() does for normal lavaan objects.

Terrence D. Jorgensen    (he, him, his)
Assistant Professor, Methods and Statistics
Research Institute for Child Development and Education, the University of Amsterdam
http://www.uva.nl/profile/t.d.jorgensen

 
Message has been deleted

Jacquelin Kluge

unread,
Jun 12, 2023, 6:03:06 PM6/12/23
to lavaan

Thank you very much for your time and answer! I have been able to figure it out. However, I have encountered a difficulty concerning centering. I know it is a discussed topic in multilevel regression, but I cannot find much concerning path analyses or if I find something, I can’t quite understand it.

I am calculating path analysis with two levels and with variables on both levels. My model looks like this:

 Modell_1 <- 'level: 1
                x~ gender+ v2+ v3+ v4+ v5+ v6+ v7+ v8
                y~ x
               
               level: 2
               x~  v9+ v10+ v11+ v12+ v13+ v14+ v15
               y~ 1'


sem_ges <- sem.mi(modell_ges, implist, fun = "lavaan",cluster = "school", estimator='ML', seed = 1234)


Is centering something I should consider? While trying to understand, I always put things into practice and try them out so I found out that grand mean centering the level 2 variables doe not change the results. If I also group mean center the level 1 variables, the results change.

Later on I plan to model a mediation with a level 1 variable, but that is still in the process.


Also, I am not quite sure which values I should report at the end - estimate/ std.lv or std. all? The std.all-values from the interceot however seem a little strange. I found it has something to do with the standardisation of onöy the latent variable (std.lv) or the latent and observerd variable (std.all). But I only have observerd variables in my case, don't I? here is my in and part of my output:


summary(sem_ges, fit.measures = T,standardized = T, test = 'D2', pool.robust = TRUE)


Level 1 [within]:

 

Regressions:

                   Estimate    Std.Err  t-value       df  P(>|t|)   Std.lv    Std.all

  x~                                                                      

    v1                   -0.009    0.036   -0.251      Inf    0.802     -0.009   -0.006

    v2                   -0.135    0.042   -3.216      Inf    0.001     -0.135   -0.083

    v3                   0.002    0.001    1.321 4144.859    0.187      0.002    0.033

    v4                   0.084    0.020    4.119      Inf    0.000      0.084    0.112

    v5                   -0.004    0.022   -0.171      Inf    0.864     -0.004   -0.005

    v6                   0.184    0.035    5.309      Inf    0.000      0.184    0.152

    v7                  -0.025    0.022   -1.110      Inf    0.267     -0.025   -0.031

    v8                   0.668    0.027   24.797      Inf    0.000      0.668    0.611

  x ~                                                                        

    y                   0.740    0.021   34.850      Inf    0.000      0.740    0.763

 

Intercepts:

                   Estimate    Std.Err  t-value       df  P(>|t|)   Std.lv    Std.all

   .x                   0.000                                          0.000    0.000

   .y                   0.000                                          0.000    0.000

 

Variances:

                   Estimate    Std.Err  t-value       df  P(>|t|)   Std.lv    Std.all

   .x                   0.232    0.011   21.767      Inf    0.000      0.232    0.552

   .y                   0.164    0.008   20.642      Inf    0.000      0.164    0.417

 

 

 

Level 2 [school]:

 

Regressions:

                   Estimate    Std.Err  t-value       df  P(>|t|)   Std.lv    Std.all

  koko_handl ~                                                                      

    v9                  -0.000    0.000   -0.583 3793.034    0.560     -0.000   -0.067

    v10                  0.001    0.001    1.501 1377.475    0.133      0.001    0.181

    v11                 -0.004    0.003   -1.535 1481.543    0.125     -0.004   -0.170

    v12                  0.145    0.050    2.915 1126.257    0.004      0.145    0.393

    v13                  -0.103    0.043   -2.405  970.529    0.016     -0.103   -0.328

    v14                  0.071    0.027    2.665  822.596    0.008      0.071    0.337

    v15                  -0.080    0.040   -1.974 1176.405    0.049     -0.080   -0.250

 

Intercepts:

                   Estimate    Std.Err  t-value       df  P(>|t|)   Std.lv    Std.all

   .y                    0.914    0.121    7.572      Inf    0.000      0.914   15.655

   .x                    0.240    0.220    1.089 1554.266    0.276      0.240    1.766

 

Variances:

                   Estimate    Std.Err  t-value       df  P(>|t|)   Std.lv    Std.all

   .x                   0.014    0.004    3.189      Inf    0.001      0.014    0.741

   .y                   0.003    0.005    0.707      Inf    0.480      0.003    1.000


 


I am sorry to bother you all. Although I have already calculated factor analyses with lavaan, multilevel path analysis are quite new to me and I can't find much about this topic. I would really appreciate your help. Thanks a lot,

Jacquelin

Reply all
Reply to author
Forward
0 new messages