PharmD Info

A forum for Indian Pharmacy Professionals

Research funding schemes, UGC Approved Journals, Project Protocols, Clinical Study Designs, Clinical Trails Registry and Regulation, Biostatistics Forum.
Forum rules: General rules are applicable for this forum- Find Here
  • User avatar
#5469
Meta-analysis is a statistical technique used to combine the results from multiple independent studies to obtain an overall estimate of the effect size of a treatment or intervention. R Studio is a popular open-source software program that can be used to conduct meta-analyses.

Here is a step-by-step procedure for conducting a meta-analysis using R Studio:

Load the required packages: In R Studio, you will need to load the following packages for conducting a meta-analysis: meta, dplyr, and ggplot2. To load these packages, use the following command:

Code: Select all
library(meta)
library(dplyr)
library(ggplot2)

Import the data: You will need to import the data from the studies that you want to include in your meta-analysis. The data should be in a standard format, such as CSV or Excel. Once you have imported the data, you can create a data frame in R Studio using the following command:

Code: Select all
data <- read.csv("data.csv")

Create a meta-analysis object: In R Studio, you can create a meta-analysis object using the metagen function from the meta package. This function takes as input the effect size and standard error (SE) for each study, as well as the study weights. Here is an example command for creating a random-effects meta-analysis object:

Code: Select all
meta_obj <- metagen(effectsize, se, data = data, studlab = study_id, sm = "SMD", method.tau = "DL", method.ti = "REML")

In this command, effectsize and se are vectors containing the effect size and SE for each study, respectively. data is the data frame containing the study-level data, study_id is a vector containing the study IDs, "SMD" specifies that the effect sizes are standardized mean differences (SMDs), "DL" specifies that the DerSimonian-Laird estimator is used for estimating the between-study variance (tau-squared), and "REML" specifies that the restricted maximum likelihood (REML) method is used for estimating the between-study variance.

Conduct heterogeneity analysis: In meta-analysis, it is important to assess the heterogeneity (i.e., variability) of the effect sizes across studies. This can be done using the forest() function from the meta package, which produces a forest plot of the effect sizes and confidence intervals (CIs) for each study, as well as a summary estimate and CI for the overall effect size. Here is an example command for creating a forest plot:

Code: Select all
forest(meta_obj, comb.random = TRUE, comb.fixed = FALSE, xlim = c(-3,3))

In this command, comb.random = TRUE specifies that a random-effects model is used, while comb.fixed = FALSE specifies that a fixed-effects model is not used. xlim = c(-3,3) sets the limits of the x-axis to be between -3 and 3.

Conduct subgroup analysis: If there is significant heterogeneity in the effect sizes across studies, you may want to conduct a subgroup analysis to explore potential sources of heterogeneity. This can be done using the metareg() function from the meta package, which allows you to fit a regression model to the effect sizes using study-level covariates. Here is an example command for conducting a subgroup analysis:

Code: Select all
subgroup_obj <- metareg(meta_obj, ~ covariate1 + covariate2)

In this command, covariate1 and covariate2 are the study-level covariates that you want to include in the regression model.

Conduct sensitivity analysis: Sensitivity analysis is used to assess the robustness of the meta-analysis results to different assumptions or methods. One common sensitivity analysis is to remove one study at a time and examine how the overall effect size changes. This can be done using the leave1out() function from the meta package. Here is an example command for conducting a leave-one-out sensitivity analysis:

Code: Select all
sensitivity_obj <- leave1out(meta_obj)

Conduct publication bias analysis: Publication bias is the tendency for studies with statistically significant results to be more likely to be published than studies with non-significant results. Publication bias can be assessed using funnel plots, which plot the effect sizes against the standard error and can reveal asymmetry if publication bias is present. Funnel plots can be created using the funnel() function from the meta package. Here is an example command for creating a funnel plot:

Code: Select all
funnel(meta_obj)

In addition to funnel plots, statistical tests can also be used to assess publication bias, such as the Egger's test or Begg's test, which can be conducted using the regtest() function from the meta package.

Visualize the results: Finally, you can use the ggforest() function from the ggplot2 package to create a forest plot that is more customizable than the forest() function from the meta package. Here is an example command for creating a forest plot using ggforest():

Code: Select all
ggforest(meta_obj, subtitle = "Random-effects meta-analysis")

In this command, subtitle is an optional argument that allows you to add a subtitle to the forest plot.

This is a general procedure for conducting a meta-analysis in R Studio. The specific steps may vary depending on the dataset and research question.

Here is an example of conducting a meta-analysis in R Studio using the association between smoking and cancer as the research question and dataset.
Code: Select all
smoking_data <- data.frame(study = c("Study 1", "Study 2", "Study 3", "Study 4", "Study 5"),
                           smokers_cases = c(130, 85, 65, 140, 95),
                           smokers_controls = c(210, 170, 140, 220, 175),
                           non_smokers_cases = c(35, 30, 25, 50, 40),
                           non_smokers_controls = c(85, 70, 60, 100, 75))

In this dataset, the columns represent the study name, the number of smokers with cancer and controls, and the number of non-smokers with cancer and controls.

Load the required packages:

Code: Select all
library(metafor)
library(ggplot2)

Calculate the odds ratio and 95% confidence interval for each study using the escalc() function:

Code: Select all
smoking_data <- escalc(measure = "OR", ai = smokers_cases, bi = smokers_controls, ci = non_smokers_cases, di = non_smokers_controls, data = smoking_data)

Create the meta-analysis object using the rma() function:

Code: Select all
smoking_meta <- rma(yi = yi, vi = vi, data = smoking_data)

In this command, "yi" represents the log odds ratio and "vi" represents the sampling variance of the log odds ratio.

Check the summary statistics of the meta-analysis using the summary() function:

Code: Select all
summary(smoking_meta)

Conduct heterogeneity analysis using the Q() and tau2() functions:

Code: Select all
Q_obj <- Q(smoking_meta)
tau2_obj <- tau2(smoking_meta)

Conduct sensitivity analysis using the leave1out() function:

Code: Select all
sensitivity_obj <- leave1out(smoking_meta)

Conduct publication bias analysis using the funnel() and regtest() functions:

Code: Select all
funnel(smoking_meta)
regtest(smoking_meta)

Visualize the results using the forest() and ggforest() functions:

Code: Select all
forest(smoking_meta, slab = smoking_data$study, showweights = TRUE)
ggforest(smoking_meta, subtitle = "Random-effects meta-analysis")

This example demonstrates how to conduct a meta-analysis using a small dataset with five studies. In practice, a meta-analysis would typically include many more studies and may involve more complex statistical models, such as meta-regression or subgroup analyses. It is important to consult with a statistician or conduct a thorough literature review to determine the most appropriate statistical models and methods for a given meta-analysis.
Scientific Writing as a Student

Entering scientific writing during your 2nd year o[…]

After being bitten by a snake, the function of a t[…]

PharmD Info - Highlights