inla.spde1.create.RdCreate an inla.spde1 model object.
inla.spde1.create(
mesh,
model = c("matern", "imatern", "matern.osc"),
param = NULL,
...
)
inla.spde1.matern(mesh, ...)
inla.spde1.imatern(mesh, ...)
inla.spde1.matern.osc(mesh, ...)The mesh to build the model on, as an inla.mesh()
object.
The name of the model.
Model specific parameters.
Additional parameters passed on to other methods.
An inla.spde1 object.
Note: This is an old spde object format retained for backwards
compatibility. Please use inla.spde2() models for new code.
This method constructs an object for SPDE models. Currently implemented:
model="matern"
$$(\kappa^2(u)-\Delta)^{\alpha/2}(\tau(u) $$$$ x(u))=W(u)$$
param:
alpha = 1 or 2
basis.T =
Matrix of basis functions for \(\log\tau(u)\)
basis.K = Matrix of basis functions for
\(\log\kappa^2(u)\)
model="imatern"
$$(-\Delta)^{\alpha/2}(\tau(u) $$$$ x(u))=W(u)$$
param:
alpha = 1 or 2
basis.T =
Matrix of basis functions for \(\log\tau(u)\)
if (FALSE) { # \dontrun{
n <- 100
field.fcn <- function(loc) (10 * cos(2 * pi * 2 * (loc[, 1] + loc[, 2])))
loc <- matrix(runif(n * 2), n, 2)
## One field, 2 observations per location
idx.y <- rep(1:n, 2)
y <- field.fcn(loc[idx.y, ]) + rnorm(length(idx.y))
mesh <- fmesher::fm_rcdt_2d_inla(loc, refine = list(max.edge = 0.05))
spde <- inla.spde1.create(mesh, model = "matern")
data <- list(y = y, field = mesh$idx$loc[idx.y])
formula <- y ~ -1 + f(field, model = spde)
result <- inla(formula, data = data, family = "normal")
## Plot the mesh structure:
plot(mesh)
} # }
if (FALSE) { # \dontrun{
if (require(rgl)) {
## Plot the posterior mean:
plot(mesh,
rgl = TRUE,
result$summary.random$field[, "mean"],
color.palette = colorRampPalette(c("blue", "green", "red"))
)
## Plot residual field:
plot(mesh,
rgl = TRUE,
result$summary.random$field[, "mean"] - field.fcn(mesh$loc),
color.palette = colorRampPalette(c("blue", "green", "red"))
)
}
} # }