________________________________________
From: R-sig-meta-analysis <r-sig-meta-analysis-bounces at r-project.org> on behalf
of Viechtbauer, Wolfgang (NP) via R-sig-meta-analysis <r-sig-meta-analysis at r-
project.org>
Sent: Thursday, 15 June 2023 18:38
To: R Special Interest Group for Meta-Analysis <r-sig-meta-analysis at r-
project.org>
Cc: Viechtbauer, Wolfgang (NP) <wolfgang.viechtbauer at maastrichtuniversity.nl>;
Gabriel Cotlier <gabiklm01 at gmail.com>
Subject: Re: [R-meta] Question about function reporter()
Dear Gabriel,
You can't, since reporter() doesn't currently work for 'rma.mv' objects.
Models that can be fitted with rma() (same as rma.uni()) are relatively simple
and the number of possibilities that need to be covered for translating the
results from such a model into text are managable. Although even here, there are
currently restrictions. For example, reporter() currently only works for
'intercept-only models' (i.e., models without moderators), it doesn't work when
robust() was used on the model, and it doesn't work for location-scale models.
Allowing reporter() to work with meta-regression models is on my radar, but not
sure when I will get to this.
Models that can be fitted with rma.mv() are an entirely different beast. This
function allows users to fit multilevel models (with essentially no limits on the
number of levels), multivariate models (with multiple correlated random effects),
network meta-analyses, phylogenetic meta-analyses, spatio-temporal models, models
with random slopes, models with crossed random effects, and combinations thereof
(e.g., multivariate network meta-analysis). Such models will also typically
involve one or multiple moderators (e.g., to distinguish different outcomes,
treatments, time points, etc.). Depending on the type of model, different aspects
of the results are also more or less relevant (e.g., in a phylogenetic MA, there
would be a lot of focus on the random effects for species, while in a network MA,
focus would be more on contrasting the different treatments with each other).
There is essentially no way in hell that one could write reporter()-like
functionality for 'rma.mv' type models that covers all these
aspects/possibilities in a sensible way.
Of course, one could consider writing a version that only covers a few special
cases; for example, models of the form rma.mv(yi, V, random = ~ 1 |
level1/level2/level3/...) or rma.mv(yi, V, random = ~ var1 | var2) although the
latter type of model would often be used when var1 corresponds to different
outcomes in which case the model would probably involve moderators and be of the
form rma.mv(yi, V, mods = ~ outcome, random = ~ outcome | study), but in the end,
the reporter() function cannot read the users mind as to what the goal and focus
of their analysis was.
Alternatively, one could generate very generic text that does cover many
possibilities, but this would add essentially nothing to just reading the output
directly.
Maybe if we wait another 20-30 years, ChatGPT (or Skynet or whatever it will be
called then) will be able to do something like this automatically. However, we
might be too busy fighting off the Terminators at that point to worry about
rma.mv() models ...
Best,
Wolfgang
-----Original Message-----
From: R-sig-meta-analysis [mailto:r-sig-meta-analysis-bounces at r-project.org] On
Behalf Of Gabriel Cotlier via R-sig-meta-analysis
Sent: Thursday, 15 June, 2023 6:37
To: R Special Interest Group for Meta-Analysis
Cc: Gabriel Cotlier
Subject: [R-meta] Question about function reporter()
Hello all,
I am using an object of class "rma.mv" "rma" as :
class(data)
[1] "rma.mv" "rma"
and would like to use the function reporter().
How could this possibly be done either directly in metafor in R or maybe in
JAMOVI or in other software where the metafor package is included?
Thanks a lot.
Kind regards,
Gabriel