The metafor Package

A Meta-Analysis Package for R

User Tools

Site Tools


news:news

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
news:news [2020/11/14 15:37] Wolfgang Viechtbauernews:news [2021/04/25 21:57] Wolfgang Viechtbauer
Line 3: Line 3:
 ~~NOTOC~~ ~~NOTOC~~
  
-==== November 14th2020An Aggregate Function ====+==== April 21st2021Better Degrees of Freedom Calculation ====
  
-In many meta-analyses, multiple effect size estimates or outcomes can be extracted from the same study. Ideally, such structures should be analyzed using an appropriate multilevel/multivariate model as can be fitted with the ''rma.mv()'' function. However, there may occasionally be reasons for aggregating multiple effect sizes or outcomes belonging to the same study (or to the same level of some other clustering variableinto single combined effect size or outcome. I've added an ''aggregate()'' function (or to be precise, an ''aggregate.escalc()'' method functionto the package for this purposeYou can read the documentation for this function (and see some examples illustrating its use) [[https://wviechtb.github.io/metafor/reference/aggregate.escalc.html|here]].+In random/mixed-effects models as can be fitted with the [[https://wviechtb.github.io/metafor/reference/rma.html|rma()]] function, tests and confidence intervals for the model coefficients are by default constructed based on a standard normal distribution.((In a random-effects model, there is of course just one coefficient, namely $\hat{\mu}$, the estimated average true outcome.)) In general, it is better to use the Knapp-Hartung method for this purpose, which does two things: (1) the standard errors of the model coefficients are estimated in a slightly different way and (2) a t-distribution is used with $k-p$ degrees of freedom (where $k$ is the total number of estimates and $p$ the number of coefficients in the model). When conducting a simultaneous (or 'omnibus') test of multiple coefficientsthen an F-distribution with $m$ and $k-p$ degrees of freedom is used (for the 'numeratorand 'denominatordegrees of freedom, respectively), with $m$ denoting the number of coefficients testedTo use this method, set argument ''test="knha"''.
  
-==== October 14th2020: Selection Models ====+The Knapp-Hartung method cannot be directly generalized to more complex models as can be fitted with the [[https://wviechtb.github.io/metafor/reference/rma.mv.html|rma.mv()]] function, although we can still use t- and F-distributions for conducting tests of one or multiple model coefficients in the context of such models. This is possible by setting ''test="t"''. Howeverthis then raises the question how the (denominator) degrees of freedom for such tests should be calculated. By default, the degrees of freedom are calculated as described above. However, this method does not reflect the complexities of models that are typically fitted with the ''rma.mv()'' function. For example, in multilevel models (with multiple estimates nested within studies), a predictor (or 'moderator') may be measured at the study level (i.e., it is constant for all estimates belonging to the same study) or at the level of the individual estimates (i.e., it might vary within studies). By setting argument ''dfs="contain"'', a method is used for calculating the degrees of freedom that tends to provide tests with better control of the Type I error rate and confidence intervals with closer to nominal coverage rates. See the documentation of the function for further details.
  
-I've added the possibility to fit so-called 'selection models' with the metafor package. In case you are not familiar with such modelsSelection models attempt to model and therefore account for the process by which the studies included in a meta-analysis may have been influenced by some form of publication bias. In other words, some kind of selection process may have happened that made it more likely that certain types of studies will be published and hence are more easily found and therefore can be included in a meta-analysis (yes, one should always search the 'gray literature' for unpublished studies to be included in a meta-analysis, but uncovering those studies lingering in some file drawers out there can be exceedingly difficult).+==== April 3rd, 2021Scatter Plots / Bubble Plots for Meta-Regression Models ====
  
-The classical example of such a selection process is the fact that statistically significant findings are more likely to be submitted/accepted for publication. As a result, the findings from a meta-analysis can be biased, sometimes quite severely (because especially the smaller studies can only achieve statistical significance if they just happen to have obtained a large effect). Selection models attempt to correct for this (or can be used for sensitivity analyses by varying the degree of severity of such a selection process). +finally got around to adding a function to the package for drawing scatter plots (also known as bubble plotsfor meta-regression models. See the documentation of the [[https://wviechtb.github.io/metafor/reference/regplot.html|regplot()]] function for further detailsAn example illustrating such a plot is provided [[plots:meta_analytic_scatterplot|here]].
- +
-To make this possible directly within the metafor package, I've added the [[https://wviechtb.github.io/metafor/reference/selmodel.html|selmodel()]] function, which provides a wide variety of selection model types (there are lots of proposals out there for how to model the selection process), including the 'beta selection model' by Citkowicz and Vevea (2017), bunch of selection models suggested by Preston et al. (2004), an extension thereof that I call the 'negative exponential power selection model' (sounds fancy, huh?), and so-called 'step function models' as described by Iyengar and Greenhouse (1988), Hedges (1992), Vevea and Hedges (1995), and Vevea and Woods (2005). I wrote the code so that it would be relatively easy to add further selection models to the function in case further models end up being suggested in the statistical literature. +
- +
-Note that the [[https://cran.r-project.org/package=weightr|weightr]] package can also fit step function models and some other selection models are implemented in the [[https://cran.r-project.org/package=metasens|metasens]] and [[https://cran.r-project.org/package=selectMeta|selectMeta]] packages. +
- +
-==== August 9th, 2020: R Code for Even More Meta-Analysis Books ==== +
- +
-The R code for two more books has been added to the [[https://github.com/wviechtb/meta_analysis_books|GitHub repo]]: //The Handbook of Research Synthesis and Meta-Analysis// by Cooper et al. (2019) and //Publication Bias in Meta-Analysis// by Rothstein et al. (2005). +
- +
-==== July 17th, 2020: R Code for Meta-Analysis Books ==== +
- +
-I've started a [[https://github.com/wviechtb/meta_analysis_books|repo on GitHub]] to provide R code for various books on meta-analysis. It now contains //Introduction to Meta-Analysis// by Borenstein et al. (2009) and //Practical Meta-Analysis// by Lipsey and Wilson (2001). More to be added. The items in the repo will also be listed under the [[:analyses#books_on_meta-analysis|Analysis Examples]] section. +
- +
-==== June 8th, 2020: Weights in Models Fitted with the rma.mv() Function ==== +
- +
-And another entry to the 'Tips and Notes' section, this time discussing how weighting works in more complex models, such as those that can be fitted with the ''rma.mv()'' function. You can read the tutorial [[tips:weights_in_rma.mv_models|here]]. +
- +
-==== May 27th, 2020: Computing Adjusted Effects Based on Meta-Regression Models ==== +
- +
-I've added an entry to the 'Tips and Notes' section, discussing how to compute 'adjusted effects' based on meta-regression models. You can read the tutorial [[tips:computing_adjusted_effects|here]]. +
- +
-==== May 9th, 2020: Modeling Non-Linear Associations in Meta-Regression ==== +
- +
-I've added an entry to the 'Tips and Notes' section, illustrating how to model non-linear associations in meta-regression using polynomial and restricted cubic spline models. You can read the little tutorial [[tips:non_linear_meta_regression|here]]. +
- +
-==== March 31st, 2020: Interpreting Coefficients in Meta-Regression Models with (Log) Risk Ratios ==== +
- +
-Based on a question I received, I wrote up a little tutorial on how to interpret the coefficients in meta-regression models when using the log risk ratio as the outcome measure. When exponentiating coefficients, this leads to values that represent ratios of risk ratios, which may not be entirely obvious. You can read the tutorial [[tips:meta_regression_with_log_rr|here]]. +
- +
-==== March 20th, 2020: Two New Functions for Network Meta-Analysis ==== +
- +
-As a follow-up to yesterday's note, it is maybe worth mentioning that I also added two functions that are especially useful for those conducting network meta-analyses with the metafor package. With the ''to.wide()'' function, one can rearrange a dataset that is in an arm-based 'long' format to a contrast-based 'wide' format. Two examples illustrating the use of this function can be found under [[https://wviechtb.github.io/metafor/reference/to.wide.html|help(to.wide)]] (the link takes you to the corresponding help file, which is nicely formatted and shows the output of the examples)Once the dataset is in such a wide format, an important next step is the construction of variables that reflect which two groups are being compared with each other in each row (through +1, 0, -1 coding). Such a contrast matrix can be easily created with the ''contrmat()'' function. See [[https://wviechtb.github.io/metafor/reference/contrmat.html|help(contrmat)]] for the help file and two examples illustrating its use. The analysis of these two datasets (using arm- and contrast-based models) are illustrated under [[https://wviechtb.github.io/metafor/reference/dat.hasselblad1998.html|help(dat.hasselblad1998)]] and [[https://wviechtb.github.io/metafor/reference/dat.hasselblad1998.html|help(dat.hasselblad1998)]]. +
- +
-==== March 19th, 2020: News Version (2.4-0) on Its Way to CRAN ==== +
- +
-Just submitted a new version (2.4-0) to CRAN. This update was prompted by the upcoming change in R where the new  default will be ''stringsAsFactors=FALSE'' (at long last!). As a result, some tests were failing on R-devel, so these needed fixing. Along the way, I made various minor internal updates and added some convenience functionality to several functions. The full changelog can be found [[:updates#changes_in_version_24-0_2020-03-19|here]].+
  
news/news.txt · Last modified: 2024/03/29 10:44 by Wolfgang Viechtbauer