[R-meta] questions on some functions in metafor and clubsandwich

Viechtbauer, Wolfgang (SP) wo||g@ng@v|echtb@uer @end|ng |rom m@@@tr|chtun|ver@|ty@n|
Wed Feb 9 09:06:08 CET 2022

Dear Brendan,

Please see below.


>-----Original Message-----
>From: R-sig-meta-analysis [mailto:r-sig-meta-analysis-bounces using r-project.org] On
>Behalf Of Brendan Hutchinson
>Sent: Wednesday, 09 February, 2022 7:54
>To: r-sig-meta-analysis using r-project.org
>Subject: [R-meta] questions on some functions in metafor and clubsandwich
> Hi mailing list,
>Thanks in advance for any help regarding my questions - I have two and they
>concern the metafor and clubsandwich packages, and multilevel modelling.
>1. My first question concerns the difference between the robust() function in
>metafor and the coef_test() function in clubsandwich - I'm a little confused as
>to the precise difference between these. Do they not perform the same operation?
>Is there any situations in which one would be preferred over another?

coef_test() in itself is just a function for testing coefficients. The real difference between robust() and clubSandwich is the kind of adjustments they provide for the var-cov matrix and how they estimate the dfs. Note that metafor can now directly interface with clubSandwich. See:

See: https://wviechtb.github.io/metafor/reference/robust.html

>2. Second, in order to control for correlated effect sizes and correlated
>sampling variance in my own dataset, I will need to produce a variance-covariance
>matrix for my data using the impute_covariance_matrix() function in clubsandwich,
>which will then be fed into a multilevel model (effect sizes nested within
>studies) specified in the metafor function rma.mv().
>My question here concerns the "smooth_vi" input of the impute_covariance_matrix()
>function. I am a little unclear as to its use. The help page specifies "If
>smooth_vi = TRUE, then all of the variances within cluster j will be set equal to
>the average variance of cluster j".
>I interpreted this as though it is simply removing variance within clusters (i.e.
>studies) via averaging, which I suspect would be inappropriate for a multi-level
>meta-analysis in which we would want to capture that variance - indeed, is this
>not the reason we specify a multilevel structure in the first place? What is
>confusing to me is the only example code I have seen online appears to set
>smooth_VI to true when specifying a multi-level model (in which effects are
>nested within studies), so I am a little lost.

I think you are misunderstanding this option. Say you have two effect sizes with sampling variances equal to .01 and .03 within a cluster. Then with smooth_vi=TRUE, the sampling variances would be set to .02 and .02 for the two estimates.

>Once again, any help on the above is greatly appreciated!

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