## Nothing to export
## I am not sure if this is a good idea after all...
`inla.model.wrapper` = function(
covariates = NULL,
model = c("joint"),
data = NULL,
Q = NULL,
precision = 1.0E8,
hyper = NULL,
initial = NULL,
prior = NULL,
param = NULL,
fixed = NULL,
...)
{
model = match.arg(model, several.ok = FALSE)
if (inla.one.of(model, "joint")) {
res = list()
res$model = "generic0"
if (is.character(covariates)) {
if (is.null(data)) {
covariates = eval.parent(parse(text=covariates))
} else {
covariates = eval(parse(text=covariates), data)
}
}
covariates = as.matrix(covariates)
n = dim(covariates)[1]
nb = dim(covariates)[2]
N = n+nb
if (is.null(Q) || any(dim(Q) != nb)) {
stop("Matrix Q is either null or has wrong dimension")
}
QQ = sparseMatrix(i=1:n, j=1:n, x=rep(precision, n), dims = c(N, N))
for(i in 1:n) {
cov.row = -precision * covariates[i, 1:nb, drop=FALSE]
QQ[(n+1):N, i] = cov.row
QQ[i, (n+1):N] = t(cov.row)
}
QQ[(n+1):N, (n+1):N] = precision * t(covariates) %*% covariates + Q
hyper = inla.set.hyper(model, "wrapper", hyper,
initial, fixed, prior, param)
ret = list(f = list(Cmatrix = QQ, hyper.default = hyper,
model = "generic", n = N, values = 1:N, rankdef = n))
class(ret) = "inla.wrapper.model"
return (ret)
} else {
stop("This should not happen.")
}
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.