Nothing
test_that("bru: factor component", {
skip_on_cran()
local_bru_safe_inla()
# Required for reproducible predict() and generate() output.
set.seed(1234L)
input.df <- data.frame(x = cos(1:10), zz = rep(c(1, 10), each = 5))
input.df <- within(input.df, y <- 5 + 2 * cos(1:10) +
rnorm(10, mean = 0, sd = 1)[zz] +
rnorm(10, mean = 0, sd = 0.1))
# Fit a model with fixed effect 'x' and intercept 'Intercept'
fit <- bru(y ~ x + z(zz, model = "iid", mapper = bru_mapper_index(10)),
family = "gaussian", data = input.df
)
# Predict posterior statistics of 'x'
skip_if_not_installed("sn")
xpost <- predict(
fit,
newdata = NULL,
formula = ~ x_latent + fit$summary.random$z$mean[1],
n.samples = 5,
seed = 12345L
)
xpost2 <- predict(
fit,
newdata = NULL,
formula = ~ {
tmp <- c(
a = x_latent,
b = exp(x_latent)
)
c(tmp, a_b = sum(tmp), c = as.vector(diff(tmp)))
},
n.samples = 5,
seed = 12345L
)
xpost3 <- predict(
fit,
newdata = NULL,
formula = ~ {
tmp <- c(
a = x_latent,
b = exp(x_latent)
)
data.frame(A = 2, B = tmp, C = c(sum(tmp), as.vector(diff(tmp))))
},
n.samples = 5,
seed = 12345L
)
# The default statistics include mean, standard deviation,
# the 2.5% quantile, the median, the 97.5% quantile
expect_equal(is.data.frame(xpost), TRUE)
expect_equal(nrow(xpost), 1)
expect_equal(is.data.frame(xpost2), TRUE)
expect_equal(nrow(xpost2), 4)
expect_equal(rownames(xpost2), c("a", "b", "a_b", "c"))
xipost <- generate(fit,
newdata = NULL,
formula = ~ c(
Intercept = Intercept_latent,
x = x_latent
),
n.samples = 5,
seed = 12345L
)
expect_equal(is.matrix(xipost), TRUE)
expect_equal(rownames(xipost), c("Intercept", "x"))
# Evaluate effect with _eval feature
xpost4 <- generate(
fit,
newdata = NULL,
formula = ~ c(
z_eval(c(1, 2, 11, 12, 12)),
z_eval(c(1, 2, 11, 12, 12))
),
n.samples = 5,
seed = 12345L
)
# The first four rows should equal the last 5 rows.
expect_equal(
xpost4[1:5, , drop = FALSE],
xpost4[6:10, , drop = FALSE]
)
# The index 12 values should be equal.
expect_equal(
xpost4[4, , drop = FALSE],
xpost4[5, , drop = FALSE]
)
# The columns should all different values
expect_equal(
sum(xpost4[, 1] == xpost4[, 2]),
0
)
xpost5 <- predict(
fit,
newdata = NULL,
formula = ~ z_eval(c(1, 11)) * Precision_for_z^0.5,
n.samples = 500,
seed = 12345L
)
# sd for z(11) should be close to 1
expect_equal(mean(xpost5[2, "sd"]),
1,
tolerance = hitol
)
})
test_that("bru: predict with _eval", {
skip_on_cran()
local_bru_safe_inla()
# Required for reproducible predict() and generate() output.
set.seed(1234L)
data <- data.frame(
z = rnorm(5),
u = 1:5
)
u_mapper <- bru_mapper(
fm_mesh_1d(
seq(1, 5, length.out = 51)
),
indexed = FALSE
)
fit <- bru(
z ~ -1 + fun(u, model = "rw2", mapper = u_mapper),
family = "gaussian",
data = data
)
skip_if_not_installed("sn")
pred <- predict(
fit,
newdata = data.frame(u = seq(-1, 6, by = 0.1)),
formula = ~ data.frame(
A = fun,
B = fun_eval(u)
)
)
expect_equal(pred$B, pred$A)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.