SimulateNestedRegressionData <- function() {
beta.hyperprior.mean <- c(8, 6, 7, 5)
xdim <- length(beta.hyperprior.mean)
beta.hyperprior.variance <-
rWishart(2 * xdim, diag(rep(1, xdim)), inverse = TRUE)
number.of.groups <- 27
nobs.per.group = 23
beta <- rmvn(number.of.groups,
beta.hyperprior.mean,
beta.hyperprior.variance)
residual.sd <- 2.4
X <- cbind(1, matrix(rnorm(number.of.groups * (xdim - 1) * nobs.per.group),
ncol = xdim - 1))
group.id <- rep(1:number.of.groups, len = nrow(X))
y.hat <- numeric(nrow(X))
for (i in 1:nrow(X)) {
y.hat[i] = sum(X[i, ] * beta[group.id[i], ])
}
y <- rnorm(length(y.hat), y.hat, residual.sd)
suf <- BoomSpikeSlab:::.RegressionSufList(X, y, group.id)
return(list(beta.hyperprior.mean = beta.hyperprior.mean,
beta.hyperprior.variance = beta.hyperprior.variance,
beta = beta,
residual.sd = residual.sd,
X = X,
y = y,
group.id = group.id,
suf = suf))
}
d <- SimulateNestedRegressionData()
model <- NestedRegression(suf = d$suf, niter = 500)
Run the code above in your browser using DataLab