Quantcast

metafor

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

metafor

Jin Choi
Dear users of metafor,

I am working on a meta-analysis using the metafor package. I have a
excel csv database that I am working with. I am interested in pooling
the effect measures for a particular subgroup (European women) in this
csv database. I am conducting both sub-group and meta-regression.

In subgroup-analyses, I have stratified the database to create a
separate csv file just for European women from the original database
and conducted the following:

women_west<-read.csv("women_west.csv")
print(women_west)
dat<-escalc(measure="ZCOR",ri=Pearson,ni=N,data=women_west,append=TRUE)
res<-rma(yi,vi,data=dat)
is.factor(dat$year)
forest(res,transf=transf.ztor)

In meta-regression, I used the original database, but used categorical
moderators for sex (=women), and ethnicity (=european) to find the
effect specifically in European women.
adult<-read.csv("adult.csv")
print(adult)
dat<-escalc(measure="ZCOR",ri=Pearson,ni=N,data=adult,append=TRUE)
res<-rma(yi,vi,data=dat)
res<-rma(yi,vi,mods=cbind(sex,race),data=dat)
predict(res,transf=transf.ztor,newmods=cbind(seq(from=0,to=1,by=1),1),addx=TRUE)

I am getting different results between the forest function from
subgroup analyses, and the predict function from the meta-regression.
I thought they should have been the same - can I get help to explain
why there are differences? In both cases, I am transforming raw
Pearson coefficients to z-transformed coefficients, then
back-transforming to raw r after pooling.

Thank you very much.

Jin Choi
MSc (Epidemiology) Student
McGill University, Montreal CANADA

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: metafor

Michael Dewey
At 18:03 05/05/2012, Jin Choi wrote:

>Dear users of metafor,
>
>I am working on a meta-analysis using the metafor package. I have a
>excel csv database that I am working with. I am interested in pooling
>the effect measures for a particular subgroup (European women) in this
>csv database. I am conducting both sub-group and meta-regression.
>
>In subgroup-analyses, I have stratified the database to create a
>separate csv file just for European women from the original database
>and conducted the following:

Dear Jin
There is a third option, using the original dataset and the subset
parameter to metafor. What happens if you do that? It would rule out
any possibility that your women_west dataset is not in fact the same
as the data on European women in the adult dataset.


>women_west<-read.csv("women_west.csv")
>print(women_west)
>dat<-escalc(measure="ZCOR",ri=Pearson,ni=N,data=women_west,append=TRUE)
>res<-rma(yi,vi,data=dat)
>is.factor(dat$year)
>forest(res,transf=transf.ztor)
>
>In meta-regression, I used the original database, but used categorical
>moderators for sex (=women), and ethnicity (=european) to find the
>effect specifically in European women.
>adult<-read.csv("adult.csv")
>print(adult)
>dat<-escalc(measure="ZCOR",ri=Pearson,ni=N,data=adult,append=TRUE)
>res<-rma(yi,vi,data=dat)
>res<-rma(yi,vi,mods=cbind(sex,race),data=dat)
>predict(res,transf=transf.ztor,newmods=cbind(seq(from=0,to=1,by=1),1),addx=TRUE)
>
>I am getting different results between the forest function from
>subgroup analyses, and the predict function from the meta-regression.
>I thought they should have been the same - can I get help to explain
>why there are differences? In both cases, I am transforming raw
>Pearson coefficients to z-transformed coefficients, then
>back-transforming to raw r after pooling.
>
>Thank you very much.
>
>Jin Choi
>MSc (Epidemiology) Student
>McGill University, Montreal CANADA

Michael Dewey
[hidden email]
http://www.aghmed.fsnet.co.uk/home.html

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: metafor

Viechtbauer Wolfgang (STAT)-2
In reply to this post by Jin Choi
Michael just provided a good suggestion, using the subset argument to make sure that you are really using the same data in both analyses.

However, I would not expect the results to be exactly the same anyway. Remember that these are random/mixed-effects models you are using. So, when you use the meta-regression approach, you are estimating tau^2 differently than when using just the subset of data on European women. Essentially, the meta-regression approach assumes that the amount of heterogeneity is the same within each of the 4 possible combinations of sex and race (I am assuming that race is coded dichotomously). When you just use the subset of data on European women, you are estimating tau^2 just for that particular subgroup. Since the estimate of tau^2 is probably not the same with these two approaches, you will also get (slightly?) different results.

Here is an example from one of the datasets that comes with the metafor package to illustrate this:

########################################################################

library(metafor)

### load empint data
data(dat.empint)

### calculate r-to-z transformed correlations and corresponding sampling variances
dat <- escalc(ri=ri, ni=ni, measure="ZCOR", data=dat.empint, append=TRUE)

### remove studies where struct is NA
dat <- dat[!is.na(dat$struct ),]

### mixed-effects model with struct as moderator
res <- rma(yi, vi, mods=~relevel(factor(struct), ref="u"), data=dat)
res$tau2
predict(res, transf=transf.ztor, newmods=c(0,1), digits=2)

