Learn R Programming

LaplacesDemon (version 16.1.6)

dist.Zellner: Hyperprior-g Prior and Zellner's g-Prior

Description

These functions provide the density of the hyper-g prior (Liang et al., 2008), and both the density and random generation of Zellner's g-prior (Zellner, 1986).

Usage

dhyperg(g, alpha=3, log=FALSE)
dzellner(beta, g, sigma, X, log=FALSE)
rzellner(n, g, sigma, X)

Arguments

alpha

This is a positive scale hyperhyperparameter that is proper when \(\alpha > 2\). The default is alpha=3.

beta

This is regression effects \(\beta\), a vector of length \(J\).

g

This is hyperparameter \(g\), a positive scalar.

n

This is the number of random deviates to generate.

sigma

This is the residual standard deviation \(\sigma\), a positive scalar.

X

This is a full-rank \(N \times J\) design matrix \(\textbf{X}\) for \(N\) records and \(J\) predictors, where \(J+1 < N\). Zellner's g-prior has been extended (elsewhere) via singular value decomposition (SVD) to the case where \(J > N\).

log

Logical. If log=TRUE, then the logarithm of the density is returned.

Value

dhyperg gives the density of the hyper-g prior of Liang et al. (2008), dzellner gives the density of Zellner's g-prior, and rzellner generates random deviates.

Details

  • Application: Continuous Multivariate

  • Density: \(p(\theta) = \frac{1}{(2\pi)^{J/2}|(g \sigma^2(\textbf{X}^T \textbf{X})^{-1})^{-1}|^{1/2}} \exp(-\frac{1}{2}(\theta - \mu)'(g \sigma^2(\textbf{X}^T \textbf{X})^{-1})^{-1}(\theta - \mu))\)

  • Inventor: Zellner, A. (1986)

  • Notation 1: \(\theta \sim \mathrm{N}_J(0, g \sigma^2(\textbf{X}^T \textbf{X})^{-1})\)

  • Notation 2: \(p(\theta) = \mathrm{N}_J(\theta | g, \sigma^2, \textbf{X})\)

  • Parameter 1: location parameter \(\beta\)

  • Parameter 2: scale parameter \(g > 0\)

  • Parameter 3: scale parameter \(\sigma^2 > 0\)

  • Mean:

  • Variance:

  • Mode:

Zellner's g-prior is a popular, data-dependent, elliptical, improper, least-informative prior distribution on regression effects \(\beta\) in a Gaussian regression model. It is a particular form in the conjugate Normal-Gamma family. Zellner's g-prior is also used for estimating Bayes factors (for hypothesis testing) with a simpler form, as well as in model selection and variable selection. The marginal posterior distribution of regression effects \(\beta\) is multivariate t.

One of many nice properties of Zellner's g-prior is that it adapts automatically to near-collinearity between different predictors. Zellner's g-prior puts most of its prior mass in the direction that causes the regression coefficients of correlated predictors to be smoothed away from each other. When coupled with model selection, Zellner's g-prior discourages highly collinear predictors from entering the models simultaneously by inducing a negative correlation between the coefficients. However, when it is desirable for collinear predictors to enter simultaneously, a modification has been proposed (though not included here) in which \((\textbf{X}^T \textbf{X})^{-1}\) is replaced with \((\textbf{X}^T \textbf{X})^\lambda\). For more information, see Krishna et al. (2009).

For variable selection, large values of \(g\), with a prior mean of zero for \(\beta\), encourage models with few, large coefficients. Conversely, small values of \(g\) encourage saturated models with many, small coefficients.

The design matrix \(\textbf{X}\) is converted to Fisher's information matrix, which is used as a covariance matrix for \(\beta\). This is computationally efficient, because each element of the covariance matrix does not need to be estimated as a parameter. When \(\textbf{X}\) is nearly singular, regression effects \(\beta\) may be poorly estimated.

Hyperparameter \(g\) acts as an inverse relative prior sample size, or as a dimensionality penalty. Zellner (1986) recommended that a hyperprior distribution is assigned to \(g\) so that it is estimated from the data, although in practice \(g\) has often been fixed, usually to \(N\) when no information is available, since it has the interpretation of adding prior information equivalent to one observation. A variety of hyperpriors have been suggested for \(g\), such as in Bove and Held (2011), Liang et al. (2008), and Maruyama and George (2011). \(g\) becomes diffuse as it approaches infinity, and the Bayes factor approaches zero. The hyper-g prior of Liang et al. (2008) is proper when \(\alpha > 2\), and any value in the interval \((2,4]\) may be reasonable.

References

Bove, D.S. and Held, L. (2011). "Hyper-g Priors for Generalized Linear Models". Bayesian Analysis, 6(3), p. 387--410.

Krishna, A., Bondell, H.D., and Ghosh, S.K. (2009). "Bayesian Variable Selection Using an Adaptive Powered Correlation Prior". Journal of Statistical Planning Inference, 139(8), p. 2665-2674..

Liang, F., Paulo, R., Molina, G., Clyde, M.A., and Berger, J.O. (2008). "Mixtures of g Priors for Bayesian Variable Selection". Journal of the American Statistical Association, 103, p. 410--423.

Maruyama, Y. and George, E.I. (2011). "Fully Bayes Factors with a Generalised g-Prior". Annals of Statistics, 39, p. 2740--2765.

Zellner, A. (1986). "On Assessing Prior Distributions and Bayesian Regression Analysis with g-Prior Distributions". In Bayesian Inference and Decision Techniques: Essays in Honor of Bruno de Finetti, p. 233--243. Elsevier: Amsterdam, North Holland.

See Also

BayesFactor and dmvt

Examples

Run this code
# NOT RUN {
library(LaplacesDemon)
set.seed(667)
beta <- rnorm(10)
g <- 100
sigma <- 2
X <- cbind(1,matrix(rnorm(100*9),100,9))
dhyperg(g, alpha=3)
dzellner(beta, g, sigma, X)
rzellner(1, g, sigma, X)
# }

Run the code above in your browser using DataLab