Skip to contents

Takes a fitted bru object produced by bru() or lgcp() and creates various summaries from it.

Usage

# S3 method for class 'bru'
summary(object, verbose = FALSE, ...)

# S3 method for class 'summary_bru'
print(x, ...)

Arguments

object

An object obtained from a bru() or lgcp() call

verbose

logical; If TRUE, include more details of the component definitions. If FALSE, only show basic component definition information. Default: FALSE

...

arguments passed on to component summary functions, see summary.bru_comp().

x

An object to be printed

Examples

# \donttest{
if (bru_safe_inla()) {
  # 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(1), family = "gaussian", data = input.df)

  # Obtain summary
  fit$summary.fixed
}
#>               mean         sd 0.025quant 0.5quant 0.975quant     mode
#> x         2.038504 0.05913688   1.920333 2.038505   2.156669 2.038505
#> Intercept 4.993677 0.04181015   4.910128 4.993678   5.077219 4.993678
#>                    kld
#> x         5.782666e-06
#> Intercept 5.782929e-06


if (bru_safe_inla()) {
  # Alternatively, we can use the bru_obs() function to construct the
  # likelihood:

  lik <- bru_obs(family = "gaussian",
              formula = y ~ x + Intercept,
              data = input.df)
  fit <- bru(~ x + Intercept(1), lik)
  fit$summary.fixed
}
#>               mean         sd 0.025quant 0.5quant 0.975quant     mode
#> x         2.038504 0.05913688   1.920333 2.038505   2.156669 2.038505
#> Intercept 4.993677 0.04181015   4.910128 4.993678   5.077219 4.993678
#>                    kld
#> x         5.782666e-06
#> Intercept 5.782929e-06

# An important addition to the INLA methodology is bru's ability to use
# non-linear predictors. Such a predictor can be formulated via bru_obs()'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()) {
  z <- 2
  input.df <- within(input.df, {
    y <- 5 + exp(z) * x + rnorm(10, mean = 0, sd = 0.1)
  })
  lik <- bru_obs(
    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
}
#>               mean          sd 0.025quant 0.5quant 0.975quant     mode
#> z         2.002557 0.007629192   1.987312 2.002557   2.017802 2.002557
#> Intercept 5.039049 0.039957915   4.959202 5.039049   5.118890 5.039049
#>                    kld
#> z         5.816565e-06
#> Intercept 5.816332e-06
# }