Nothing
context("S-vine distributions")
set.seed(5)
bc <- bicop_dist("clay", 0, 3)
mrg <- univariateML::mlnorm(rnorm(20))
test_that("creating custom models (1d)", {
cop <- svinecop_dist(
list(),
rvine_structure(1),
p = 0,
out_vertices = 1,
in_vertices = 1
)
m <- svine_dist(list(mrg), cop)
expect_length(svine_sim(10, 1, m), 10)
cop <- svinecop_dist(
list(list(bc)),
rvine_structure(1),
p = 1,
out_vertices = 1,
in_vertices = 1
)
m <- svine_dist(list(mrg), cop)
expect_length(svine_sim(10, 1, m), 10)
cop <- svinecop_dist(
lapply(1:3, function(j) replicate(4 - j, bc, simplify = FALSE)),
rvine_structure(1),
p = 3,
out_vertices = 1,
in_vertices = 1
)
m <- svine_dist(list(mrg), cop)
expect_length(svine_sim(10, 1, m), 10)
})
test_that("creating custom models (multivariate)", {
mrgs <- lapply(1:4, function(j) mrg)
cop <- svinecop_dist(
lapply(1:3, function(j) replicate(4 - j, bc, simplify = FALSE)),
dvine_structure(1:4),
p = 0,
out_vertices = 4:1,
in_vertices = 1:4
)
m <- svine_dist(mrgs, cop)
expect_length(svine_sim(10, 1, m), 40)
cop <- svinecop_dist(
lapply(1:11, function(j) replicate(12 - j, bc, simplify = FALSE)),
dvine_structure(1:4),
p = 2,
out_vertices = 1:4,
in_vertices = 1:4
)
m <- svine_dist(mrgs, cop)
expect_length(svine_sim(10, 1, m), 40)
})
test_that("fitting models (1d)", {
x <- rnorm(100)
fit <- svine(x, p = 0)
expect_equal(unname(dim(svine_sim(10, 1, fit))), c(10, 1))
expect_equal(unname(dim(svine_sim(10, 1, fit, x))), c(10, 1))
expect_equal(unname(dim(svine_sim(10, 3, fit, x))), c(10, 1, 3))
fit <- svine(x, p = 3)
expect_equal(unname(dim(svine_sim(10, 1, fit))), c(10, 1))
expect_equal(unname(dim(svine_sim(10, 1, fit, x))), c(10, 1))
expect_equal(unname(dim(svine_sim(10, 3, fit, x))), c(10, 1, 3))
})
test_that("fitting models (multivariate)", {
u <- rbicop(50, bc)
x <- qexp(u)
fit <- svine(x, margin_families = c("exp", "norm"), p = 0)
AIC(fit)
expect_equal(unname(dim(svine_sim(10, 1, fit))), c(10, 2))
expect_equal(unname(dim(svine_sim(10, 1, fit, x))), c(10, 2))
expect_equal(unname(dim(svine_sim(10, 3, fit, x))), c(10, 2, 3))
expect_length(svine_loglik(x, fit), 1)
fit <- svine(x, margin_families = c("exp", "norm"), p = 3)
AIC(fit)
expect_gt(min(svine_sim(10, 1, fit)), 0)
expect_gt(min(svine_sim(10, 1, fit, x)), 0)
expect_gt(min(svine_sim(10, 5, fit, x)), 0)
fit2 <- svine(x,
p = 3,
margin_families = c("exp", "norm"),
cs_structure = fit$copula$cs_structure,
out_vertices = fit$copula$out_vertices,
in_vertices = fit$copula$in_vertices)
expect_equal(fit, fit2, tolerance = 0.01)
expect_silent(svine(x, p = 1, type = "D", margin_families = c("exp", "norm")))
expect_silent(svine(x, p = 2, type = "M", margin_families = c("exp", "norm")))
expect_error(svine(x, p = 1, type = "R", margin_families = c("exp", "norm")))
})
test_that("standard errors", {
u <- rbicop(50, bc)
x <- qexp(u)
fit <- svine(x, margin_families = c("std", "norm", "exp"), p = 0)
models <- svine_bootstrap_models(2, fit)
expect_identical(summary(models[[1]])$family, summary(fit)$family)
fit <- svine(x, margin_families = "empirical", p = 0)
models <- svine_bootstrap_models(2, fit)
expect_identical(summary(models[[1]])$family, summary(fit)$family)
})
test_that("print/summary", {
u <- rbicop(50, bc)
x <- qexp(u)
colnames(x) <- letters[1:2]
fit <- svine(x, margin_families = c("exp", "norm"), p = 0)
expect_output(print(fit))
expect_silent(sm <- summary(fit))
expect_length(sm, 2)
expect_s3_class(sm[[1]], "summary_df")
expect_s3_class(sm[[2]], "summary_df")
expect_equal(nrow(sm[[1]]), 2)
expect_equal(nrow(sm[[2]]), 1)
})
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.