Nothing
test_that("duplicate event times are rejected by default and deterministic jitter is opt-in", {
ts <- c(0.1, 0.1, 0.35, 0.8, 1.4)
ms <- c(3.0, 3.1, 3.2, 3.1, 3.4)
init <- c(0.6, 0.2, 0.4, 0.08, 1.5)
expect_error(
maxLikelihoodETAS(ts, ms, 3, maxTime = 2, initval = init),
"duplicate event times detected"
)
fit <- maxLikelihoodETAS(ts, ms, 3, maxTime = 2, initval = init,
handle_ties = "jitter")
expect_true(isTRUE(attr(fit, "tie_handling")$jittered))
expect_gt(fit$params["c"], attr(fit, "c_lower"))
expect_true(is.finite(fit$loglik))
})
test_that("c_lower is enforced in MLE and MCMC", {
ts <- c(0.1, 0.3, 0.7, 1.2, 1.8, 2.4)
ms <- c(3.0, 3.1, 3.2, 3.1, 3.4, 3.3)
bad_init <- c(0.5, 0.2, 0.4, 0.05, 1.5)
good_init <- c(0.5, 0.2, 0.4, 0.2, 1.5)
expect_error(
maxLikelihoodETAS(ts, ms, 3, maxTime = 3, initval = bad_init, c_lower = 0.1),
"c must be greater than c_lower"
)
fit <- maxLikelihoodETAS(ts, ms, 3, maxTime = 3,
initval = good_init, c_lower = 0.1)
expect_gt(fit$params["c"], 0.1)
set.seed(42)
samples <- estimateETAS(ts, ms, 3, maxTime = 3, sims = 8, burnin = 0,
initval = good_init, c_lower = 0.1)
expect_true(all(samples$c > 0.1))
})
test_that("reported MLE log-likelihood equals likelihood at returned parameters", {
ts <- c(0.1, 0.25, 0.55, 0.9, 1.4, 2.0)
ms <- c(3.0, 3.2, 3.1, 3.4, 3.3, 3.5)
fit <- maxLikelihoodETAS(ts, ms, 3, maxTime = 2.5,
initval = c(0.6, 0.2, 0.4, 0.08, 1.5))
ll <- bayesianETAS:::ETASlikelihood(
ts, ms, 2.5, 3,
fit$params["mu"], fit$params["K"], fit$params["alpha"],
fit$params["c"], fit$params["p"],
c_lower = attr(fit, "c_lower")
)
expect_equal(as.numeric(fit$loglik), as.numeric(ll), tolerance = 1e-7)
})
test_that("c and p move in a small temporal MCMC run", {
ts <- c(0.1, 0.22, 0.35, 0.6, 0.95, 1.4, 2.1, 2.8)
ms <- c(3.0, 3.3, 3.1, 3.4, 3.2, 3.5, 3.1, 3.3)
set.seed(123)
samples <- estimateETAS(ts, ms, 3, maxTime = 3.5, sims = 20, burnin = 0,
initval = c(0.8, 0.2, 0.4, 0.08, 1.5),
c_lower = 0.005)
expect_gt(length(unique(round(samples$c, 10))), 1)
expect_gt(length(unique(round(samples$p, 10))), 1)
expect_true(all(is.finite(as.matrix(samples))))
expect_true(all(samples$c > 0.005))
expect_true(all(samples$p > 1))
})
test_that("synthetic temporal and spatio-temporal fits return finite legal parameters", {
ts <- c(0.1, 0.25, 0.5, 0.85, 1.3, 1.9, 2.7)
ms <- c(3.0, 3.2, 3.1, 3.4, 3.3, 3.5, 3.2)
xs <- c(0.0, 0.2, 0.35, 0.6, 0.8, 1.0, 1.3)
ys <- c(0.0, 0.1, 0.25, 0.35, 0.6, 0.7, 0.95)
tfit <- maxLikelihoodETAS(ts, ms, 3, maxTime = 3,
initval = c(0.8, 0.2, 0.4, 0.08, 1.5),
c_lower = 0.005)
expect_true(all(is.finite(tfit$params)))
expect_gte(tfit$params["mu"], 0)
expect_gte(tfit$params["K"], 0)
expect_gte(tfit$params["alpha"], 0)
expect_gt(tfit$params["c"], 0.005)
expect_gt(tfit$params["p"], 1)
sfit <- maxLikelihoodETAS(ts, ms, 3, maxTime = 3, xs = xs, ys = ys,
area = 2, c_lower = 0.005,
initval = c(0.8, 0.2, 0.4, 0.08, 1.5, 0.3, 0.3))
expect_true(all(is.finite(sfit$params)))
expect_gte(sfit$params["mu"], 0)
expect_gte(sfit$params["K"], 0)
expect_gte(sfit$params["alpha"], 0)
expect_gt(sfit$params["c"], 0.005)
expect_gt(sfit$params["p"], 1)
expect_gt(sfit$params["sigma2x"], 0)
expect_gt(sfit$params["sigma2y"], 0)
})
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.