gprior-class {BMS}R Documentation

Class "gprior"


An object pertaining to a coefficient prior

Objects from the Class

A gprior object holds descriptions and subfunctions pertaining to coefficent priors. Functions such as bms or zlm rely on this class to 'convert' the output of OLS results into posterior expressions for a Bayesian Linear Model. Post-processing functions such as density.bma also resort to gprior objects.
There are currently three coefficient prior structures built into the BMS package, generated by the following functions (cf. Feldkircher and Zeugner, 2009) :
gprior.constg.init: creates a Zellner's g-prior object with constant g.
gprior.eblocal.init: creates an Empricial Bayes Zellner's g-prior.
gprior.hyperg.init: creates a hyper g-prior with a Beta-prior on the shrinakge parameter.
The following describes the necessary slots



A string with a human-readable identifier of the prior.


Boolean whether the gprior relies on a constant scalar g (that is not dependent on a model)


Boolean for whether to collect posterior statistics on shrinkage.


Shold hold the value of g when is.constant==TRUE.


A list with a least two sub-functions:

just.loglik(ymy, k, ...):

returns scalar posterior log-likelihood based on residual sum of squares ymy and number of parameters k

lprob.all(ymy, k, bhat, diag.inverse, ...):

Takes output from an OLS model (bhat: OLS coefficients, diag.inverse: diagonal of the matrix inv(t(X)*X)), and returns a list with log-likelihood and posterior moments.


As for now, there are no methods defined with class "gprior" in the signature.


Martin Feldkircher and Stefan Zeugner


Feldkircher, M. and S. Zeugner (2009): Benchmark Priors Revisited: On Adaptive Shrinkage and the Supermodel Effect in Bayesian Model Averaging, IMF Working Paper 09/202.

See Also

bms and zlm for creating bma or zlm objects.
Check the appendix of vignette(BMS) for a more detailed description of built-in priors.
Check for examples.


mm1=bms(datafls[,1:10], g="EBL")
gg=mm1$ # is the g-prior object, augmented with some posterior statistics

mm2=bms(datafls[,1:10], g=gg) #produces the same result

mm3=bms(datafls[,1:10], g=BMS:::.gprior.eblocal.init) #this passes BMS's internal Empirical Bayes g-prior object as the coefficient prior - any other obejct might be used as well

[Package BMS version 0.3.1 Index]