| c.bma {BMS} | R Documentation |
Concatenate bma objects
Description
Combines bma objects (resulting from bms). Can be used to
split estimation over several machines, or combine the MCMC results obtained
from different starting points.
Usage
## S3 method for class 'bma'
c(..., recursive = FALSE)
Arguments
... |
At least two 'bma' objects (cf. |
recursive |
retained for compatibility with |
Details
Aggregates the information obtained from several chains. The result is a
'bma' object (cf. 'Values' in bms) that can be used just as a
standard 'bma' object.
Note that combine_chains helps in
particular to paralllelize the enumeration of the total model space: A model
with K regressors has 2^K potential covariate combinations: With
K large (more than 25), this can be pretty time intensive. With the
bms arguments start.value and iter, sampling can
be done in steps: cf. example 'enumeration' below.
See Also
bms for creating bma objects
Check http://bms.zeugner.eu for additional help.
Examples
data(datafls)
#MCMC case ############################
model1=bms(datafls,burn=1000,iter=4000,mcmc="bd",start.value=c(20,30,35))
model2=bms(datafls,burn=1500,iter=7000,mcmc="bd",start.value=c(1,10,15))
model_all=c(model1,model2)
coef(model_all)
plot(model_all)
#splitting enumeration ########################
#standard case with 12 covariates (4096 differnt combinations):
enum0=bms(datafls[,1:13],mcmc="enumerate")
# now split the task:
# enum1 does everything from model zero (the first model) to model 1999
enum1=bms(datafls[,1:13],mcmc="enumerate",start.value=0,iter=1999)
# enum2 does models from index 2000 to the index 3000 (in total 1001 models)
enum2=bms(datafls[,1:13],mcmc="enumerate",start.value=2000,iter=1000)
# enum3 does models from index 3001 to the end
enum3=bms(datafls[,1:13],mcmc="enumerate",start.value=3001)
enum_combi=c(enum1,enum2,enum3)
coef(enum_combi)
coef(enum0)
#both enum_combi and enum0 have exactly the same results
#(one difference: enum_combi has more 'top models' (1500 instead of 500))