[R-meta] A potential addition to metafor random-effect structures

Viechtbauer, Wolfgang (NP) wo||g@ng@v|echtb@uer @end|ng |rom m@@@tr|chtun|ver@|ty@n|
Sun Feb 5 22:56:15 CET 2023


FA structures are available in proc mixed:

https://documentation.sas.com/doc/en/pgmsascdc/v_035/statug/statug_mixed_syntax14.htm#statug.mixed.repeatedstmt_type

This really does sound like a nice topic for a dissertation to me.

Best,
Wolfgang

>-----Original Message-----
>From: R-sig-meta-analysis [mailto:r-sig-meta-analysis-bounces using r-project.org] On
>Behalf Of James Pustejovsky via R-sig-meta-analysis
>Sent: Sunday, 05 February, 2023 22:19
>To: R Special Interest Group for Meta-Analysis
>Cc: James Pustejovsky
>Subject: Re: [R-meta] A potential addition to metafor random-effect structures
>
>Interesting question, Reza. I've also wondered about using factor-analytic
>vcov structures like this. I think they could be potentially quite useful.
>
>As Reza noted, one application could be for multivariate meta-analysis
>(multivariate in the strict sense
><https://www.jepusto.com/what-does-multivariate-mean/>), where each study
>could in principle measure effect sizes on a set of p outcomes, but in
>practice not every study reports all outcomes. With complete reporting for
>a large number of studies, using unstructured random effects variances
>works, but with missingness and/or a limited number of studies, struct =
>"UN" can be hard to fit. In my experience, the solutions end up returning
>correlations at the boundaries of the parameter space (e.g., r = 0.999 or r
>= -0.999 for a bivariate random effects model, which is equivalent to a
>one-factor model). For a p-dimensional structure, a d-dimensional factor
>model has sum(p + 1 - 1:d) parameters. So these structures might be useful
>just as an atheoretical model-building tool, which bridges between the
>low-dimensional structures like CS (2 parameters) or HCS (p + 1 parameters)
>and the totally unconstrained UN structure (p x (p + 1) / 2 parameters).
>
>I could also see applications where such models have a meaningful
>theoretical interpretation. For example, perhaps there are p outcomes,
>which vary in their degree of sensitivity to intervention. Studies might
>vary along a single latent factor of intervention potency, so strong
>interventions have relatively large effect sizes for all outcomes, weak
>interventions have relatively small effects for all outcomes. The random
>effect for outcome j in study i might then be described by u_ij = L_j X
>f_i, where f_i is the latent factor of intervention potency and L_j is the
>sensitivity to intervention of outcome j. I could also imagine extending
>this further to two or more factors---maybe intervention potency and
>population risk level, with u_ij = L_1j X f_1j + L_2j x f_2j?
>
>James
>
>
>On Sun, Feb 5, 2023 at 2:31 PM Reza Norouzian via R-sig-meta-analysis <
>r-sig-meta-analysis using r-project.org> wrote:
>
>> Hi Wolfgang,
>>
>> Thank you for your interest. Yes, potentially we can lower G's rank but it
>> may no longer be invertible.
>>
>> I haven't looked at the guts of glmmTMB but obviously they use TMB in the
>> back end for higher speed for larger models.
>>
>> The other thing about rr() in glmmTMB is that my quick search didn't return
>> any simulation studies testing how approximate this approximation can be,
>> especially given that in practice *d* is pretty much determined by
>> consulting the information-criteria-type model fit indices.
>>
>> But overall, there is some potential for this modification to help users
>> test multivariate-multilevel models currently difficult or nearly
>> impossible to fit.
>>
>> I've not been lucky enough to come across a large number of such datasets,
>> but in the few cases where this was the case, I had to drop a few of the
>> assumptions I had in mind which eventually led me to finding about the
>> rank-reduced structure recently added to the glmmTMB package.
>>
>> I may also be looking to see if I can have such models actually fit using
>> glmmTMB, if it allows flexibility in its `dispformula=` and `control=`
>> arguments.
>>
>> Kind regards,
>> Reza
>>
>> On Sun, Feb 5, 2023, 7:29 AM Viechtbauer, Wolfgang (NP) via
>> R-sig-meta-analysis <r-sig-meta-analysis using r-project.org> wrote:
>>
>> > I have been doing a bit more thinking about this (can't help myself).
>> >
>> > One might consider using one of the various decompositions (e.g., SVD) to
>> > accomplish this. In fact:
>> >
>> > https://en.wikipedia.org/wiki/Low-rank_approximation
>> >
>> > Something even simpler might be to use the Cholesky decomposition, that
>> > is, if G is a p*p symmetric positive-definite var-cov matrix, then
>> > t(chol(G)) %*% chol(G) == G. So, we could use t(chol(G[1:r,])) %*%
>> > chol(G[1:r,]) as a lower rank approximation to G, with r < p. In fact,
>> for
>> > struct="UN", rma.mv() uses the Cholesky decomposition anyway for
>> ensuring
>> > that G is positive-definite. So it might be possible to implement this
>> > without too much difficulty. Problems might creep in though since
>> > t(chol(G[1:r,])) %*% chol(G[1:r,]) is no longer invertible (since it is
>> by
>> > construction no longer of full rank), so one might need to use a
>> > generalized inverse, but whether this is actually an issue or not depends
>> > on whether one needs that inverse.
>> >
>> > Best,
>> > Wolfgang



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