Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Using GSEM to run multilevel analyses with outcomes at Level 2?

    I am attempting to run a complicated model using gsem in Stata 14.1. I have three levels (individual>wave>network_member). [Although one might argue that wave should be on the bottom, the data were not entered in such a way that network members can be matched from one time to another. So I assume this is the best way to model this, but I'm open to other suggestions). The data are actually from couples too, and we're using simultaneous equations to model the non-independence, but I *think* that is irrelevant to the current question.]

    We want to know if network member variables (Level 1) predict time varying individual outcomes (Level 2). Since we can't match up the network members over time, we're just interested in concurrent effects (averaged across waves). An example question is: Does whether the network member is a drinking buddy or not (as reported at wave t) interact with time spent with network member (as reported at wave t) to predict own drinking (as reported at wave t)?

    Obviously, the biggest problem is the fact that the outcome is at Level 2. We have considered aggregating the responses, but the big problem there is that we will need to test Level 1 X Level 1 interactions, so we really don't want to aggregate. Standard multilevel modeling programs cannot handle Level 2 outcomes, but apparently some structural equation modeling programs can. For example, I was able to estimate a three-level model in Mplus that basically uses latent variables to allow you to use a Level 2 outcome. However, Mplus only allows continuous outcomes when doing three-level models (unless the "lowest" level is time and you use their growth model specifications), and we have count outcomes.

    GSEM allows for three-level models with count outcomes. But does it allow you to model outcomes at Level 2? My understanding of SEM is pretty basic, and I haven't really used GSEM for anything other than simple path models with nice Level 1 outcomes in the past. I can't quite wrap my head around how to construct the latent variables (assuming it can be done).

    Here is sample code from Mplus (which appears to run correctly, but of course does not allow for hmax and wmax to be count variables):

    VARIABLE:
    Names are
    id hmax wmax hdb wdb htwdb wtwdb hdbxtwdb wdbxtwdb idwave;
    CLUSTER = idwave id;
    MISSING are all (-9999) ;
    BETWEEN = (idwave) hmax wmax;

    ANALYSIS:
    TYPE = threelevel;
    PROCESSORS = 8;

    MODEL:
    %WITHIN%

    hdb;
    wdb;
    htwdb;
    wtwdb;
    hdbxtwdb;
    wdbxtwdb;

    %BETWEEN idwave%

    hmax ON hdb wdb htwdb wtwdb hdbxtwdb wdbxtwdb;
    wmax ON wdb hdb wtwdb htwdb wdbxtwdb hdbxtwdb;
    hmax WITH wmax;

    Here is what I have so far in Stata (but of course doesn't converge because hmax and wmax are Level 2 variables):

    Code:
    gsem     (hmax <- M1[id] M3[id>wave] 1.hdb 1.wdb htwdb wtwdb 1.hdb#c.htwdb 1.wdb#c.wtwdb)     ///
             (wmax <- M2[id] M4[id>wave] 1.wdb 1.hdb wtwdb htwdb 1.wdb#c.wtwdb 1.hdb#c.htwdb), nbreg vce(robust)
    Last edited by Jaye Derrick; 19 May 2016, 11:20.
Working...
X