How to integrate a single manifest variable proberly into my SEM?

406 views
Skip to first unread message

Pahud

unread,
Feb 18, 2015, 7:40:37 AM2/18/15
to lav...@googlegroups.com
Hey everyone

How do I integrate a single manifest variable into my SEM?

Right now, I'm setting it as below, in order to correlate it with my desired latent variable:
1) IT =~ 1* IT_mean
2) IT_mean ~~ 0*IT_mean
3) model as usual... IT ~~ Y

Is this the right way to do it or is there a bettter / more correct way of doing it?

...and why is it not possible to just correlate it as a manifest variable?

thanks in advance
olivier

Mikko Rönkkö

unread,
Feb 18, 2015, 9:04:01 AM2/18/15
to lav...@googlegroups.com
Hi

Can you explain a bit more by what you mean when you say 

"..and why is it not possible to just correlate it as a manifest variable?”

Sharing your model definition and explaining what you want to do with the manifest variable would also help. 

Mikko

--
You received this message because you are subscribed to the Google Groups "lavaan" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lavaan+un...@googlegroups.com.
To post to this group, send email to lav...@googlegroups.com.
Visit this group at http://groups.google.com/group/lavaan.
For more options, visit https://groups.google.com/d/optout.

Message has been deleted
Message has been deleted

Mikko Rönkkö

unread,
Feb 18, 2015, 9:18:43 AM2/18/15
to lav...@googlegroups.com
Hi

Why do you constrain a loading to be zero? I do not think that your model is identified. Can you explain how you want to interpret the model results?

I do not see anything wrong in specifying an observed variables as latent with a single indicator with error constrained to zero, which do.

Mikko

On 18.2.2015, at 16.11, Pahud <pahudo...@hotmail.com> wrote:

Hey Mikko

My model looks as below:

model <- 'constant   =~ 1*hick_RT1mean   + 1*hick_RT2mean   + 1*hick_RT3mean
variable =~ 0*hick_RT1mean + 1*hick_RT2mean + hick_RT3mean
constant ~~ 0*variable
IT =~ 1*IT_mean
IT_mean ~~ 0*IT_mean
IT ~~ variable
IT ~~ constant
'

Pahud

unread,
Feb 18, 2015, 9:28:53 AM2/18/15
to lav...@googlegroups.com
Hey Mikko

My model looks like that:


model <- 'constant   =~ 1*hick_RT1mean   + 1*hick_RT2mean   + 1*hick_RT3mean
               increase =~ 1*hick_RT1mean + 2*hick_RT2mean + 3*hick_RT3mean
               constant ~~ 0*variable
               IT =~ 1*IT_mean
               IT_mean ~~ 0*IT_mean

               IT ~~ increase
               IT ~~ constant'

I'm tying to split variance into a constant latent variable and an increasing latent variable (all guided by theory -> so I fix the links to constant: 1,1,1 or increasing: 1,2,3)
As you see, these latent variables are each measured by three manifest variables.

what I'm now trying to do (and I don't know if I'm doing it right/proper) is, that I include a single manifest variable into my model in order to check it's cov with the latent variables.

does this help?




Am Mittwoch, 18. Februar 2015 15:04:01 UTC+1 schrieb Mikko Rönkkö:

Message has been deleted

Mikko Rönkkö

unread,
Feb 18, 2015, 9:31:18 AM2/18/15
to lav...@googlegroups.com
Hi

This seems correct to me. What happens when you try to estimate the model?

Mikko

Pahud

unread,
Feb 18, 2015, 9:37:57 AM2/18/15
to lav...@googlegroups.com
P-value (Chi-square)                           0.783       0.771

Comparative Fit Index (CFI)                    1.000       1.000

RMSEA                                          0.000       0.000

I just don't get it -> when I'm doing this, then I'm "acting" as I don't have any err.-var. in my latent variable, what by fact, is not true...?

Mikko Rönkkö

unread,
Feb 18, 2015, 9:40:12 AM2/18/15
to lav...@googlegroups.com
Hi

