Moderated mediation with latent variables

1,015 views
Skip to first unread message

Luis

unread,
Jul 3, 2017, 4:34:28 AM7/3/17
to lavaan

Hi lavaaners,

I have modelled three latent variables in which one represents genetic data, the second brain volumetric information and the third severity of symptoms for a psychiatric disorder. During the analysis of this dataset I considered designing a mediation model in which symptom severity is regressed on the genetic latent either directly or via the brain volumetric latent. However, according to Kline (2015) mediation models assumes no interaction between the cause (genetic susceptibility) and the mediator (brain volume), which is likely not true in this case as the particular genes for the disorder susceptibility may be involved in the brain volume of those patients. Is it possible to specify a model such that the genetic latent interacts with the brain volume making this model a sort of a moderated mediation type of model? I could only find moderated mediation using categorical variables, not latent variables.

The syntax for the model I have been testing is:

total <- "

vol =~  lh_parahippocampal_area + lh_entorhinal_area
    + lh_transversetemporal_area + rh_temporalpole_area +lh_frontalpole_area
    +rh_frontalpole_area

sym =~ z_pos_2grp+ z_neg_2grp+ z_dis_2grp

gen =~ BDNFord + EGFRord + IL3ord +FGFord #+ COMTord

sym ~ c*gen
vol ~ a*gen
sym ~ b*vol

ab := a*b

totalaz := c+(a*b)
"

Best,

luis

  1. Kline RB. The Mediation Myth. Basic Appl. Soc. Psych. 2015;37(4):202-213. doi:10.1080/01973533.2015.1049349.

Terrence Jorgensen

unread,
Jul 14, 2017, 3:27:32 AM7/14/17
to lavaan

Is it possible to specify a model such that the genetic latent interacts with the brain volume making this model a sort of a moderated mediation type of model? I could only find moderated mediation using categorical variables, not latent variables.

I think I recognize your post from SEMNET, but just in case, the semTools package has a function that can help construct product indicators for a latent factor representing the interaction term.  You can find references on the help page for further reading about the product-indicator approach for latent interactions:

library(semTools)
?indProd

Terrence D. Jorgensen
Postdoctoral Researcher, Methods and Statistics
Research Institute for Child Development and Education, the University of Amsterdam

Luis Fernado Silva Castro de Araújo

unread,
Jul 17, 2017, 1:07:26 AM7/17/17
to lav...@googlegroups.com
Thank you Terrence, that solves my question.

Best,

Luis


--
You received this message because you are subscribed to a topic in the Google Groups "lavaan" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/lavaan/Ytwt9lrUC5k/unsubscribe.
To unsubscribe from this group and all its topics, send an email to lavaan+unsubscribe@googlegroups.com.
To post to this group, send email to lav...@googlegroups.com.
Visit this group at https://groups.google.com/group/lavaan.
For more options, visit https://groups.google.com/d/optout.

Luis

unread,
Oct 11, 2017, 10:08:23 PM10/11/17
to lavaan

Dear Terrence and fellow lavaaners,

Sorry for bumping this discussion, but only now I could return to this problem.

indProb seems to be what I need to solve it, however I need further help on how to use it. For that, I will use a simpler model than the one originally posted. Please consider the model specification below:

model7 <- “
    sch =~ pos_2grp+ neg_2grp+ dis_2grp
    gen =~ BDNFord + EGFRord + IL3ord
    cog =~  attention + verbal + workingm

    sch ~ cprime * gen
    sch ~ b * cog
    sch ~ bprime * genXcog

    cog ~ a * gen
    cog ~~ genXcog
    gen ~~ genXcog

    bgen :=  b + bprime
    indgen := bgen * a
    indNgen := b * a
    indDiff := indgen - indNgen
 ”
fit7 <- sem(model7, dataset, estimator = "MLM")
summary(fit7)

Where sch is symptom severity measured in tests, cog is trivial cognitive testing (and the mediator) and gen is formed by ordinal variables (0=absence of risk allele, 1=heterozygous, 2=homozygous). The model I have in mind looks like the figure below, from the paper [^1]. On trying to run this specification, lavaan will complain that cog is not an observed variable and not run the analysis.

Now, if I try to follow your suggestion and run indProd:

dataset<-indProd(dataset, var1=c("BDNFord","EGFRord","IL3ord"),
                      var2=c("attention","verbal","workingm"))

dataset is now the dataset that includes BDNFord.attention, EGFRord.verbal, IL3ord.workingm. This is where I got stuck, how can I obtain a general product genXcog that allows me to use in this moderated mediation model?

Thank you,

Luis

[^1]: Jeremy N.V Miles, Magdalena Kulesza, Brett Ewing, Regina A Shih, Joan S Tucker, Elizabeth J D’Amico, (2015) “Moderated
mediation analysis: an illustration using the association of gender with delinquency and mental health”, Journal of Criminal
Psychology, Vol. 5 Issue: 2, pp.99-123, https://doi.org/10.1108/JCP-02-2015-0010

Message has been deleted

Terrence Jorgensen

unread,
Oct 18, 2017, 3:30:24 AM10/18/17
to lavaan

lavaan will complain that cog is not an observed variable and not run the analysis.

Are you sure it is not complaining about genXcog, which is neither observed nor defined as a latent variable?  The lack of a measurement model for genXcog is the only problem I notice in your syntax.

how can I obtain a general product genXcog that allows me to use in this moderated mediation model?

You can see example syntax for product-indicators of a latent interaction on one of the "see also" help pages linked at the bottom of ?indProd.  
For example, ?probe2WayMC.  In your case,

genXcog =~ BDNFord.attention + EGFRord.verbal + IL3ord.workingm + ...


Reply all
Reply to author
Forward
0 new messages