
This method is a wrapper for INLA::inla
and provides
multiple enhancements.
Easy usage of spatial covariates and automatic construction of inla
projection matrices for (spatial) SPDE models. This feature is
accessible via the components
parameter. Practical examples on how to
use spatial data by means of the components parameter can also be found
by looking at the lgcp function's documentation.
Constructing multiple likelihoods is straight forward. See like for
more information on how to provide additional likelihoods to bru
using the ...
parameter list.
Support for non-linear predictors. See example below.
Log Gaussian Cox process (LGCP) inference is
available by using the cp
family or (even easier) by using the
lgcp function.
bru(components = ~Intercept(1), ..., options = list(), .envir = parent.frame())bru_rerun(result, options = list())
bru returns an object of class "bru". A bru
object inherits
from INLA::inla
(see the inla documentation for its properties) and
adds additional information stored in the bru_info
field.
A formula
-like specification of latent components.
Also used to define a default linear additive predictor. See
component()
for details.
Likelihoods, each constructed by a calling like()
, or named
parameters that can be passed to a single like()
call. Note that
all the arguments will be evaluated before calling like()
in order
to detect if they are like
objects. This means that
special arguments that need to be evaluated in the context of
response_data
or data
(such as Ntrials) may will only work that
way in direct calls to like()
.
A bru_options options object or a list of options passed
on to bru_options()
Environment for component evaluation (for when a non-formula specification is used)
A previous estimation object of class bru
Fabian E. Bachl bachlfab@gmail.com
bru_rerun
Continue the optimisation from a previously computed estimate.
# \donttest{
if (bru_safe_inla(multicore = FALSE)) {
# Simulate some covariates x and observations y
input.df <- data.frame(x = cos(1:10))
input.df <- within(input.df, y <- 5 + 2 * x + rnorm(10, mean = 0, sd = 0.1))
# Fit a Gaussian likelihood model
fit <- bru(y ~ x + Intercept, family = "gaussian", data = input.df)
# Obtain summary
fit$summary.fixed
}
if (bru_safe_inla(multicore = FALSE)) {
# Alternatively, we can use the like() function to construct the likelihood:
lik <- like(family = "gaussian", formula = y ~ x + Intercept, data = input.df)
fit <- bru(~ x + Intercept(1), lik)
fit$summary.fixed
}
# An important addition to the INLA methodology is bru's ability to use
# non-linear predictors. Such a predictor can be formulated via like()'s
# \code{formula} parameter. The z(1) notation is needed to ensure that
# the z component should be interpreted as single latent variable and not
# a covariate:
if (bru_safe_inla(multicore = FALSE)) {
z <- 2
input.df <- within(input.df, y <- 5 + exp(z) * x + rnorm(10, mean = 0, sd = 0.1))
lik <- like(
family = "gaussian", data = input.df,
formula = y ~ exp(z) * x + Intercept
)
fit <- bru(~ z(1) + Intercept(1), lik)
# Check the result (z posterior should be around 2)
fit$summary.fixed
}
# }
Run the code above in your browser using DataLab