This function is a wrapper for iterateBMAsurv.train, which
repeatedly calls bic.surv from the BMA package
until all variables are exhausted. At the point when this function
is called, the variables in the dataset are assumed to be
pre-sorted by rank.
Data matrix where columns are variables and rows are observations.
The variables (columns) are assumed to be sorted using a univariate
measure. In the case of gene expression data, the columns (variables)
represent genes, while the rows (observations) represent samples.
surv.time
Vector of survival times for the patient samples. Survival times
are assumed to be presented in uniform format (e.g., months or
days), and the length of this vector should be equal to the number
of rows in x.
cens.vec
Vector of censor data for the patient samples. In general,
0 = censored and 1 = uncensored. The length of this vector
should equal the number of rows in x and the number of elements
in surv.time.
nbest
A number specifying the number of models of each size
returned to bic.surv in the BMA package.
The default is 10.
maxNvar
A number indicating the maximum number of variables used in
each iteration of bic.surv from the BMA package.
The default is 25.
maxIter
A number indicating the maximum iterations of bic.surv.
The default is 200000.
thresProbne0
A number specifying the threshold for the posterior
probability that each variable (gene) is non-zero (in
percent). Variables (genes) with such posterior
probability less than this threshold are dropped in
the iterative application of bic.surv. The default
is 1 percent.
verbose
A boolean variable indicating whether or not to print interim
information to the console. The default is FALSE.
suff.string
A string for writing to file.
Details
In this wrapper function for iterateBMAsurv.train, the variables
are assumed to be sorted, and bic.surv is called repeatedly
until all the variables have been exhausted. In the first application
of the bic.surv algorithm, the top maxNvar univariate
ranked genes are used. After each application of the bic.surv
algorithm, the genes with probne0 < thresProbne0
are dropped, and the next univariate ordered genes are added
to the bic.surv window. The function
iterateBMAsurv.train.predict.assess calls SingleGeneCoxph
before calling this function. Using this function directly, users can
experiment with alternative univariate measures.
Value
If maxIter is reached or the iterations stop before all variables
are exhausted, -1 is returned. If all variables are exhausted, two items
are returned:
curr.names
A vector containing the names of the variables (genes)
from the last iteration of bic.surv
.
obj
An object of class bic.surv returned by the last iteration of
bic.surv. The object of class bic.surv is a list
consisting of the following components:
namesx
the names of the variables in the last iteration of
bic.surv.
postprob
The posterior probabilities of the models selected.
label
Labels identifying the models selected.
bic
Values of BIC for the models.
size
The number of independent variables in each of the models.
which
A logical matrix with one row per model and one column per
variable indicating whether that variable is in the model.
probne0
The posterior probability that each variable is non-zero
(in percent).
postmean
The posterior mean of each coefficient (from model averaging).
postsd
The posterior standard deviation of each coefficient
(from model averaging).
condpostmean
The posterior mean of each coefficient conditional on
the variable being included in the model.
condpostsd
The posterior standard deviation of each coefficient
conditional on the variable being included in the model.
mle
Matrix with one row per model and one column per variable giving
the maximum likelihood estimate of each coefficient for each model.
se
Matrix with one row per model and one column per variable giving
the standard error of each coefficient for each model.
reduced
A logical indicating whether any variables were dropped
before model averaging.
dropped
A vector containing the names of those variables dropped
before model averaging.
call
The matched call that created the bma.lm object.
Note
The BMA package is required.
References
Annest, A., Yeung, K.Y., Bumgarner, R.E., and Raftery, A.E. (2008).
Iterative Bayesian Model Averaging for Survival Analysis.
Manuscript in Progress.
Raftery, A.E. (1995).
Bayesian model selection in social research (with Discussion). Sociological Methodology 1995 (Peter V. Marsden, ed.), pp. 111-196, Cambridge, Mass.: Blackwells.
Volinsky, C., Madigan, D., Raftery, A., and Kronmal, R. (1997)
Bayesian Model Averaging in Proprtional Hazard Models: Assessing the Risk of a Stroke.
Applied Statistics 46: 433-448.
Yeung, K.Y., Bumgarner, R.E. and Raftery, A.E. (2005)
Bayesian Model Averaging: Development of an improved multi-class, gene selection and classification tool for microarray data.
Bioinformatics 21: 2394-2402.
library (BMA)
library(iterativeBMAsurv)
data(trainData)
data(trainSurv)
data(trainCens)
## Training data should be pre-sorted before beginning
## Run iterative bic.surv, using nbest=5 for fast computation
ret.list <- iterateBMAsurv.train.wrapper (x=trainData, surv.time=trainSurv, cens.vec=trainCens, nbest=5)
## Extract the 'bic.surv' object
ret.bma <- ret.list$obj
## Extract the names of the genes from the last iteration of 'bic.surv'
gene.names <- ret.list$curr.names
Results
R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> library(iterativeBMAsurv)
Loading required package: BMA
Loading required package: survival
Loading required package: leaps
Loading required package: robustbase
Attaching package: 'robustbase'
The following object is masked from 'package:survival':
heart
Loading required package: inline
Loading required package: rrcov
Scalable Robust Estimators with High Breakdown Point (version 1.3-11)
Loading required package: splines
> png(filename="/home/ddbj/snapshot/RGM3/R_BC/result/iterativeBMAsurv/iterateBMAsurv.train.wrapper.Rd_%03d_medium.png", width=480, height=480)
> ### Name: iterateBMAsurv.train.wrapper
> ### Title: Iterative Bayesian Model Averaging: training
> ### Aliases: iterateBMAsurv.train.wrapper
> ### Keywords: multivariate survival
>
> ### ** Examples
>
> library (BMA)
> library(iterativeBMAsurv)
> data(trainData)
> data(trainSurv)
> data(trainCens)
>
> ## Training data should be pre-sorted before beginning
>
> ## Run iterative bic.surv, using nbest=5 for fast computation
> ret.list <- iterateBMAsurv.train.wrapper (x=trainData, surv.time=trainSurv, cens.vec=trainCens, nbest=5)
17: Explored up to variable # 100
Iterate bic.surv is done!
Selected genes:
[1] "X31687" "X33840" "X31242" "X16948" "X31471" "X17154" "X28531" "X19241"
[9] "X26146" "X17804" "X27332" "X17241" "X32212" "X29911" "X33558" "X33013"
[17] "X27884" "X33706" "X16817" "X31968" "X30209" "X29650" "X25054" "X16988"
[25] "X32904"
Posterior probabilities of selected genes:
[1] 100.0 47.5 47.3 2.4 38.5 28.5 40.1 96.7 2.8 1.7 0.0 59.9
[13] 0.0 0.0 10.0 0.0 2.5 58.3 2.1 98.8 28.4 7.1 95.1 0.0
[25] 100.0
>
> ## Extract the 'bic.surv' object
> ret.bma <- ret.list$obj
>
> ## Extract the names of the genes from the last iteration of 'bic.surv'
> gene.names <- ret.list$curr.names
>
>
>
>
>
>
> dev.off()
null device
1
>