skip_on_cran()
test_that("model_parameters - cgam", {
skip_if_not(getRversion() >= "4.0.0")
skip_if_not_installed("cgam")
# cgam -----------------------
data(cubic, package = "cgam")
# model
m_cgam <- cgam::cgam(formula = y ~ cgam::incr.conv(x), data = cubic)
df_cgam <- model_parameters(m_cgam)
expect_equal(
df_cgam,
data.frame(
Parameter = "(Intercept)",
Coefficient = 1.187,
SE = 0.3054,
CI = 0.95,
CI_low = 0.569520101908619,
CI_high = 1.80447989809138,
t = 3.8868,
df_error = 39.5,
p = 4e-04,
stringsAsFactors = FALSE
),
tolerance = 0.01,
ignore_attr = TRUE
)
})
# cgamm -----------------------
test_that("model_parameters - cgamm", {
skip_if_not(getRversion() >= "4.0.0")
skip_if_not_installed("cgam")
# setup
set.seed(123)
# simulate a balanced data set with 30 clusters
# each cluster has 30 data points
n <- 30
m <- 30
# the standard deviation of between cluster error terms is 1
# the standard deviation of within cluster error terms is 2
sige <- 1
siga <- 2
# generate a continuous predictor
x <- 1:(m * n)
for (i in 1:m) {
x[(n * (i - 1) + 1):(n * i)] <- round(runif(n), 3)
}
# generate a group factor
group <- trunc(0:((m * n) - 1) / n) + 1
# generate the fixed-effect term
mu <- 10 * exp(10 * x - 5) / (1 + exp(10 * x - 5))
# generate the random-intercept term asscosiated with each group
avals <- rnorm(m, 0, siga)
# generate the response
y <- 1:(m * n)
for (i in 1:m) {
y[group == i] <- mu[group == i] + avals[i] + rnorm(n, 0, sige)
}
# use REML method to fit the model
ans <- cgam::cgamm(formula = y ~ cgam::s.incr(x) + (1 | group), reml = TRUE)
df <- suppressWarnings(model_parameters(ans))
expect_equal(
df,
data.frame(
Parameter = c("(Intercept)", "cgam::s.incr(x)"),
Coefficient = c(5.5174, NA),
SE = c(0.3631, NA),
CI = c(0.95, NA),
CI_low = c(4.80476838465533, NA),
CI_high = c(6.23003161534467, NA),
`t / F` = c(15.1954, NA),
df = c(NA, 8.4),
df_error = c(890.4, NA),
p = c(0, 0),
Component = c("conditional", "smooth_terms"),
stringsAsFactors = FALSE
),
tolerance = 0.01,
ignore_attr = TRUE
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.