If you have a single indicator, then you cannot estimate its reliability. It is fairly common in this scenario to fix the error variance to 0, but you can of course fix it to any other value that you think is more likely.

Mikko

Pahud

unread,
Feb 18, 2015, 9:48:16 AM2/18/15
to lav...@googlegroups.com
yes, I know...
I just didn't know if this is the common way of doing it like that and why I have to do this "intermediate step" in R/lavaan in order to do so. Why doesn't it work when I directly corr. the manifest variable with my latent variable?

Thanks for your help and verification so far!

Mikko Rönkkö

unread,
Feb 18, 2015, 9:54:49 AM2/18/15
to lav...@googlegroups.com
Hi

What do you mean when you say that it does not work when add the variable directly to the model? Can you provide an example of a model that does not work and a short explanation of why you think it does not work.

Mikko

Pahud

unread,
Feb 18, 2015, 10:36:53 AM2/18/15
to lav...@googlegroups.com

when I just corr. my single manifest with the latent variables directly before building a latent variable with it...
WHY(?): restrictions from R???

Yves Rosseel

unread,
Feb 18, 2015, 11:03:40 AM2/18/15
to lav...@googlegroups.com
Despite Mikko's best efforts, I still do no understand what the problem
is. Do you get a warning message? Do you get an error message? What do
you think is a restriction in R/lavaan?

Yves.

On 02/18/2015 04:36 PM, Pahud wrote:
> <https://lh3.googleusercontent.com/-RkK9SA1CVx8/VOSvOzDHKNI/AAAAAAAAAAk/cGJhNMVgbow/s1600/model_eg.PNG>
>
> when I just corr. my single manifest with the latent variables directly
> before building a latent variable with it...
> WHY(?): restrictions from R???
>
>
>
> Am Mittwoch, 18. Februar 2015 15:54:49 UTC+1 schrieb Mikko Rönkkö:
>
> Hi
>
> What do you mean when you say that it does not work when add the
> variable directly to the model? Can you provide an example of a
> model that does not work and a short explanation of why you think it
> does not work.
>
> Mikko
>
> On 18.2.2015, at 16.48, Pahud <pahudo...@hotmail.com <javascript:>>
>>>> *IT =~ 1*IT_mean
>>>> IT_mean ~~ 0*IT_mean*
>>>>> <http://groups.google.com/group/lavaan>.
>>>>> For more options, visit
>>>>> https://groups.google.com/d/optout
>>>>> <https://groups.google.com/d/optout>.
>>>>
>>>> <https://lh4.googleusercontent.com/-ujGrWgH23EU/VOShjku1TUI/AAAAAAAAAAU/liJsZuyQn78/s1600/model_eg.PNG>
>>>>
>>>>
>>>> --
>>>> You received this message because you are subscribed to
>>>> the Google Groups "lavaan" group.
>>>> To unsubscribe from this group and stop receiving emails
>>>> from it, send an email to lavaan+un...@googlegroups.com.
>>>> To post to this group, send email to
>>>> lav...@googlegroups.com.
>>>> Visit this group at
>>>> http://groups.google.com/group/lavaan
>>>> <http://groups.google.com/group/lavaan>.
>>>> For more options, visit
>>>> https://groups.google.com/d/optout
>>>> <https://groups.google.com/d/optout>.
>>>
>>>
>>> --
>>> You received this message because you are subscribed to the
>>> Google Groups "lavaan" group.
>>> To unsubscribe from this group and stop receiving emails from
>>> it, send an email to lavaan+un...@googlegroups.com.
>>> To post to this group, send email to lav...@googlegroups.com.
>>> Visit this group at http://groups.google.com/group/lavaan
>>> <http://groups.google.com/group/lavaan>.
>>> For more options, visit https://groups.google.com/d/optout
>>> <https://groups.google.com/d/optout>.
>>
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "lavaan" group.
>> To unsubscribe from this group and stop receiving emails from it,
>> send an email to lavaan+un...@googlegroups.com <javascript:>.
>> To post to this group, send email to lav...@googlegroups.com
>> <javascript:>.
>> <http://groups.google.com/group/lavaan>.
>> For more options, visit https://groups.google.com/d/optout
>> <https://groups.google.com/d/optout>.
>
> --
> You received this message because you are subscribed to the Google
> Groups "lavaan" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to lavaan+un...@googlegroups.com
> <mailto:lavaan+un...@googlegroups.com>.
> To post to this group, send email to lav...@googlegroups.com
> <mailto:lav...@googlegroups.com>.

