Likelihood construction for usage with bru()
Likelihood construction for usage with bru()
like( formula = . ~ ., family = "gaussian", data = NULL, mesh = NULL, E = NULL, Ntrials = NULL, samplers = NULL, ips = NULL, domain = NULL, include = NULL, exclude = NULL, allow_latent = FALSE, allow_combine = FALSE, options = list() ) like_list(...) ## S3 method for class 'list' like_list(object, envir = NULL, ...) ## S3 method for class 'bru_like' like_list(..., envir = NULL) ## S3 method for class 'bru_like_list' x[i]
formula |
a |
family |
A string identifying a valid |
data |
Likelihood-specific data, as a |
mesh |
An inla.mesh object. |
E |
Exposure parameter for family = 'poisson' passed on to
|
Ntrials |
A vector containing the number of trials for the 'binomial'
likelihood. Default value is rep(1, n.data).
Default taken from |
samplers |
Integration domain for 'cp' family. |
ips |
Integration points for 'cp' family. Overrides |
domain |
Named list of domain definitions. |
include |
Character vector of component labels that are needed by the predictor expression; Default: NULL (include all components that are not explicitly excluded) |
exclude |
Character vector of component labels that are not used by the
predictor expression. The exclusion list is applied to the list
as determined by the |
allow_latent |
logical. If |
allow_combine |
logical; If |
options |
A bru_options options object or a list of options passed
on to |
... |
For |
object |
A list of |
envir |
An optional environment for the new |
x |
|
i |
indices specifying elements to extract |
like_list
: Combine a bru_like
likelihoods
into a bru_like_list
object
like_list.list
: Combine a list of bru_like
likelihoods
into a bru_like_list
object
like_list.bru_like
: Combine several bru_like
likelihoods
into a bru_like_list
object
A likelihood configuration which can be used to parameterize bru()
.
Fabian E. Bachl bachlfab@gmail.com
if (bru_safe_inla()) { # The like function's main purpose is to set up models with multiple likelihoods. # The following example generates some random covariates which are observed through # two different random effect models with different likelihoods # Generate the data set.seed(123) n1 <- 200 n2 <- 10 x1 <- runif(n1) x2 <- runif(n2) z2 <- runif(n2) y1 <- rnorm(n1, mean = 2 * x1 + 3) y2 <- rpois(n2, lambda = exp(2 * x2 + z2 + 3)) df1 <- data.frame(y = y1, x = x1) df2 <- data.frame(y = y2, x = x2, z = z2) # Single likelihood models and inference using bru are done via cmp1 <- y ~ -1 + Intercept(1) + x fit1 <- bru(cmp1, family = "gaussian", data = df1) summary(fit1) cmp2 <- y ~ -1 + Intercept(1) + x + z fit2 <- bru(cmp2, family = "poisson", data = df2) summary(fit2) # A joint model has two likelihoods, which are set up using the like function lik1 <- like("gaussian", formula = y ~ x + Intercept, data = df1) lik2 <- like("poisson", formula = y ~ x + z + Intercept, data = df2) # The union of effects of both models gives the components needed to run bru jcmp <- ~ x + z + Intercept jfit <- bru(jcmp, lik1, lik2) # Compare the estimates p1 <- ggplot() + gg(fit1$summary.fixed, bar = TRUE) + ylim(0, 4) + ggtitle("Model 1") p2 <- ggplot() + gg(fit2$summary.fixed, bar = TRUE) + ylim(0, 4) + ggtitle("Model 2") pj <- ggplot() + gg(jfit$summary.fixed, bar = TRUE) + ylim(0, 4) + ggtitle("Joint model") multiplot(p1, p2, pj) }
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.