Clare McCann
Clare McCann

Reputation: 11

Mediation & Moderation w/ an Ordinal Variable in R package lavaan sem function (v0.6.16)

I have x1, x2, m, and y where m is an ordered three-level categorical variable. The model is as follows.

m ~ a*x1

y ~ cx1 + x2 + bm + x2:m

Since m is an ordinal variable, we cannot create this x2:m interaction.

Does anyone have advice on how to handle this?

Additionally, in y ~ x1 + x2 + b*m + x2:m, I would like to specify a “b” path, but I am unsure whether this is the right way.

Code below:

B1, C1, D1, B2, C2, D2, and Moderator are all continuous. Ordinal mediator has 3 levels and Ordinal covariate has two levels.


  # latent factors
  L1 =~ B1 + C1 + D1
  L2 =~ B2 + C2 + D2 
  
  ## full model
 L1 ~ **b*OrdinalMediator** + c*L2 + d*Moderator  + **e*OrdinalMediator:Moderator** + f*OrdinalCovariate
  
  # a (effect of IV on mediator)
  OrdinalMediator ~ a*L2 
  
  # indirect 
  
  ab := a*b
  
  ## covariances 
  
  OrdinalMediator ~~ Moderator
  L2 ~~ Moderator
  OrdinalCovariate ~~ OrdinalMediator
  OrdinalCovariate ~~ L2
  OrdinalCovariate ~~ Moderator
  
  '

fit1 <- lavaan::sem(model1, 
                    data = data,
                    se = "bootstrap",
                    bootstrap = 2000,
                    parallel = "snow",
                    ncpus = 8,
                    ordered = c("OrdinalMediator", "OrdinalCovariate"),
                    estimator = "DWLS")

We get this error:

Warning: lavaan WARNING: information will be set to “expected” for estimator = “DWLS”Warning: '*' is not meaningful for ordered factorsError in lav_data_full(data = data, group = group, cluster = cluster,  : 
  lavaan ERROR: some variables have no values (only missings) or no variance

Thanks in advance!

Upvotes: 0

Views: 190

Answers (0)

Related Questions