context("LCA test")
library(greed)
library(ggplot2)
set.seed(1234)
test_that("LCA icl opt", {
N <- 500
theta <- list(
matrix(c(0.1, 0.9, 0.9, 0.1, 0.8, 0.2, 0.05, 0.95), ncol = 2, byrow = TRUE),
matrix(c(0.95, 0.05, 0.3, 0.7, 0.05, 0.95, 0.05, 0.95), ncol = 2, byrow = TRUE),
matrix(c(0.95, 0.04, 0.01, 0.9, 0.09, 0.01, 0.01, 0.01, 0.98, 0.9, 0.05, 0.05), ncol = 3, byrow = TRUE),
matrix(c(1, 0, 0, 1, 1, 0, 0, 1), ncol = 2, byrow = TRUE)
)
lca.data <- rlca(N, rep(1 / 4, 4), theta)
model <- Lca()
data <- greed:::preprocess(model, lca.data$x)
cl <- lca.data$cl
i <- sample(500, 1)
newcl <- sample(setdiff(1:lca.data$K, cl[i]), 1)
expect_lte(greed:::test_swap(model, data, cl, i, newcl), 10^-6)
expect_lte(greed:::test_merge(model, data, cl, 1, 4), 10^-6)
expect_lte(max(abs(greed:::test_merge_correction(model, data, cl, 1, 4))), 10^-6)
})
test_that("LCA icl opt", {
N <- 200
theta <- list(
matrix(c(0.1, 0.9, 0.9, 0.1, 0.8, 0.2, 0.05, 0.95), ncol = 2, byrow = TRUE),
matrix(c(0.95, 0.05, 0.3, 0.7, 0.05, 0.95, 0.05, 0.95), ncol = 2, byrow = TRUE),
matrix(c(0.95, 0.04, 0.01, 0.9, 0.09, 0.01, 0.01, 0.01, 0.98, 0.9, 0.05, 0.05), ncol = 3, byrow = TRUE),
matrix(c(0.9, 0.1, 0.1, 0.9, 0.9, 0.1, 0.1, 0.9), ncol = 2, byrow = TRUE)
)
lca.data <- rlca(N, rep(1 / 4, 4), theta)
sol <- greed(lca.data$x, model = Lca())
expect_gte(sol@K, 3)
co <- coef(sol)
expect_equal(nrow(co$Thetak[[1]]), sol@K)
expect_true(is.ggplot(plot(sol, type = "tree")))
expect_true(is.ggplot(plot(sol, type = "path")))
expect_true(is.ggplot(plot(sol, type = "front")))
expect_true(methods::is(plot(sol, type = "marginals"), "gtable"))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.