logit.zellner.prior {BoomSpikeSlab}R Documentation

Zellner Prior for Logistic Regression

Description

A Zellner-style spike and slab prior for logistic regression models. See 'Details' for a definition.

Usage

LogitZellnerPrior(
    predictors,
    successes = NULL,
    trials = NULL,
    prior.success.probability = NULL,
    expected.model.size = 1,
    prior.information.weight = .01,
    diagonal.shrinkage = .5,
    optional.coefficient.estimate = NULL,
    max.flips = -1,
    prior.inclusion.probabilities = NULL)

Arguments

predictors

The design matrix for the regression problem. No missing data is allowed.

successes

The vector of responses, which can be 0/1, TRUE/FALSE, or 1/-1. This is only used to obtain the empirical overall success rate, so it can be left NULL if prior.success.probability is specified.

trials

A vector of the same length as successes, giving the number of trials for each success count (trials cannot be less than successes). If successes is binary (or NULL) then this can be NULL as well, signifying that there was only one trial per experiment.

prior.success.probability

The overal prior guess at the proportion of successes. This is used in two places. It is an input into the intercept term of the default optional.coefficient.estimate, and it is used as a weight for the prior information matrix. See 'Details'.

expected.model.size

A positive number less than ncol(x), representing a guess at the number of significant predictor variables. Used to obtain the 'spike' portion of the spike and slab prior.

prior.information.weight

A positive scalar. Number of observations worth of weight that should be given to the prior estimate of beta.

diagonal.shrinkage

The conditionally Gaussian prior for beta (the "slab") starts with a precision matrix equal to the information in a single observation. However, this matrix might not be full rank. The matrix can be made full rank by averaging with its diagonal. diagonal.shrinkage is the weight given to the diaonal in this average. Setting this to zero gives Zellner's g-prior.

optional.coefficient.estimate

If desired, an estimate of the regression coefficients can be supplied. In most cases this will be a difficult parameter to specify. If omitted then a prior mean of zero will be used for all coordinates except the intercept, which will be set to mean(y).

max.flips

The maximum number of variable inclusion indicators the sampler will attempt to sample each iteration. If negative then all indicators will be sampled.

prior.inclusion.probabilities

A vector giving the prior probability of inclusion for each variable. If NULL then a default set of probabilities is obtained by setting each element equal to min(1, expected.model.size / ncol(x)).

Details

A Zellner-style spike and slab prior for logistic regression. Denote the vector of coefficients by beta, and the vector of inclusion indicators by gamma. These are linked by the relationship beta[i] != 0 if gamma[i] = 1 and beta[i] == 0 if gamma[i] = 0. The prior is

beta | gamma ~ N(b, V),

gamma ~ Bernoulli(pi)

where pi is the vector of prior.inclusion.probabilities, and b is the optional.coefficient.estimate. Conditional on gamma, the prior information matrix is

V^{-1} = kappa * ((1 - alpha) * x^Twx / n + alpha * diag(x^Twx/n))

The matrix x^Twx is, for suitable choice of the weight vector w, the total Fisher information available in the data. Dividing by n gives the average Fisher information in a single observation, multiplying by kappa then results in kappa units of "average" information. This matrix is averaged with its diagonal to ensure positive definiteness.

In the formula above, kappa is prior.information.weight, alpha is diagonal.shrinkage, and w is a diagonal matrix with all elements set to prior.success.probability * (1 - prior.success.probability). The vector b and the matrix V^{-1} are both implicitly subscripted by gamma, meaning that elements, rows, or columsn corresponding to gamma = 0 should be omitted.

Value

Returns an object of class LogitZellnerPrior, which is a list with data elements encoding the selected prior values. It inherits from LogitPrior, which implies that it contains an element prior.success.probability.

This object is intended for use with logit.spike.

Author(s)

Steven L. Scott

References

Hugh Chipman, Edward I. George, Robert E. McCulloch, M. Clyde, Dean P. Foster, Robert A. Stine (2001), "The Practical Implementation of Bayesian Model Selection" Lecture Notes-Monograph Series, Vol. 38, pp. 65-134. Institute of Mathematical Statistics.


[Package BoomSpikeSlab version 1.2.4 Index]