### two separate random-effects models within each level of struct
res.u <- rma(yi, vi, data=dat, subset=struct=="u")
res.s <- rma(yi, vi, data=dat, subset=struct=="s")
res.u$tau2
predict(res.u, transf=transf.ztor, digits=2)
res.s$tau2
predict(res.s, transf=transf.ztor, digits=2)

########################################################################

Note that the results are similar, but not quite the same. This is a result of the estimate of tau^2 being different in the two subgroups from the tau^2 estimated in the meta-regression model. To illustrate this further, try this out (which simply sets the estimate of tau^2 in the two subgroup models equal to the estimate of tau^2 from the mixed-effects model):

########################################################################

res.u <- rma(yi, vi, data=dat, subset=struct=="u", tau2=res$tau2)
res.s <- rma(yi, vi, data=dat, subset=struct=="s", tau2=res$tau2)
res.u$tau2
predict(res.u, transf=transf.ztor, digits=2)
res.s$tau2
predict(res.s, transf=transf.ztor, digits=2)

########################################################################

Now you will find that the results are exactly the same with the meta-regression and the subgrouping approach. This may lead one to think that subgrouping is the preferred approach (since it does not assume that tau^2 is the same in the subgroups). However, the precision of the estimate of tau^2 tends to be determined largely by k (the number of studies/observations). Since the overall k is often not very large to begin with (the example used above is actually a rather large meta-analysis), subgrouping makes the k within each subgroup even smaller, leading to even less precise estimates of tau^2. Hopefully, the actual *conclusions* are not affected by the approach used.

Best,

Wolfgang

--  
Wolfgang Viechtbauer, Ph.D., Statistician  
Department of Psychiatry and Psychology  
School for Mental Health and Neuroscience  
Faculty of Health, Medicine, and Life Sciences  
Maastricht University, P.O. Box 616 (VIJV1)  
6200 MD Maastricht, The Netherlands  
+31 (43) 388-4170 | http://www.wvbauer.com   


> -----Original Message-----
> From: [hidden email] [mailto:[hidden email]]
> On Behalf Of Jin Choi
> Sent: Saturday, May 05, 2012 19:04
> To: [hidden email]
> Subject: [R] metafor
>
> Dear users of metafor,
>
> I am working on a meta-analysis using the metafor package. I have a excel
> csv database that I am working with. I am interested in pooling the effect
> measures for a particular subgroup (European women) in this csv database.
> I am conducting both sub-group and meta-regression.
>
> In subgroup-analyses, I have stratified the database to create a separate
> csv file just for European women from the original database and conducted
> the following:
>
> women_west<-read.csv("women_west.csv")
> print(women_west)
> dat<-escalc(measure="ZCOR",ri=Pearson,ni=N,data=women_west,append=TRUE)
> res<-rma(yi,vi,data=dat)
> is.factor(dat$year)
> forest(res,transf=transf.ztor)
>
> In meta-regression, I used the original database, but used categorical
> moderators for sex (=women), and ethnicity (=european) to find the effect
> specifically in European women.
> adult<-read.csv("adult.csv")
> print(adult)
> dat<-escalc(measure="ZCOR",ri=Pearson,ni=N,data=adult,append=TRUE)
> res<-rma(yi,vi,data=dat)
> res<-rma(yi,vi,mods=cbind(sex,race),data=dat)
> predict(res,transf=transf.ztor,newmods=cbind(seq(from=0,to=1,by=1),1),addx
> =TRUE)
>
> I am getting different results between the forest function from subgroup
> analyses, and the predict function from the meta-regression.
> I thought they should have been the same - can I get help to explain why
> there are differences? In both cases, I am transforming raw Pearson
> coefficients to z-transformed coefficients, then back-transforming to raw
> r after pooling.
>
> Thank you very much.
>
> Jin Choi
> MSc (Epidemiology) Student
> McGill University, Montreal CANADA
>
> ______________________________________________
> [hidden email] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-
> guide.html
> and provide commented, minimal, self-contained, reproducible code.

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

Re: metafor

Jin Choi
I tried the subset argument as Michael suggested, which led to the
same results. The results between meta-regression and subgroup
analyses were only slightly different as Wolfgang had suggested. I
also believe that these minor differences must be arising from the use
of random effects.

Thank you very much to both of you!

Jin

On Mon, May 7, 2012 at 5:14 AM, Viechtbauer Wolfgang (STAT)
<[hidden email]> wrote:

