metahdep.HBLM: metahdep.HBLM

Description Usage Arguments Details Value Author(s) References Examples

Description

Performs a meta-analysis by fitting a hierarchical Bayes linear model, allowing for hierarchical dependence.

Usage

1
2
3
4
metahdep.HBLM(theta, V, X, M = NULL, dep.groups = NULL, 
              meta.name = "meta-analysis", center.X = FALSE, 
              delta.split = FALSE, n = 10, m = 10, 
              two.sided = FALSE)

Arguments

theta

A vector of effect size estimates from multiple studies.

V

The variance/covariance matrix for theta. Typically, this will be block diagonal (to represent any sampling dependence).

X

A matrix of covariates for theta. At the very least, this must consist of an intercept term. Other covariates can be included, but there must be more rows than columns in this covariate matrix.

M

(optional) Used when delta.split=TRUE. A block-diagonal matrix describing the hierarchical dependence for the studies (theta). One of two ways to specify this is by using the metahdep.format() function; the other is to use the get.M() function.

dep.groups

(optional) Used when delta.split=TRUE. A list of vectors/scalars describing the hierarchical dependence groups for the studies (theta). This is an alternative to passing an M matrix.

meta.name

(optional) A name field for bookkeeping. This can be any character string.

center.X

(optional) A logical value specifying whether or not to center the columns of X. If TRUE, then the mean from each column will be subtracted from every element in that column (but not for the intercept). This changes the interpretation of the intercept coefficient estimate from the model fit.

delta.split

(optional) A logical value specifying whether or not to account for hierarchical dependence (i.e., perform delta-splitting). If TRUE, then the user needs to pass either a dependence matrix M, or a dep.groups list; i.e., one of M or dep.groups is REQUIRED when delta.split=TRUE.

n

(optional) An even integer telling how many steps to use when doing the numerical integration over tau, the square root of the between-study hierarchical variance. The integration is done on the log-logistic prior, split into the 4 quartiles. This number n specifies how many steps to take within each quartile.

m

(optional) An even integer telling how many steps to use when doing the numerical integration over varsigma (given tau), the between-study hierarchical covariance. This is only used when delta.split=TRUE. The integration is done on the uniform prior, for each value of tau.

two.sided

(optional) A logical value to determine whether to return the 2-sided p-values or default [one-sided positive] posterior probabilities for the parameter estimates.

Details

Takes a vector of effect size estimates, a variance/covariance matrix, and a covariate matrix, and fits a hierarchical Bayes linear model. If delta.split=TRUE, then it performs delta-splitting to account for hierarchical dependence among studies. The main parameters (beta) are given normal priors, the square root of the hierarchical variance (tau) is given a log-logistic prior, and the hierarchical covariance (varsigma) is given a uniform prior; see the Stevens and Taylor reference for details. When a meta-analysis is to be performed for gene expression data (on a per-gene basis), the metahdep() function calls this metahdep.HBLM function for each gene separately.

Value

A list, with the following named components:

beta.hats

A vector of model estimates for the covariates given by X (it may be length 1 i.e. scalar)

cov.matrix

The variance/covariance matrix for the beta.hats vector

beta.hat.p.values

The p-value(s) for the beta.hats estimate(s)

tau.hat

The posterior mean for tau (not tau-square). An estimate for tau-square is E(square(tau) [given data]) = tau.var + square(tau.hat)

tau.var

The posterior variance for tau (not tau-square).

varsigma.hat

The posterior mean for varsigma.

varsigma.var

The posterior variance for varsigma.

tau.varsigma.cov

The posterior covariance for tau and varsigma.

name

An optional name field

Author(s)

John R. Stevens, Gabriel Nicholas

References

DuMouchel W. H. and Harris J. H. (1983), Bayes methods for combining the results of cancer studies in humans and other species, Journal of the American Statistical Association, 78(382), 293-308.

DuMouchel W.H. and Normand S.-L. (2000), Computer-modeling and graphical strategies for meta-analysis, in D. K. Stangl and D. A. Berry (Eds.), Meta-analysis in medicine and health policy, pp. 127-178. New York: Marcel Dekker.

Stevens J.R. and Doerge R.W. (2005), A Bayesian and Covariate Approach to Combine Results from Multiple Microarray Studies, Proceedings of Conference on Applied Statistics in Agriculture, pp. 133-147.

Stevens J.R. and Nicholas G. (2009), metahdep: Meta-analysis of hierarchically dependent gene expression studies, Bioinformatics, 25(19):2619-2620.

Stevens J.R. and Taylor A.M. (2009), Hierarchical Dependence in Meta-Analysis, Journal of Educational and Behavioral Statistics, 34(1):46-73.

See also the metahdep package vignette.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
###
### Example 1: gene expression data
### - this uses one gene from the HGU.prep.list object

# load data and extract components for meta-analysis (for one gene)
data(HGU.prep.list)
gene.data <- HGU.prep.list[[7]]
theta <- gene.data@theta
V <- gene.data@V
X <- gene.data@X
M <- gene.data@M
dep.grps <- list(c(1:2),c(4:6))
gene.name <- gene.data@gene

# fit a regular HBLM (no hierarchical dependence)
results <- metahdep.HBLM(theta, V, X, meta.name=gene.name, 
  center.X=TRUE, two.sided=TRUE)
results

# fit hierarchical dependence model (with delta-splitting), 
# using two different methods for specifying the dependence structure
results.dsplitM <- metahdep.HBLM(theta, V, X, M, delta.split=TRUE, 
  meta.name=gene.name, center.X=TRUE, two.sided=TRUE)
results.dsplitM
results.dsplitd <- metahdep.HBLM(theta, V, X, dep.groups=dep.grps, 
  delta.split=TRUE, meta.name=gene.name, center.X=TRUE, two.sided=TRUE)
results.dsplitd


###
###  Example 2: glossing data
###  - this produces part of Table 5 in the Stevens and Taylor JEBS paper.

data(gloss)
dep.groups <- list(c(2,3,4,5),c(10,11,12))
HBLM.ds <- metahdep.HBLM(gloss.theta, gloss.V, gloss.X, center.X=TRUE, 
  two.sided=TRUE, delta.split=TRUE, dep.groups=dep.groups, n=20, m=20)
round(cbind(HBLM.ds$beta.hats, HBLM.ds$beta.hat.p.values),4)

metahdep documentation built on Nov. 8, 2020, 8:03 p.m.