# Test if glmcat works with ADJACENT gompertz CDF
test_that("glmcat works with ADJACENT gompertz CDF", {
expected_loglik <- -278.9917
tolerance <- 1e-5
result <- glmcat(
formula = Level ~ Age,
data = DisturbedDreams,
categories_order = c("Not.severe", "Severe.1", "Severe.2", "Very.severe"),
ratio = "adjacent",
cdf = "gompertz"
)
actual_loglik <- as.numeric(logLik(result))
expect_equal(actual_loglik, expected_loglik, tolerance = tolerance)
})
# Test if glmcat works with CUMULATIVE cauchy CDF
test_that("glmcat works with CUMULATIVE cauchy CDF", {
expected_loglik <- -279.8666
tolerance <- 1e-5
result <- glmcat(
formula = Level ~ Age,
data = DisturbedDreams,
categories_order = c("Not.severe", "Severe.1", "Severe.2", "Very.severe"),
ratio = "cumulative",
cdf = "cauchy"
)
actual_loglik <- as.numeric(logLik(result))
expect_equal(actual_loglik, expected_loglik, tolerance = tolerance)
})
# Test if glmcat works with SEQUENTIAL normal CDF
test_that("glmcat works with SEQUENTIAL normal CDF", {
expected_loglik <- -280.5465
tolerance <- 1e-5
result <- glmcat(
formula = Level ~ Age,
data = DisturbedDreams,
categories_order = c("Not.severe", "Severe.1", "Severe.2", "Very.severe"),
ratio = "sequential",
cdf = "normal"
)
actual_loglik <- as.numeric(logLik(result))
expect_equal(actual_loglik, expected_loglik, tolerance = tolerance)
})
# Test if glmcat works with reference logistic CDF
test_that("glmcat works with cumulative logistic CDF", {
expected_loglik <- -278.4682
tolerance <- 1e-5
result <- glmcat(
formula = Level ~ Age,
data = DisturbedDreams,
ratio = "cumulative",
cdf = "logistic"
)
actual_loglik <- as.numeric(logLik(result))
expect_equal(actual_loglik, expected_loglik, tolerance = tolerance)
})
# Test if glmcat assumes logistic as default CDF if not specified
test_that("glmcat assumes logistic as default CDF if not specified", {
result <- glmcat(
formula = Level ~ Age,
data = DisturbedDreams,
ref_category = "Very.severe",
ratio = "cumulative"
)
expect_true(result$cdf[1] == "logistic")
})
# Test if glmcat throws an error when ratio is not specified
test_that("glmcat throws an error when ratio is not specified", {
expect_error(glmcat(
formula = Level ~ Age,
data = DisturbedDreams,
ref_category = "Very.severe"
))
})
library(ordinal)
# Test if glmcat produces equivalent results to ordinal package
test_that("glmcat produces equivalent results to ordinal package", {
wine <- ordinal::wine
fm1 <- clm(rating ~ temp * contact, data = wine)
glm_cum1 <- glmcat(rating ~ temp * contact, data = wine, ratio = "cumulative")
expected_loglik <- as.numeric(logLik(fm1))
actual_loglik <- as.numeric(logLik(glm_cum1))
tolerance <- 1e-5
expect_equal(actual_loglik, expected_loglik, tolerance = tolerance)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.