rhierLinearModel {rpud} | R Documentation |
rhierLinearModel
implements a Gibbs Sampler for hierarchical linear models with a normal prior.
rhierLinearModel(Data, Prior, Mcmc, output)
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. |
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:
regdata
list of lists with X,y matrices for each of length(regdata) regressions
regdata[[i]]$X
X matrix for equation i
regdata[[i]]$y
y vector for equation i
Deltabar
nz x nvar matrix of prior means (def: 0)
A
nz x nz matrix for prior precision (def: .01I)
nu.e
d.f. parm for regression error variance prior (def: 3)
ssq
scale parm for regression error var prior (def: var(y_i))
nu
d.f. parm for Vbeta prior (def: nvar+3)
V
Scale location matrix for Vbeta prior (def: nu*I)
R
number of MCMC draws
keep
MCMC thinning parm: keep every keepth draw (def: 1)
chains
number of MCMC simulation chains for CODA
diagnostics
output
supported binary output format:
default
, bayesm
, or coda
.
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.
Chi Yau (based on R doc of rhierLinearModel
in bayesm
by Peter Rossi)
chi.yau@r-tutor.com
Rossi, Allenby and McCulloch:
Bayesian Statistics and Marketing Ch 3
http://www.perossi.org/home/bsm-1
## 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)