| inla.spde1.create {INLA} | R Documentation |
Create 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, ...)
mesh |
The mesh to build the model on, as an |
model |
The name of the model. |
param |
Model specific parameters. |
... |
Additional parameters passed on to other methods. |
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)
(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)
(-Delta)^(alpha/2) (tau(u) x(u)) = W(u)
param:
alpha = 1 or 2
basis.T =
Matrix of basis functions for log tau(u)
An inla.spde1 object.
Finn Lindgren finn.lindgren@gmail.com
inla.spde2.matern(), inla.mesh.2d(),
inla.mesh.basis()
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 = inla.mesh.create(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 (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")))
}