[R-meta] Covariance-variance matrix when studies share multiple treatment x control comparison
Ju Lee
juhyung2 @end|ng |rom @t@n|ord@edu
Tue Oct 15 00:48:52 CEST 2019
Dear Wolfgang, James,
Thank you for all your helpful suggestions and feedback.
Following up on previous posts, I am wondering what would be the best way to visualize the funnel plot when I am using modified egger test suggested by Pustejovsky and Rodgers (2018).
Based on our previous conversation, I am wondering if I should plot modified precision sqrt(1 / n1+ 1 / n2) against Hedges' d (x axis), instead of SE or inverse SE against residuals....
Is there a way to do this through funnel() or funnel.rma() function? Below is my current code with egger.full being the model being run with Hedges' d and "sqrt(1 / n1+ 1 / n2)" as modified precision.
Would specifying yaxis as "yaxis="sqrtninv" equivalent to this approach? or maybe I need an alternative approach here?
Thank you very much,
Best
JU
prec.<-function(CN,TN){
pr<-sqrt((1 / CN) + (1/TN))
return(pr)
}
precision.2<-prec.(MHF$n.t, MHF$n.c)
head(precision.2)
egger.full<-rma.mv(hedged~precision.2, CV, data=MHF, random = list(~ 1 | Study, ~1|Id))
egger.full
funnel(egger.full, level=c(90, 95, 99),
shade=c("white", "gray", "gray40"),back="white",
yaxis=" ", xlab="", ylab="",
digits=c(2,2))
________________________________
From: Viechtbauer, Wolfgang (SP) <wolfgang.viechtbauer using maastrichtuniversity.nl>
Sent: Friday, September 27, 2019 8:27 AM
To: Ju Lee <juhyung2 using stanford.edu>; James Pustejovsky <jepusto using gmail.com>
Cc: r-sig-meta-analysis using r-project.org <r-sig-meta-analysis using r-project.org>
Subject: RE: Covariance-variance matrix when studies share multiple treatment x control comparison
You are still using 'residuals' as the outcome. Don't do that. Just use the Hedges' g values as the outcome. Also, you should specify the correct V matrix (I think you called it VCV in an earlier post). So, for example:
rma.mv(hedged ~ precision.2, VCV, data=MHF, random = list(~ 1 | Study, ~1 | Id), subset=(Spatial.scale.2=="Fragmentation scale"))
I haven't looked at your other post in detail, but 'random = ~ factor(x) | Study/Id' doesn't actually work (at least not in the way you think it does). Please update your metafor installation to get an error that will inform you of this. Instead, random = list(~factor(x)|Study, ~factor(x)|Id) is indeed the correct way to specify two '~ inner | outer' terms.
Best,
Wolfgang
-----Original Message-----
From: Ju Lee [mailto:juhyung2 using stanford.edu]
Sent: Friday, 27 September, 2019 16:46
To: James Pustejovsky
Cc: Viechtbauer, Wolfgang (SP); r-sig-meta-analysis using r-project.org
Subject: Re: Covariance-variance matrix when studies share multiple treatment x control comparison
Dear James, Wolfgang,
Thank you very much for this information.
I have one question extending from this is: While I run my main mixed modes always using var-covar. matrix (to account for shared study groups within each study),
it is acceptable that my egger-like regression does not incorporate this structure, but rather just use sqrt(1 / n1 + 1 / n2) as precision (instead of sqrt(diag(v.c.matrix)) like Wolfgang suggested as one possibility) and use p-value for precision term (precision.2 which is p=0.2382) to determine the asymmetry?
prec.<-function(CN,TN){
pr<-sqrt((1 / CN) + (1/TN))
return(pr)
}
precision.2<-prec.(MHF$n.t, MHF$n.c)
> egger.pr2.frag<-rma.mv(residuals~precision.2,var,data=MHF,random =list( ~ 1 | Study, ~1|Id), subset=(Spatial.scale.2=="Fragmentation scale"))
> egger.pr2.frag
Multivariate Meta-Analysis Model (k = 285; method: REML)
Variance Components:
estim sqrt nlvls fixed factor
sigma^2.1 0.4255 0.6523 73 no Study
sigma^2.2 0.3130 0.5595 285 no Id
Test for Residual Heterogeneity:
QE(df = 283) = 1041.1007, p-val < .0001
Test of Moderators (coefficient(s) 2):
QM(df = 1) = 1.3909, p-val = 0.2382
Model Results:
estimate se zval pval ci.lb ci.ub
intrcpt 0.0529 0.1617 0.3274 0.7433 -0.2640 0.3699
precision.2 -0.0668 0.0567 -1.1794 0.2382 -0.1779 0.0442
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Thank you very much, both of you.
Best,
JU
p.s. Wolfgang, I think I figured out what went wrong with how I specified my random effects in my previous e-mail. Specifying it as random=list(~factor(x)|Study, ~factor(x)|Id) instead of random= ~factor(x)|Study/Id generates results that makes sense to me now. Please let me know if this is correct way I should be coding.
[[alternative HTML version deleted]]
More information about the R-sig-meta-analysis
mailing list