Title: | A Monte Carlo Based Heterogeneity Test for Meta-Analysis |
---|---|
Description: | Implements a Monte Carlo Based Heterogeneity Test for standardized mean differences (d), Fisher-transformed Pearson's correlations (r), and natural-logarithm-transformed odds ratio (OR) in Meta-Analysis Studies. Depending on the presence of moderators, this Monte Carlo Based Test can be implemented in the random or mixed-effects model. This package uses rma() function from the R package 'metafor' to obtain parameter estimates and likelihood, so installation of R package 'metafor' is required. This approach refers to the studies of Hedges (1981) <doi:10.3102/10769986006002107>, Hedges & Olkin (1985, ISBN:978-0123363800), Silagy, Lancaster, Stead, Mant, & Fowler (2004) <doi:10.1002/14651858.CD000146.pub2>, Viechtbauer (2010) <doi:10.18637/jss.v036.i03>, and Zuckerman (1994, ISBN:978-0521432009). |
Authors: | Han Du [aut], Ge Jiang [aut, cre], Zijun Ke [ctb] |
Maintainer: | Ge Jiang <[email protected]> |
License: | GPL (>= 2) |
Version: | 0.1.2 |
Built: | 2025-02-18 06:13:02 UTC |
Source: | https://github.com/cran/mc.heterogeneity |
.onAttach
.onAttach(libname, pkgname)
.onAttach(libname, pkgname)
libname |
character |
pkgname |
character |
https://r-pkgs.org/r.html
mc.d
returns the Monte Carlo based tests of the residual heterogeneity in random- or mixed- effects model of standardized mean differences (d).
mc.d( n1, n2, est, model = "random", adjust = FALSE, mods = NULL, nrep = 10^4, p_cut = 0.05, mc.include = FALSE )
mc.d( n1, n2, est, model = "random", adjust = FALSE, mods = NULL, nrep = 10^4, p_cut = 0.05, mc.include = FALSE )
n1 |
a vector of sample sizes from group 1 in each of the included studies. |
n2 |
a vector of sample sizes from group 2 in each of the included studies. |
est |
a vector of unbiased estimates of standardized mean differences. |
model |
choice of random- or mixed- effects models. Can only be set to |
adjust |
if biased estimates (i.e., g values) are provided, |
mods |
optional argument to include one or more moderators in the model. |
nrep |
number of replications used in Monte Carlo Simulations. Default to 10^4. |
p_cut |
cutoff for p-values, which is the alpha level. Default to 0.05. |
mc.include |
if true, Monte Carlo simulation results are included in the output (e.g., Monte Carlo critical values). |
For standardized mean difference, if the biased estimates (i.e., g values) are provided, adjust=TRUE
can be specified to obtain the corresponding unbiased estimates.
This function returns the test statistics as well as their p-value and significances using (1) Q-test, (2) Monte Carlo Based Heterogeneity Test with Maximum Likelihood (ML), and (3) Monte Carlo Based Heterogeneity Test with Restricted Maximum Likelihood (REML).
The results of significances are classified as "sig" or "n.s" based on the cutoff p-value (i.e., alpha level). "sig" means that the between-study heterogeneity is significantly different from zero whereas "n.s" means the between-study heterogeneity is not significantly different from zero. The default alpha level is 0.05.
Hedges, L. V. (1981). Distribution theory for glass’s estimator of effect size and related estimators. Journal of Educational and Behavioral Statistics, 6(2), 107–128.
Hedges, L. V., Giaconia, R. M., & Gage, N. L. (1981). Meta-analysis of the effect of open and traditional instruction. Stanford, CA: Stanford University, Program on Teaching Effectiveness.
Viechtbauer, W. (2010). Conducting meta-analyses in R with the metafor package. Journal of Statistical Software, 36(3), 1-48. URL: https://www.jstatsoft.org/v36/i03/
# A meta-analysis of 18 studies in which the effect of open versus traditional # education on students' self-concept was studied (Hedges et al., 1981). selfconcept <- mc.heterogeneity:::selfconcept # n1 and n2 are lists of samples sizes in two groups n1 <- selfconcept$n1 n2 <- selfconcept$n2 # g is a list of biased estimates of standardized mean differences in the meta-analytical study g <- selfconcept$g cm <- (1-3/(4*(n1+n2-2)-1)) #correct factor to compensate for small sample bias (Hedges, 1981) d <- cm*g ## Not run: mc.run <- mc.d(n1, n2, est = d, model = 'random', p_cut = 0.05) # is equivalent to: mc.run2 <- mc.d(n1, n2, est = g, model = 'random', adjust = TRUE, p_cut = 0.05) ## End(Not run) # A hypothetical meta-analysis of 15 studies with 3 moderators. hypo_moder <- mc.heterogeneity:::hypo_moder ## Not run: mc.run3 <- mc.d(n1 = hypo_moder$n1, n2 = hypo_moder$n2, est = hypo_moder$d, model = 'mixed', mods = cbind(hypo_moder$cov.z1, hypo_moder$cov.z2, hypo_moder$cov.z3), p_cut = 0.05) ## End(Not run) ## Note: this mc.d() function will soon be deprecated ## and replaced by \link[boot.heterogeneity]{boot.d} in ## package [boot.heterogeneity](https://CRAN.R-project.org/package=boot.heterogeneity).
# A meta-analysis of 18 studies in which the effect of open versus traditional # education on students' self-concept was studied (Hedges et al., 1981). selfconcept <- mc.heterogeneity:::selfconcept # n1 and n2 are lists of samples sizes in two groups n1 <- selfconcept$n1 n2 <- selfconcept$n2 # g is a list of biased estimates of standardized mean differences in the meta-analytical study g <- selfconcept$g cm <- (1-3/(4*(n1+n2-2)-1)) #correct factor to compensate for small sample bias (Hedges, 1981) d <- cm*g ## Not run: mc.run <- mc.d(n1, n2, est = d, model = 'random', p_cut = 0.05) # is equivalent to: mc.run2 <- mc.d(n1, n2, est = g, model = 'random', adjust = TRUE, p_cut = 0.05) ## End(Not run) # A hypothetical meta-analysis of 15 studies with 3 moderators. hypo_moder <- mc.heterogeneity:::hypo_moder ## Not run: mc.run3 <- mc.d(n1 = hypo_moder$n1, n2 = hypo_moder$n2, est = hypo_moder$d, model = 'mixed', mods = cbind(hypo_moder$cov.z1, hypo_moder$cov.z2, hypo_moder$cov.z3), p_cut = 0.05) ## End(Not run) ## Note: this mc.d() function will soon be deprecated ## and replaced by \link[boot.heterogeneity]{boot.d} in ## package [boot.heterogeneity](https://CRAN.R-project.org/package=boot.heterogeneity).
mc.fcor
returns the Monte Carlo based tests of the residual heterogeneity in random- or mixed- effects model of Pearson's correlation coefficients transformed with Fisher's r-to-z transformation (z scores).
mc.fcor( n, z, model = "random", mods = NULL, nrep = 10^4, p_cut = 0.05, mc.include = FALSE )
mc.fcor( n, z, model = "random", mods = NULL, nrep = 10^4, p_cut = 0.05, mc.include = FALSE )
n |
a vector of sample sizes in each of the included studies. |
z |
a vector of Fisher-transformed Pearson's correlations. |
model |
choice of random- or mixed- effects models. Can only be set to |
mods |
optional argument to include one or more moderators in the model. |
nrep |
number of replications used in Monte Carlo Simulations. Default to 10^4. |
p_cut |
cutoff for p-values, which is the alpha level. Default to 0.05. |
mc.include |
if true, Monte Carlo simulation results are included in the output (e.g., Monte Carlo critical values). |
This function returns the test statistics as well as their p-value and significances using (1) Q-test, (2) Monte Carlo Based Heterogeneity Test with Maximum Likelihood (ML), and (3) Monte Carlo Based Heterogeneity Test with Restricted Maximum Likelihood (REML).
The results of significances are classified as "sig" or "n.s" based on the cutoff p-value (i.e., alpha level). "sig" means that the between-study heterogeneity is significantly different from zero whereas "n.s" means the between-study heterogeneity is not significantly different from zero. The default alpha level is 0.05.
Zuckerman, M. (1994). Behavioral expressions and biosocial bases of sensation seeking. New York, NY: Cambridge University Press.
Viechtbauer, W. (2010). Conducting meta-analyses in R with the metafor package. Journal of Statistical Software, 36(3), 1-48. URL: https://www.jstatsoft.org/v36/i03/
# A meta-analysis of 13 studies studying the correlation between sensation # seeking scores and levels of monoamine oxidase (Zuckerman, 1994). sensation <- mc.heterogeneity:::sensation # n is a list of samples sizes n <- sensation$n # Pearson's correlation r <- sensation$r # Fisher's Transformation z <- 1/2*log((1+r)/(1-r)) ## Not run: #' mc.run <- mc.fcor(n, z, model = 'random', p_cut = 0.05) ## End(Not run) ## Note: this mc.fcor() function will soon be deprecated ## and replaced by \link[boot.heterogeneity]{boot.fcor} in ## package [boot.heterogeneity](https://CRAN.R-project.org/package=boot.heterogeneity).
# A meta-analysis of 13 studies studying the correlation between sensation # seeking scores and levels of monoamine oxidase (Zuckerman, 1994). sensation <- mc.heterogeneity:::sensation # n is a list of samples sizes n <- sensation$n # Pearson's correlation r <- sensation$r # Fisher's Transformation z <- 1/2*log((1+r)/(1-r)) ## Not run: #' mc.run <- mc.fcor(n, z, model = 'random', p_cut = 0.05) ## End(Not run) ## Note: this mc.fcor() function will soon be deprecated ## and replaced by \link[boot.heterogeneity]{boot.fcor} in ## package [boot.heterogeneity](https://CRAN.R-project.org/package=boot.heterogeneity).
mc.lnOR
returns the Monte Carlo based tests of the residual heterogeneity in random- or mixed- effects model of natural-logarithm-transformed observed odds ratio (lnOR).
mc.lnOR( n_00, n_01, n_10, n_11, model = "random", mods = NULL, nrep = 10^4, p_cut = 0.05, mc.include = FALSE )
mc.lnOR( n_00, n_01, n_10, n_11, model = "random", mods = NULL, nrep = 10^4, p_cut = 0.05, mc.include = FALSE )
n_00 |
a vector of number of participants who score negatively on both Y1 and Y2 (e.g., mortality cases in the control group). |
n_01 |
a vector of number of participants who score negatively on Y1 and positively on Y2 (e.g., recovery cases in the control group). |
n_10 |
a vector of number of participants who score positively on Y1 and negatively on Y2 (e.g., mortality cases in the experimental group). |
n_11 |
a vector of number of participants who score positively on both Y1 and Y2 (e.g., recovery cases in the experimental group). |
model |
choice of random- or mixed- effects models. Can only be set to |
mods |
optional argument to include one or more moderators in the model. |
nrep |
number of replications used in Monte Carlo Simulations. Default to 10^4. |
p_cut |
cutoff for p-values, which is the alpha level. Default to 0.05. |
mc.include |
if true, Monte Carlo simulation results are included in the output (e.g., Monte Carlo critical values). |
lnOR |
a vector of natural-logarithm-transformed odds ratio in the included studies, which is calculated as ln(n11*n00/n01/n10) |
For odds ratio, its standard error will be infinite if any one of the four cells in the contingency tables is zero. In this case, Haldane and Anscombe correction is used by adding 0.5 to each cell value (Anscombe, 1956; Haldane, 1940). This function returns the test statistics as well as their p-value and significances using (1) Q-test, (2) Monte Carlo Based Heterogeneity Test with Maximum Likelihood (ML), and (3) Monte Carlo Based Heterogeneity Test with Restricted Maximum Likelihood (REML).
The results of significances are classified as "sig" or "n.s" based on the cutoff p-value (i.e., alpha level). "sig" means that the between-study heterogeneity is significantly different from zero whereas "n.s" means the between-study heterogeneity is not significantly different from zero. The default alpha level is 0.05.
C. Silagy (2003), Nicotine replacement therapy for smoking cessation (Cochrane Review). The Cochrane Library, 4, John Wiley \& Sons, Chichester.
Anscombe, F. J. (1956). On estimating binomial response relations. Biometrika, 43(3/4), 461–464.
Haldane, J. (1940). The mean and variance of| chi 2, when used as a test of homogeneity, when expectations are small. Biometrika, 31(3/4), 346–355.
Viechtbauer, W. (2010). Conducting meta-analyses in R with the metafor package. Journal of Statistical Software, 36(3), 1-48. URL: https://www.jstatsoft.org/v36/i03/
# A meta-analysis consists of 26 studies on nicotine replacement therapy for smoking cessation library(HSAUR3) data(smoking) # Y1: receive treatment; Y2: stop smoking n_00 <- smoking$tc - smoking$qc # not receive treatement yet not stop smoking n_01 <- smoking$qc # not receive treatement but stop smoking n_10 <- smoking$tt - smoking$qt # receive treatement but not stop smoking n_11 <- smoking$qt # receive treatement and stop smoking lnOR <- log(n_11*n_00/n_01/n_10) ## Not run: mc.run <- mc.lnOR(n_00, n_01, n_10, n_11, model = 'random', p_cut = 0.05) ## End(Not run) ## Note: this mc.lnOR() function will soon be deprecated ## and replaced by \link[boot.heterogeneity]{boot.lnOR} in ## package [boot.heterogeneity](https://CRAN.R-project.org/package=boot.heterogeneity).
# A meta-analysis consists of 26 studies on nicotine replacement therapy for smoking cessation library(HSAUR3) data(smoking) # Y1: receive treatment; Y2: stop smoking n_00 <- smoking$tc - smoking$qc # not receive treatement yet not stop smoking n_01 <- smoking$qc # not receive treatement but stop smoking n_10 <- smoking$tt - smoking$qt # receive treatement but not stop smoking n_11 <- smoking$qt # receive treatement and stop smoking lnOR <- log(n_11*n_00/n_01/n_10) ## Not run: mc.run <- mc.lnOR(n_00, n_01, n_10, n_11, model = 'random', p_cut = 0.05) ## End(Not run) ## Note: this mc.lnOR() function will soon be deprecated ## and replaced by \link[boot.heterogeneity]{boot.lnOR} in ## package [boot.heterogeneity](https://CRAN.R-project.org/package=boot.heterogeneity).