> Michael just provided a good suggestion, using the subset argument to make sure that you are really using the same data in both analyses.
>
> However, I would not expect the results to be exactly the same anyway. Remember that these are random/mixed-effects models you are using. So, when you use the meta-regression approach, you are estimating tau^2 differently than when using just the subset of data on European women. Essentially, the meta-regression approach assumes that the amount of heterogeneity is the same within each of the 4 possible combinations of sex and race (I am assuming that race is coded dichotomously). When you just use the subset of data on European women, you are estimating tau^2 just for that particular subgroup. Since the estimate of tau^2 is probably not the same with these two approaches, you will also get (slightly?) different results.
>
> Here is an example from one of the datasets that comes with the metafor package to illustrate this:
>
> ########################################################################
>
> library(metafor)
>
> ### load empint data
> data(dat.empint)
>
> ### calculate r-to-z transformed correlations and corresponding sampling variances
> dat <- escalc(ri=ri, ni=ni, measure="ZCOR", data=dat.empint, append=TRUE)
>
> ### remove studies where struct is NA
> dat <- dat[!is.na(dat$struct ),]
>
> ### mixed-effects model with struct as moderator
> res <- rma(yi, vi, mods=~relevel(factor(struct), ref="u"), data=dat)
> res$tau2
> predict(res, transf=transf.ztor, newmods=c(0,1), digits=2)
>
> ### two separate random-effects models within each level of struct
> res.u <- rma(yi, vi, data=dat, subset=struct=="u")
> res.s <- rma(yi, vi, data=dat, subset=struct=="s")
> res.u$tau2
> predict(res.u, transf=transf.ztor, digits=2)
> res.s$tau2
> predict(res.s, transf=transf.ztor, digits=2)
>
> ########################################################################
>
> Note that the results are similar, but not quite the same. This is a result of the estimate of tau^2 being different in the two subgroups from the tau^2 estimated in the meta-regression model. To illustrate this further, try this out (which simply sets the estimate of tau^2 in the two subgroup models equal to the estimate of tau^2 from the mixed-effects model):
>
> ########################################################################
>
> res.u <- rma(yi, vi, data=dat, subset=struct=="u", tau2=res$tau2)
> res.s <- rma(yi, vi, data=dat, subset=struct=="s", tau2=res$tau2)
> res.u$tau2
> predict(res.u, transf=transf.ztor, digits=2)
> res.s$tau2
> predict(res.s, transf=transf.ztor, digits=2)
>
> ########################################################################
>
> Now you will find that the results are exactly the same with the meta-regression and the subgrouping approach. This may lead one to think that subgrouping is the preferred approach (since it does not assume that tau^2 is the same in the subgroups). However, the precision of the estimate of tau^2 tends to be determined largely by k (the number of studies/observations). Since the overall k is often not very large to begin with (the example used above is actually a rather large meta-analysis), subgrouping makes the k within each subgroup even smaller, leading to even less precise estimates of tau^2. Hopefully, the actual *conclusions* are not affected by the approach used.
>
> Best,
>
> Wolfgang
>
> --
> Wolfgang Viechtbauer, Ph.D., Statistician
> Department of Psychiatry and Psychology
> School for Mental Health and Neuroscience
> Faculty of Health, Medicine, and Life Sciences
> Maastricht University, P.O. Box 616 (VIJV1)
> 6200 MD Maastricht, The Netherlands
> +31 (43) 388-4170 | http://www.wvbauer.com
>
>
>> -----Original Message-----
>> From: [hidden email] [mailto:[hidden email]]
>> On Behalf Of Jin Choi
>> Sent: Saturday, May 05, 2012 19:04
>> To: [hidden email]
>> Subject: [R] metafor
>>
>> Dear users of metafor,
>>
>> I am working on a meta-analysis using the metafor package. I have a excel
>> csv database that I am working with. I am interested in pooling the effect
>> measures for a particular subgroup (European women) in this csv database.
>> I am conducting both sub-group and meta-regression.
>>
>> In subgroup-analyses, I have stratified the database to create a separate
>> csv file just for European women from the original database and conducted
>> the following:
>>
>> women_west<-read.csv("women_west.csv")
>> print(women_west)
>> dat<-escalc(measure="ZCOR",ri=Pearson,ni=N,data=women_west,append=TRUE)
>> res<-rma(yi,vi,data=dat)
>> is.factor(dat$year)
>> forest(res,transf=transf.ztor)
>>
>> In meta-regression, I used the original database, but used categorical
>> moderators for sex (=women), and ethnicity (=european) to find the effect
>> specifically in European women.
>> adult<-read.csv("adult.csv")
>> print(adult)
>> dat<-escalc(measure="ZCOR",ri=Pearson,ni=N,data=adult,append=TRUE)
>> res<-rma(yi,vi,data=dat)
>> res<-rma(yi,vi,mods=cbind(sex,race),data=dat)
>> predict(res,transf=transf.ztor,newmods=cbind(seq(from=0,to=1,by=1),1),addx
>> =TRUE)
>>
>> I am getting different results between the forest function from subgroup
>> analyses, and the predict function from the meta-regression.
>> I thought they should have been the same - can I get help to explain why
>> there are differences? In both cases, I am transforming raw Pearson
>> coefficients to z-transformed coefficients, then back-transforming to raw
>> r after pooling.
>>
>> Thank you very much.
>>
>> Jin Choi
>> MSc (Epidemiology) Student
>> McGill University, Montreal CANADA
>>
>> ______________________________________________
>> [hidden email] mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-
>> guide.html
>> and provide commented, minimal, self-contained, reproducible code.

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Loading...