bayescopulaglm {bayescopulareg}R Documentation

Sample from Bayesian copula GLM

Description

Sample from a GLM via Bayesian copula regression model. Uses random-walk Metropolis to update regression coefficients and dispersion parameters. Assumes Inverse Wishart prior on augmented data.

Usage

bayescopulaglm(
  formula.list,
  family.list,
  data,
  histdata = NULL,
  b0 = NULL,
  c0 = NULL,
  alpha0 = NULL,
  gamma0 = NULL,
  Gamma0 = NULL,
  S0beta = NULL,
  sigma0logphi = NULL,
  v0 = NULL,
  V0 = NULL,
  beta0 = NULL,
  phi0 = NULL,
  M = 10000,
  burnin = 2000,
  thin = 1,
  adaptive = TRUE
)

Arguments

formula.list

A J-dimensional list of formulas giving how the endpoints are related to the covariates

family.list

A J-dimensional list of families giving how each endpoint is distributed. See help(family)

data

A data frame containing all response variables and covariates. Variables must be named.

histdata

Optional historical data set for power prior on β, φ

b0

Optional power prior hyperparameter. Ignored if is.null(histdata). Must be a number between (0, 1] if histdata is not NULL

c0

A J-dimensional vector for β \mid φ prior covariance. If NULL, sets c_0 = 10000 for each endpoint

alpha0

A J-dimensional vector giving the shape hyperparameter for each dispersion parameter on the prior on φ. If NULL sets α_0 = .01 for each dispersion parameter

gamma0

A J-dimensional vector giving the rate hyperparameter for each dispersion parameter on the prior on φ. If NULL sets α_0 = .01 for each dispersion parameter

Gamma0

Initial value for correlation matrix. If NULL defaults to the correlation matrix from the responses.

S0beta

A J-dimensional list for the covariance matrix for random walk metropolis on beta. Each matrix must have the same dimension as the corresponding regression coefficient. If NULL, uses solve(crossprod(X))

sigma0logphi

A J-dimensional vector giving the standard deviation on \log(φ) for random walk metropolis. If NULL defaults to 0.1

v0

An integer scalar giving degrees of freedom for Inverse Wishart prior. If NULL defaults to J + 2

V0

An integer giving inverse scale parameter for Inverse Wishart prior. If NULL defaults to diag(.001, J)

beta0

A J-dimensional list giving starting values for random walk Metropolis on the regression coefficients. If NULL, defaults to the GLM MLE

phi0

A J-dimensional vector giving initial values for dispersion parameters. If NULL. Dispersion parameters will always return 1 for binomial and Poisson models

M

Number of desired posterior samples after burn-in and thinning

burnin

burn-in parameter

thin

post burn-in thinning parameter

adaptive

logical indicating whether to use adaptive random walk MCMC to estimate parameters. This takes longer, but generally has a better acceptance rate

Value

A named list. ["betasample"] gives a J-dimensional list of sampled coefficients as matrices. ["phisample"] gives a M \times J matrix of sampled dispersion parameters. ["Gammasample"] gives a J \times J \times M array of sampled correlation matrices. ["betaaccept"] gives a M \times J matrix where each row indicates whether the proposal for the regression coefficient was accepted. ["phiaccept"] gives a M \times J matrix where each row indicates whether the proposal for the dispersion parameter was accepted

Examples

set.seed(1234)
n <- 100
M <- 100

x <- runif(n, 1, 2)
y1 <- 0.25 * x + rnorm(100)
y2 <- rpois(n, exp(0.25 * x))

formula.list <- list(y1 ~ 0 + x, y2 ~ 0 + x)
family.list <- list(gaussian(), poisson())
data = data.frame(y1, y2, x)

## Perform copula regression sampling with default
## (noninformative) priors
sample <- bayescopulaglm(
  formula.list, family.list, data, M = M, burnin = 0, adaptive = F
)
## Regression coefficients
summary(do.call(cbind, sample$betasample))

## Dispersion parameters
summary(sample$phisample)

## Posterior mean correlation matrix
apply(sample$Gammasample, c(1,2), mean)

## Fraction of accepted betas
colMeans(sample$betaaccept)

## Fraction of accepted dispersion parameters
colMeans(sample$phiaccept)

[Package bayescopulareg version 0.1.3 Index]