topmod {BMS} | R Documentation |

Create or use an updateable list keeping the best x models it encounters (for advanced users)

topmod(nbmodels, nmaxregressors = NA, bbeta = FALSE, lengthfixedvec = 0, liks = numeric(0), ncounts = numeric(0), modelbinaries = matrix(0, 0, 0), betas = matrix(0, 0, 0), betas2 = matrix(0, 0, 0), fixed_vector = matrix(0, 0, 0)) is.topmod(tmo)

`nbmodels` |
The maximum number of models to be retained by the topmod object |

`nmaxregressors` |
The maximum number of covariates the models in the topmod object are allowed to have |

`bbeta` |
if |

`lengthfixedvec` |
The length of an optional fixed vector adhering to each model (for instance R-squared, etc). If |

`liks` |
optional vector of log-likelihoods to initialize topmod object with (length must be |

`ncounts` |
optional vector of MCMC frequencies to initialize topmod object with (same length as |

`modelbinaries` |
optional matrix whose columns detail model binaries to initialize topmod object with (same nb columns as |

`betas` |
optional matrix whose columns are coefficients to initialize topmod object with (same dimensions as |

`betas2` |
optional matrix whose columns are coefficients' second moments to initialize topmod object with (same dimensions as |

`fixed_vector` |
optional matrix whose columns are a fixed vector initialize topmod object with (same |

`tmo` |
A 'topmod' object, as e.g. created by topmod, or as element of the result of |

A 'topmod' object (as created by `topmod`

) holds three basic vectors: `lik`

(for the (log) likelihood of models or similar), `bool()`

for a hexcode presentation of the model binaries (cf. `bin2hex`

) and ncount() for the times the models have been drawn.

All these vectors are sorted descendantly by `lik`

, and are of the same length. The maximum length is limited by the argument `nbmodels`

.

If `tmo`

is a topmod object, then a call to `tmo$addmodel`

(e.g. `tmo$addmodel(mylik=4,vec01=c(T,F,F,T))`

updates the object `tmo`

by a model represented by `vec01`

(here the one including the first and fourth regressor) and the marginal (log) likelihood `lik`

(here: 4).

If this model is already part of `tmo`

, then its respective `ncount`

entry is incremented by one; else it is inserted into a position according to the ranking of `lik`

.

In addition, there is the possibility to save (the first moments of) coefficients of a model (`betas`

) and their second moments (`betas2`

), as well as an arbitrary vector of statistics per model (`fixed_vector`

).

`is.topmod`

returns `TRUE`

if the argument is of class 'topmod'

a call to `topmod`

returns a list of class "topmod" with the following elements:

`addmodel(mylik,vec01,vbeta=numeric(0),vbeta2=numeric(0),fixedvec=numeric(0))` |
function that adjusts the list of models in the 'topmod' object (see Details). |

`lik()` |
A numeric vector of the best models (log) likelihoods, in decreasing order |

`bool()` |
A character vector of hexmode expressions for the model binaries (cf. |

`ncount()` |
A numeric vector of MCMC frequencies for the best models (i.e. how often the respective model was introduced by |

`nbmodels` |
Returns the argument |

`nregs` |
Returns the argument |

`bool_binary()` |
Returns a matrix whose columns present the models conforming to |

`betas()` |
a matrix whose columns are the coefficients conforming to |

`betas2()` |
similar to |

`fixed_vector()` |
The columns of this matrix return the |

`topmod`

is rather intended as a building block for programming; it has no direct application for a user of the BMS package.

Martin Feldkircher and Stefan Zeugner

the object resulting from `bms`

includes an element of class 'topmod'

Check http://bms.zeugner.eu for additional help.

#standard use tm= topmod(2,4,TRUE,0) #should keep a maximum two models tm$addmodel(-2.3,c(1,1,1,1),1:4,5:8) #update with some model tm$addmodel(-2.2,c(0,1,1,1),1:3,5:7) #add another model tm$addmodel(-2.2,c(0,1,1,1),1:3,5:7) #add it again -> adjust ncount tm$addmodel(-2.5,c(1,0,0,1),1:2,5:6) #add another model #read out tm$lik() tm$ncount() tm$bool_binary() tm$betas() is.topmod(tm) #extract a topmod oobject only containing the second best model tm2=tm[2] #advanced: should return the same result as #initialize tm2= topmod(2,4,TRUE,0, liks = c(-2.2,-2.3), ncounts = c(2,1), modelbinaries = cbind(c(0,1,1,1),c(1,1,1,1)), betas = cbind(0:3,1:4), betas2 = cbind(c(0,5:7),5:8)) #update tm$addmodel(-2.5,c(1,0,0,1),1:2,5:6) #add another model #read out tm$lik() tm$ncount() tm$bool_binary() tm$betas()

[Package *BMS* version 0.3.4 Index]