metaforest

Exploring Heterogeneity in Meta-Analysis using Random Forests

https://github.com/cjvanlissa/metaforest

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
    1 of 5 committers (20.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.4%) to scientific vocabulary

Keywords from Contributors

psychology
Last synced: 10 months ago · JSON representation

Repository

Exploring Heterogeneity in Meta-Analysis using Random Forests

Basic Info
Statistics
  • Stars: 1
  • Watchers: 2
  • Forks: 1
  • Open Issues: 6
  • Releases: 2
Created almost 9 years ago · Last pushed 11 months ago
Metadata Files
Readme Changelog

README.Rmd

---
output:
  md_document:
    variant: markdown_github
---



```{r, echo = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "README-"
)
```

# MetaForest 


[![CRAN status](https://www.r-pkg.org/badges/version/metaforest)](https://cran.r-project.org/package=metaforest)
[![lifecycle](https://img.shields.io/badge/lifecycle-maturing-blue.svg)](https://lifecycle.r-lib.org/articles/stages.html#maturing)
[![R-CMD-check](https://github.com/cjvanlissa/metaforest/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/cjvanlissa/metaforest/actions/workflows/R-CMD-check.yaml)


# Background

The goal of MetaForest is to explore heterogeneity in meta-analytic data, identify important moderators, and explore the functional form of the relationship between moderators and effect size. To do so, MetaForest conducts a weighted random forest analysis, using random-effects or fixed-effects weights, as in classic meta-analysis, or uniform weights (unweighted random forest). Simulation studies have demonstrated that this technique has substantial power to detect relevant moderators, even in datasets as small as 20 cases (based on cross-validated $R^2$). Using a variable importance plot, important moderators can be identified, and using partial prediction plots, the shape of the marginal relationship between moderators and effect size can be visualized. MetaForest can be readily integrated in classical meta-analytic approaches: If MetaForest is conducted as a primary analysis, classic meta-analysis can be used to quantify heterogeneity (in fact, MetaForest by default reports a random-effects meta-analysis on the raw data, and the residuals of the random forests analysis), or to provide a simplified representation of the linear effects of important predictors. Conversely, a theory-driven classical meta-analysis could be complemented by an exploratory MetaForest analysis, as a final check to ensure that important moderators have not been overlooked. We hope that this approach will be of use to researchers, and that the availability of user-friendly R functions will facilitate its adoption.


# Installation

You can install `metaforest` from CRAN with:

```{r, eval = F}
install.packages("metaforest")
```

# Documentation

Every user-facing function in the package is documented, and the documentation can be accessed by running `?function_name` in the R console, e.g., `?graph`, or by checking the [project website](https://cjvanlissa.github.io/metaforest/reference/index.html)

# Citing metaforest

You can cite the method by referencing this open access book chapter:

Van Lissa, C. J. (2020). Small sample meta-analyses: Exploring heterogeneity using MetaForest. In R. Van De Schoot & M. Miočević (Eds.), *Small Sample Size Solutions (Open Access): A Guide for Applied Researchers and Practitioners.* CRC Press. https://doi.org/10.4324/9780429273872-16

The simulation study supporting the method is available in:

Van Lissa, C. J. (2018). MetaForest: Exploring heterogeneity in meta-analysis using random forests. PsyArxiv. https://doi.org/10.31234/osf.io/myg6s

# Contributing and Contact Information

If you have ideas, please get involved. You can contribute by opening an issue on GitHub, or sending a pull request with proposed features.

* File a GitHub issue [here](https://github.com/cjvanlissa/metaforest)
* Make a pull request [here](https://github.com/cjvanlissa/metaforest/pulls)

By participating in this project, you agree to abide by the [Contributor Code of Conduct v2.0](https://www.contributor-covenant.org/).
Contributions to the package must adhere to the [tidyverse style guide](https://style.tidyverse.org/).
When contributing code, please add tests for that contribution to the `tests/testthat` folder, and ensure that these tests pass in the [GitHub Actions panel](https://github.com/cjvanlissa/worcs/actions/workflows/R-CMD-check).

# Example analysis

This example demonstrates how one might go about conducting a meta-analysis using MetaForest. For more information, check the [package vignette](https://cjvanlissa.github.io/metaforest/articles/Introduction_to_metaforest.html).

```{r message=FALSE}
#Load metaforest package
library(metaforest)

#Simulate a meta-analysis dataset with 20 studies, 1 relevant moderator, and 4 irrelevant moderators
set.seed(42)
data <- SimulateSMD()$training

#Conduct an unweighted MetaForest analysis, to estimate the residual tau2
mf.unif <- MetaForest(formula = yi ~ ., data = data,
                      whichweights = "unif", method = "DL", num.trees = 2000)

#Extract the result of this analysis and print them
results <- summary(mf.unif)
results

#Conduct a weighted MetaForest analysis, using the residual tau2 from the
#unweighted analysis above
mf.random <- MetaForest(formula = yi ~ ., data = data,
                      whichweights = "random", method = "DL", 
                      tau2 = results$rma[2,1],
                      num.trees = 2000)

#Print the result of this analysis
summary(mf.random)
```

Owner

  • Name: C. J. van Lissa
  • Login: cjvanlissa
  • Kind: user
  • Company: Utrecht University

Developmental datascientist, studying mothers' and fathers' unique roles in children's socio-emotional development.

GitHub Events

Total
  • Create event: 1
  • Release event: 1
  • Issues event: 1
  • Watch event: 1
  • Push event: 5
  • Fork event: 1
Last Year
  • Create event: 1
  • Release event: 1
  • Issues event: 1
  • Watch event: 1
  • Push event: 5
  • Fork event: 1

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 65
  • Total Committers: 5
  • Avg Commits per committer: 13.0
  • Development Distribution Score (DDS): 0.138
Past Year
  • Commits: 3
  • Committers: 2
  • Avg Commits per committer: 1.5
  • Development Distribution Score (DDS): 0.333
Top Committers
Name Email Commits
cjvanlissa c****a@u****l 56
cjvanlissa c****a@t****u 4
Caspar van Lissa v****a@f****l 3
yourname y****e@e****m 1
olivroy 5****y 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 8
  • Total pull requests: 1
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 2 minutes
  • Total issue authors: 3
  • Total pull request authors: 1
  • Average comments per issue: 0.25
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • cjvanlissa (6)
  • codeenthusiast (1)
  • MichaelChirico (1)
  • GerbrichFerdinands (1)
Pull Request Authors
  • olivroy (2)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • cran 580 last-month
  • Total docker downloads: 43,390
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 5
  • Total maintainers: 1
cran.r-project.org: metaforest

Exploring Heterogeneity in Meta-Analysis using Random Forests

  • Versions: 5
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 580 Last month
  • Docker Downloads: 43,390
Rankings
Downloads: 22.9%
Average: 29.4%
Dependent packages count: 29.8%
Dependent repos count: 35.5%
Maintainers (1)
Last synced: 11 months ago