inla.spde1.create {INLA} | R Documentation

## Old SPDE model objects for INLA

### Description

Create an `inla.spde1` model object.

### Usage

    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, ...)

### Arguments

`mesh` | The mesh to build the model on, as an `inla.mesh()` object.
`model` | The name of the model.
`param` | Model specific parameters.
`...` | Additional parameters passed on to other methods.

### Details

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)`

### Value

An `inla.spde1` object.

### Author(s)

Finn Lindgren finn.lindgren@gmail.com

### See Also

`inla.spde2.matern()`, `inla.mesh.2d()`, `inla.mesh.basis()`

### Examples

    ## Not run:
    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)

    ## End(Not run)
    ## Not run:
    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"))
        )
    }

    ## End(Not run)

[Package INLA version 26.08.22 Index]