Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: Three-Four Level Meta-Analysis in Stata


From   Jillian Turanovic <[email protected]>
To   [email protected]
Subject   Re: st: Three-Four Level Meta-Analysis in Stata
Date   Tue, 3 Sep 2013 12:46:14 -0700

Thank you very much, Isabel. This is exactly the solution I was
looking for. I will use -meglm- in Stata 13 to run my meta-regression.


Jillian J. Turanovic, M.S.
Doctoral Student
School of Criminology and Criminal Justice
Arizona State University
Mail Code:  4420
411 N. Central Ave., Suite 600
Phoenix, AZ   85004-0685
602-496-1292 (office)
602-496-2366 (fax)


On Tue, Sep 3, 2013 at 12:19 PM, Isabel Canette, StataCorp LP
<[email protected]> wrote:
>
> Jillian Turanovic <[email protected]> wanted to perform a
> meta-analysis with a three(four)-level hierarchical data.
> Here Jillian uses the "three(four)" expression, because although
> there are three observed levels, the first level contains aggregated
> data, and therefore, there are four implicit levels.
>
> On page 26 of the [ME] Manual we show how to perform a meta-analysis
> with one(two)-level data. The on-line version of the [ME] Manual
> is in the following link:
> http://www.stata.com/bookstore/multilevel-mixed-effects-reference-manual/
>
> The concepts explained in the documentation can be extended to the
> multilevel case. Here I will simulate data with an additional level
> (that is, a two(three)-level model, using the terminology in this post).
>
> I will simulate 2000 observations (trials), grouped in studies.
> Variable -trial_sd- contains the standard deviation for each trial,
> and -trial_result_0- is the result of the trial without accounting for
> the study effect, which is added later. Here I will add a covariate
> at the trial level, which will enter the fixed-effect part of the
> model.
>
>
>   clear
>
>   set seed 13579
>   set obs 2000
>   gen trial  = _n
>   gen x = .5*rnormal()
>   gen trial_sd = .2*runiform() + .1
>   gen trial_result_0 = 3 + .3*x + trial_sd*rnormal() + sqrt(.2)*rnormal()
>   gen study = int(trial/7) + 1
>   gen study_eff = sqrt(.3)*rnormal()
>   bysort study: replace study_eff = study_eff[1]
>
>
>   gen trial_result = trial_result_0 + study_eff
>
>
>   constraint 1 _b[var(trial_sd[study>trial]):_cons] = 1
>   meglm trial_result x || study: || trial : trial_sd,  nocons constraint(1)
>
> Here is the output:
>
>
> Mixed-effects GLM                               Number of obs      =      2000
> Family:                Gaussian
> Link:                  identity
>
> -----------------------------------------------------------
>                 |   No. of       Observations per Group
>  Group Variable |   Groups    Minimum    Average    Maximum
> ----------------+------------------------------------------
>           study |      286          6        7.0          7
>           trial |     2000          1        1.0          1
> -----------------------------------------------------------
>
> Integration method: mvaghermite                 Integration points =         7
>
>                                                 Wald chi2(1)       =    186.92
> Log likelihood = -1765.1731                     Prob > chi2        =    0.0000
>  ( 1)  [var(trial_sd[study>trial])]_cons = 1
> ------------------------------------------------------------------------------
> trial_result |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
> -------------+----------------------------------------------------------------
>            x |   .3163065   .0231356    13.67   0.000     .2709615    .3616515
>        _cons |   2.984781   .0361036    82.67   0.000     2.914019    3.055543
> -------------+----------------------------------------------------------------
> study        |
>    var(_cons)|   .3380683   .0311857                      .2821526    .4050653
> -------------+----------------------------------------------------------------
> study>trial  |
> var(trial_sd)|          1  (constrained)
> -------------+----------------------------------------------------------------
> var(e.tria~t)|    .201222    .008267                      .1856542    .2180953
> ------------------------------------------------------------------------------
>
> I used a big dataset to emphasize the fact that my original parameters have
> been recovered. Notice that we have two random effects at the observation
> level. -meglm- was able to identify the 'between-trial' part, provided that
> the within-trial part was introduced via a constraint.
>
>
> The "grand mean" we are interested in is the constant in the fixed part
> of the model.
>
> This method can be extended to more levels in a straightforward way.
> In this example, I have included a covariate in the fixed-effects
> equation, which is the most common way to include covariates. However,
> it is also possible to include covariates as random slopes.
> The model fitted here corresponds to the random-generating process used
> in the simulation of the data. Jillian can follow this strategy to extend
> the example to fit a three(four) level model.
>
> --Isabel
> [email protected]
> *
> *   For searches and help try:
> *   http://www.stata.com/help.cgi?search
> *   http://www.stata.com/support/faqs/resources/statalist-faq/
> *   http://www.ats.ucla.edu/stat/stata/
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index