Greetings,
I have a meta-analysis problem in which I have fixed effects
regression coefficients (and estimated standard errors) from identical
models fit to different data sets. I would like to use these results
to create pooled estimated regression coefficients and estimated
standard errors for these pooled coefficients. In particular, I would
like to estimate the model
\beta_{i} = \mu + \eta_{i} + \epsilon_{i}
\eta_{i} ~ iid N(0,\tau^2) and independent of the \epsilon_{i}, the
latter themselves being independent with variances assumed known and
equal to the squared standard errors reported in the regression
output.
I would like to use lme() to estimate \tau^2 by REML, and also get a
sensibly weighted estimate for \mu from the fixed effects output. I
am not sure how to do this. I have tried
lme(fixed=beta~1,random=~1|group,weights=~beta.v)
where "beta" are my coefficients, "group" is a trivial factor
indicating that each observation is its own group, and "beta.v" are
the squared standard errors. Whatever I get out of this doesn't make
sense to me, and I suspect that I have specified the model
incorrectly.
Incidentally, if I just run the simple unidentifiable model
lme(fixed=beta~1,random=~1|group)
lme() somehow manages to produce estimates of the two variance
components, although the estimated confidence intervals are huge and
contain zero. If I square and sum the estimated variance components,
I do get the sample variance of my regression coefficients, but why
that particular parceling of variance was chosen as opposed to any
other with the same property eludes me.
Here are my specs:
platform i686-pc-linux-gnu
arch i686
os linux-gnu
system i686, linux-gnu
status
major 1
minor 5.1
year 2002
month 06
day 17
language R
Thanks in advance for your help -- I've learned a ton of statistics
and computing on this list.
J.R. Lockwood
412-683-2300 x4941
lockwood at rand.org
http://www.rand.org/methodology/stat/members/lockwood/
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
lme() with known level-one variances
3 messages · J.R. Lockwood, vito muggeo
See the rmeta package on CRAN (the metaDSL() function would do what you are looking for). BTW, in your code note: i)In the model estimation, the estimated coefficients beta have to be weighed by the inverse of their variance (the smaller the variance, the more accurate the estimated beta, the more important its influence on the pooled estimate) ii) As far as I know, it makes no sense to set no.group=no.observations; otherwise you could not estimate the intra-group variance. best, vito ----- Original Message ----- From: "J.R. Lockwood" <lockwood at rand.org> To: <r-help at stat.math.ethz.ch> Cc: "J.R. Lockwood" <lockwood at rand.org> Sent: Thursday, August 29, 2002 8:00 PM Subject: [R] lme() with known level-one variances
Greetings,
I have a meta-analysis problem in which I have fixed effects
regression coefficients (and estimated standard errors) from identical
models fit to different data sets. I would like to use these results
to create pooled estimated regression coefficients and estimated
standard errors for these pooled coefficients. In particular, I would
like to estimate the model
\beta_{i} = \mu + \eta_{i} + \epsilon_{i}
\eta_{i} ~ iid N(0,\tau^2) and independent of the \epsilon_{i}, the
latter themselves being independent with variances assumed known and
equal to the squared standard errors reported in the regression
output.
I would like to use lme() to estimate \tau^2 by REML, and also get a
sensibly weighted estimate for \mu from the fixed effects output. I
am not sure how to do this. I have tried
lme(fixed=beta~1,random=~1|group,weights=~beta.v)
where "beta" are my coefficients, "group" is a trivial factor
indicating that each observation is its own group, and "beta.v" are
the squared standard errors. Whatever I get out of this doesn't make
sense to me, and I suspect that I have specified the model
incorrectly.
Incidentally, if I just run the simple unidentifiable model
lme(fixed=beta~1,random=~1|group)
lme() somehow manages to produce estimates of the two variance
components, although the estimated confidence intervals are huge and
contain zero. If I square and sum the estimated variance components,
I do get the sample variance of my regression coefficients, but why
that particular parceling of variance was chosen as opposed to any
other with the same property eludes me.
Here are my specs:
platform i686-pc-linux-gnu
arch i686
os linux-gnu
system i686, linux-gnu
status
major 1
minor 5.1
year 2002
month 06
day 17
language R
Thanks in advance for your help -- I've learned a ton of statistics
and computing on this list.
J.R. Lockwood
412-683-2300 x4941
lockwood at rand.org
http://www.rand.org/methodology/stat/members/lockwood/
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
-.-.-
r-help mailing list -- Read
http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._. _._ -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
Dear Vito, Thank you for your response. I still have some concerns:
See the rmeta package on CRAN (the metaDSL() function would do what you are looking for).
It is not clear to me that this function does what I need. I apologize for casting my original question in terms of a meta-analysis; it is a bit of a red herring. My more general question is whether it is possible to tell lme() to treat some variance components as known, and to estimate others conditional on them.
BTW, in your code note: i)In the model estimation, the estimated coefficients beta have to be weighed by the inverse of their variance (the smaller the variance, the more accurate the estimated beta, the more important its influence on the pooled estimate)
Unless I am misinterpreting, the "weights" argument that I passed to lme() is inverted. But after further consideration I do not think that weighting is what I am seeking.
ii) As far as I know, it makes no sense to set no.group=no.observations; otherwise you could not estimate the intra-group variance.
I am not sure to what function the arguments you reference belong (they do not appear to be part of meta.DSL()). But the larger point is that I do not want to estimate the intra-group variances -- I want to treat them as known. best, J.R. Lockwood 412-683-2300 x4941 lockwood at rand.org http://www.rand.org/methodology/stat/members/lockwood/ -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._