[R-meta] Do the results of rma.mv() depend on how dataframe rows are ordered/arranged?

Michael Dewey ||@t@ @end|ng |rom dewey@myzen@co@uk
Thu Aug 22 13:07:47 CEST 2019


Dear Gabriele

In the code you supply it appears you re-ordered the data but not the V 
matrix. Is that the issue? If not can you post a reproducible example 
with a minimal data-set and, ideally, using just plain R to manipulate 
the data-set so we can see more clearly what the code does.

Michael

On 22/08/2019 10:29, Gabriele Midolo wrote:
> Dear all,
> 
> I noticed that the results of my rma.mv() model strongly changes when the
> dataframe rows are arranged in a different order. This is new to me and I
> can’t really understand why. I thought it was an issue related to how the V
> matrix get computed (?), but they are actually identical independently from
> rows order in the dataframe… how is a dataframe supposed to be arranged
> before you can trust rma.mv() results then? Thanks.
> 
> 
> EXAMPLE:
> 
> calc.v <- function(x) {
> 
>    v <- matrix((x$sdC_imputed[1]^2 / (x$nC[1] * x$C[1]^2)) , nrow=nrow(x),
> ncol=nrow(x))
> 
>    diag(v) <- x$vi_Bracken
> 
>    v
> 
> }
> 
> random = ~ 1 | study/ID
> 
> 
> If I run the following:
> 
> 
> 
> a<-df%>%filter(TRAIT=="LA")
> 
> dat<-a%>%mutate(sdC_imputed=sdC)%>%ungroup()
> 
> dat<-metagear::impute_SD(dat, "sdC_imputed", "C", method = "Bracken1992")
> 
> V <- metafor::bldiag(lapply(split(dat, dat$ctrl_id), calc.v))
> 
> m<-rma.mv(yi~dTf,V,data=dat,random = random)
> 
> m
> 
> 
> 
> Multivariate Meta-Analysis Model (k = 34; method: REML)
> 
> 
> 
> Variance Components:
> 
> 
> 
>              estim    sqrt  nlvls  fixed    factor
> 
> sigma^2.1  0.0000  0.0000      7     no     study
> 
> sigma^2.2  0.0607  0.2464     34     no  study/ID
> 
> 
> 
> Test for Residual Heterogeneity:
> 
> QE(df = 32) = 1024.8720, p-val < .0001
> 
> 
> 
> Test of Moderators (coefficient 2):
> 
> QM(df = 1) = 1.6018, p-val = 0.2056
> 
> 
> 
> Model Results:
> 
> 
> 
>           estimate      se     zval    pval    ci.lb   ci.ub
> 
> intrcpt   -0.0786  0.0538  -1.4617  0.1438  -0.1841  0.0268
> 
> dTf       -0.0233  0.0184  -1.2656  0.2056  -0.0593  0.0128
> 
> 
> 
> If I run the same code but arrange the dataframe by e.g. the ID of the
> observation via dplyr::arrange(),
> 
> a<-df%>%filter(TRAIT=="LA")%>%arrange(ID)
> 
> 
> Then I get the following output… i.e. a completely different result:
> 
> Multivariate Meta-Analysis Model (k = 34; method: REML)
> 
> 
> 
> Variance Components:
> 
> 
> 
>              estim    sqrt  nlvls  fixed    factor
> 
> sigma^2.1  0.0000  0.0000      7     no     study
> 
> sigma^2.2  0.0336  0.1834     34     no  study/ID
> 
> 
> 
> Test for Residual Heterogeneity:
> 
> QE(df = 32) = 334.3701, p-val < .0001
> 
> 
> 
> Test of Moderators (coefficient 2):
> 
> QM(df = 1) = 13.9681, p-val = 0.0002
> 
> 
> 
> Model Results:
> 
> 
> 
>           estimate      se     zval    pval    ci.lb    ci.ub
> 
> intrcpt   -0.0740  0.0416  -1.7808  0.0749  -0.1554   0.0074    .
> 
> dTf       -0.0668  0.0179  -3.7374  0.0002  -0.1019  -0.0318  ***
> 
> 	[[alternative HTML version deleted]]
> 
> _______________________________________________
> R-sig-meta-analysis mailing list
> R-sig-meta-analysis using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-meta-analysis
> 
> ---
> This email has been checked for viruses by AVG.
> https://www.avg.com
> 
> 

-- 
Michael
http://www.dewey.myzen.co.uk/home.html



More information about the R-sig-meta-analysis mailing list