Pahud

unread,
Feb 18, 2015, 11:32:53 AM2/18/15
to lav...@googlegroups.com
no, I don't get a warning msg or errmsg. No msg at all.
If I model my manifest variable direct into the model, without modelling it as a latent variable first, it just doesn't work... no msg or anything like it.

Let me put it different: Why do we model a single manifest variable into a latent variable first, before we're able to cor. it with a latent variable?

for e.g. -> this doen'st work????:

model  <- 'constant   =~ 1*hick_RT1mean   + 1*hick_RT2mean   + 1*hick_RT3mean
                increase =~ 1*hick_RT1mean + 2*hick_RT2mean + 3*hick_RT3mean
                constant ~~ 0*increase
                single_manifest_variable ~~ constant'

PS: is lavaan restricting the corr. of a single manifest variable with a latent variable?

Yves Rosseel

unread,
Feb 19, 2015, 11:42:40 AM2/19/15
to lav...@googlegroups.com
On 02/18/2015 05:32 PM, Pahud wrote:
> no, I don't get a warning msg or errmsg. No msg at all.
> If I model my manifest variable direct into the model, without modelling
> it as a latent variable first, it just doesn't work... no msg or
> anything like it.
>
> Let me put it different: Why do we model a single manifest variable into
> a latent variable first, before we're able to cor. it with a latent
> variable?

Ah, ok. I now understand what you mean. And you are right: this is
currently a restriction of lavaan: if you have exogenous observed
variables, they can only enter the model in the right-hand side of a
regression formula. Not in a covariance formula.

The workaround, as you have found yourself, is to 'upgrade' this
covariate to a latent variable (with a single indicator).

I will see if I can make this happen automatically in a next update. At
the very least, a warning would have been appropriate.

Yves.

Pahud

unread,
Feb 23, 2015, 3:46:45 AM2/23/15
to lav...@googlegroups.com
Thank you for your answers and help Mikko&Yves!
...I could have asked easier / more specific from the beginning :-)

Ann-Kathrin

unread,
Mar 26, 2020, 4:11:47 PM3/26/20
to lavaan
Dear Yves Rosseel,
I am at the same "dead end" at the moment. I'd like too include a manifest, exogenous variable to correlate it with my latent variables and I am wondering if you could find a solution for this restriction?

Thank you in advance and best wishes,
Ann-Kathrin

Nickname

unread,
Mar 27, 2020, 9:55:05 AM3/27/20
to lavaan
Ann-Kathrin,
  Why are you at a dead end?  Does the preceding thread not describe how to do what you want to do?  Here is a simple example.

# The Holzinger and Swineford (1939) example (modified)
HS
.model <- '
    visual  =~ 1*x1 + x2 + x3  # Latent variable
    visual ~~ visual
    x1 ~~ x1
    x2 ~~ x2
    x3 ~~ x3

    age =~ 1*ageyr             # Observed variable
    ageyr ~~ 0*ageyr
    age ~~ age

    age ~~ visual              # Covariance between the two
'
# end HS.model

fit
<- lavaan(HS.model, data=HolzingerSwineford1939)
summary
(fit, fit.measures=TRUE)


Keith
------------------------
Keith A. Markus
John Jay College of Criminal Justice, CUNY
http://jjcweb.jjay.cuny.edu/kmarkus
Frontiers of Test Validity Theory: Measurement, Causation and Meaning.
http://www.routledge.com/books/details/9781841692203/



Reply all
Reply to author
Forward
0 new messages