rhierLinearModel {rpud}R Documentation

Gibbs Sampler for Hierarchical Linear Model

Description

rhierLinearModel implements a Gibbs Sampler for hierarchical linear models with a normal prior.

Usage

rhierLinearModel(Data, Prior, Mcmc, output)

Arguments

Data

list(regdata,Z) (Z optional).

Prior

list(Deltabar,A,nu.e,ssq,nu,V) (optional).

Mcmc

list(R,keep,chains) (R required).

output

binary output format.

Details

Model: length(regdata) regression equations.
y_i = X_ibeta_i + e_i. e_i ~ N(0,tau_i). nvar X vars in each equation.

Priors:
tau_i ~ nu.e*ssq_i/χ^2_{nu.e}. tau_i is the variance of e_i.
beta_i ~ N(ZDelta[i,],V_{beta}).
Note: ZDelta is the matrix Z * Delta; [i,] refers to ith row of this product.

vec(Delta) given V_{beta} ~ N(vec(Deltabar),V_{beta} (x) A^{-1}).
V_{beta} ~ IW(nu,V).
Delta, Deltabar are nz x nvar. A is nz x nz. V_{beta} is nvar x nvar.

Note: The default of Z is iota(nreg x 1).

List arguments contain:

Value

For default format: a list containing

betadraw

R/keep x nreg x nvar array of individual regression coef draws

taudraw

R/keep x nreg array of error variance draws

Deltadraw

R/keep x nz x nvar array of Deltadraws

Vbetadraw

R/keep x nvar*nvar array of Vbeta draws


For bayesm format: a list containing

betadraw

nreg x nvar x R/keep array of individual regression coef draws

taudraw

R/keep x nreg array of error variance draws

Deltadraw

R/keep x nz x nvar array of Deltadraws

Vbetadraw

R/keep x nvar*nvar array of Vbeta draws


For CODA output format: A list of CODA compatible simulation chains in default format. Only the upper triangle of each VbetaDraw sample is kept for coda diagnostics.

Author(s)

Chi Yau (based on R doc of rhierLinearModel in bayesm by Peter Rossi)
chi.yau@r-tutor.com

References

Rossi, Allenby and McCulloch:
Bayesian Statistics and Marketing Ch 3
http://www.perossi.org/home/bsm-1

Examples

## Not run: 
library(rpud)
data.path <- file.path(path.package(package="rpud"), "runit/data")

#################################################        
# sample data

Z <- read.table(
        file.path(data.path, "rhierlm-n100-z.txt"), 
        header=FALSE)
Z <- as.matrix(Z)

data <- read.table(
        file.path(data.path, "rhierlm-n100-data.txt"), 
        header=FALSE)
data <- as.matrix(data)

regkey <- unique(data[,1])
colvar <- 3:ncol(data)

regdata <- NULL
for (reg in regkey) {
    
    filter <- (data[,1]==reg)
    y <- data[filter,2]
    X <- data[filter,colvar]
    
    regdata[[reg]] <- list(y=y,X=X)
}

# parameters
R <- 1000
keep <- 1

Data <- list(regdata=regdata,Z=Z)
Mcmc <- list(R=R,keep=keep)

set.seed(66)
out<-rpud::rhierLinearModel(Data=Data,Mcmc=Mcmc,output="bayesm")

library(bayesm)
cat("\n*** Summary of Delta Draws ***",fill=TRUE)
summary(out$Deltadraw)

cat("\n*** Summary of Vbeta Draws ***",fill=TRUE)
summary(out$Vbetadraw)

## End(Not run)

[Package rpud version 0.7.0 Index]