Nothing
### Temporal interaction functions for twinstim()
test_that("Step kernel of a single type agrees with numerical approximations",
{
steptiaf <- tiaf.step(c(7,20), maxRange=25, nTypes=1)
logvals <- log(c(1.2,0.2))
##curve(steptiaf$g(x, logvals), 0, 30, n=301)
## check G
Gana <- steptiaf$G(0:30, logvals)
Gnum <- sapply(0:30, function (upper) {
integrate(steptiaf$g, 0, upper, logvals, rel.tol=1e-8)$value
})
expect_equal(Gana, Gnum, tolerance = 1e-8)
## check deriv
if (requireNamespace("maxLik", quietly = TRUE)) {
checkderiv <- maxLik::compareDerivatives(
f = function(pars, x) steptiaf$g(x, pars),
grad = function(pars, x) steptiaf$deriv(x, pars),
t0 = logvals, x = c(0.5,2,5,7,10,15,20,25,30),
print = FALSE)
expect_true(checkderiv$maxRelDiffGrad < 1e-8)
}
## check Deriv
for (paridx in seq_along(logvals))
expect_equal(
steptiaf$Deriv(0:30, logvals)[,paridx],
sapply(0:30, function (upper)
integrate(function(...) steptiaf$deriv(...)[,paridx],
0, upper, logvals, rel.tol=1e-6)$value),
tolerance = 1e-6,
label = paste0("steptiaf$Deriv()[,",paridx,"]"),
expected.label = "integrate() approximation"
)
})
test_that("Step kernel with maxRange>max(eps.t) is equivalent to maxRange=Inf",
{
data("imdepi", package="surveillance")
imdfit_steptiafInf <- twinstim(
endemic = ~offset(log(popdensity)) + I(start/365 - 3.5),
epidemic = ~1, siaf = siaf.constant(),
tiaf = tiaf.step(c(7,20), maxRange=Inf),
data = imdepi, optim.args = NULL, verbose = FALSE)
maxepst <- max(imdepi$events$eps.t)
imdfit_steptiaf30 <- update.default(
## update() might call an update.list-method registered by another
## package, e.g., gdata (2.18.0) implicitly loaded in other tests
imdfit_steptiafInf,
tiaf = tiaf.step(c(7,20), maxRange=maxepst+0.1))
coefs <- c(-20, -0.05, -15, -0.5, 0.2, -1)
expect_identical(imdfit_steptiafInf$ll(coefs),
imdfit_steptiaf30$ll(coefs))
expect_identical(imdfit_steptiafInf$sc(coefs),
imdfit_steptiaf30$sc(coefs))
})
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.