twinstim_intensity {surveillance} | R Documentation |
Plotting Intensities of Infection over Time or Space
Description
intensityplot
method to plot the evolution of the total infection
intensity, its epidemic proportion or its endemic proportion over time
or space (integrated over the other dimension) of fitted
twinstim
models (or simEpidataCS
).
The "simEpidataCS"
-method is just a wrapper around
intensityplot.twinstim
by making the "simEpidataCS"
object
"twinstim"
-compatible, i.e. enriching it by the
required model components and environment.
The intensity.twinstim
auxiliary function returns functions which
calculate the endemic or epidemic intensity at a specific time point or
location (integrated over the other dimension).
Usage
## S3 method for class 'twinstim'
intensityplot(x,
which = c("epidemic proportion", "endemic proportion", "total intensity"),
aggregate = c("time", "space"), types = 1:nrow(x$qmatrix),
tiles, tiles.idcol = NULL, plot = TRUE, add = FALSE,
tgrid = 101, rug.opts = list(),
sgrid = 128, polygons.args = list(), points.args = list(),
cex.fun = sqrt, ...)
## S3 method for class 'simEpidataCS'
intensityplot(x, ...)
intensity.twinstim(x,
aggregate = c("time", "space"), types = 1:nrow(x$qmatrix),
tiles, tiles.idcol = NULL)
Arguments
x |
an object of class |
which |
|
aggregate |
One of |
types |
event types to aggregate. By default, all types of events are aggregated, but one could also be interested in only one specific type or a subset of event types. |
tiles |
object of class |
tiles.idcol |
either a column index for |
plot |
logical indicating if a plot is desired, which defaults to |
add |
logical. If |
tgrid |
either a numeric vector of time points when to evaluate
|
rug.opts |
if a list, its elements are passed as arguments to the function
|
sgrid |
either an object of class |
polygons.args |
if a list, its elements are passed as arguments to
|
points.args |
if a list, its elements are passed as arguments to
|
cex.fun |
function which takes a vector of counts of events
at each unique location and returns a (vector of) |
... |
further arguments passed to |
Value
If plot = FALSE
or aggregate = "time"
,
a function is returned, which takes a vector of
time points (if aggregate = "time"
) or a matrix of coordinates
(if aggregate = "space"
), and returns which
on this grid.
intensity.twinstim
returns a list containing such functions for
the endemic and epidemic intensity (but these are not vectorized).
If plot = TRUE
and aggregate = "space"
, the
trellis.object
of the spatial plot is returned.
Author(s)
Sebastian Meyer
See Also
plot.twinstim
, which calls intensityplot.twinstim
.
Examples
data("imdepi", "imdepifit")
# for the intensityplot we need the model environment, which can be
# easily added by the intelligent update method (no need to refit the model)
imdepifit <- update(imdepifit, model=TRUE)
## path of the total intensity
opar <- par(mfrow=c(2,1))
intensityplot(imdepifit, which="total intensity",
aggregate="time", tgrid=500)
plot(imdepi, "time", breaks=100)
par(opar)
## time course of the epidemic proportion by event
intensityplot(imdepifit, which="epidemic proportion",
aggregate="time", tgrid=500, types=1)
intensityplot(imdepifit, which="epidemic proportion",
aggregate="time", tgrid=500, types=2, add=TRUE, col=2)
legend("topright", legend=levels(imdepi$events$type), lty=1, col=1:2,
title = "event type")
## endemic and total intensity in one plot
intensity_endprop <- intensityplot(imdepifit, which="endemic proportion",
aggregate="time", plot=FALSE)
intensity_total <- intensityplot(imdepifit, which="total intensity",
aggregate="time", tgrid=501, lwd=2)
curve(intensity_endprop(x) * intensity_total(x), add=TRUE, col=2, lwd=2, n=501)
text(2500, 0.36, labels="total", col=1, pos=2, font=2)
text(2500, 0.08, labels="endemic", col=2, pos=2, font=2)
## spatial shape of the intensity (aggregated over time)
## load borders of Germany's districts
load(system.file("shapes", "districtsD.RData", package="surveillance"))
# total intensity (using a rather sparse 'sgrid' for speed)
intensityplot(imdepifit, which="total intensity",
aggregate="space", tiles=districtsD, sgrid=500,
col.regions=rev(heat.colors(100)))
# epidemic proportion by type
maps_epiprop <- lapply(1:2, function (type) {
intensityplot(imdepifit, which="epidemic", aggregate="space",
types=type, tiles=districtsD, sgrid=1000,
main=rownames(imdepifit$qmatrix)[type],
scales=list(draw=FALSE), at=seq(0,1,by=0.1),
col.regions=rev(hcl.colors(10,"YlOrRd")),
colorkey=list(title=list("Epidemic proportion", cex=1)))
})
plot(maps_epiprop[[1]], split=c(1,1,2,1), more=TRUE)
plot(maps_epiprop[[2]], split=c(2,1,2,1))