Plot the Spatial or Temporal Interaction Function of a twimstim
twinstim_iafplot.RdThe function plots the fitted temporal or (isotropic) spatial
interaction function of a twinstim object.
The implementation is illustrated in Meyer et al. (2017, Section 3),
see vignette("twinstim").
Usage
iafplot(object, which = c("siaf", "tiaf"), types = NULL,
scaled = c("intercept", "standardized", "no"), truncated = FALSE,
log = "", conf.type = if (length(pars) > 1) "MC" else "parbounds",
conf.level = 0.95, conf.B = 999, xgrid = 101,
col.estimate = rainbow(length(types)), col.conf = col.estimate,
alpha.B = 0.15, lwd = c(3,1), lty = c(1,2),
verticals = FALSE, do.points = FALSE,
add = FALSE, xlim = NULL, ylim = NULL, xlab = NULL, ylab = NULL,
legend = !add && (length(types) > 1), ...)Arguments
- object
object of class
"twinstim"containing the fitted model.- which
argument indicating which of the two interaction functions to plot. Possible values are
"siaf"(default) for the spatial interaction \(f(x)\) as a function of the distance \(x\), and"tiaf"for the temporal interaction function \(g(t)\).- types
integer vector indicating for which event
typesthe interaction function should be plotted in case of a marked"twinstim". The defaulttypes=NULLchecks if the interaction function is type-specific: if so,types=1:nrow(object$qmatrix)is used, otherwisetypes=1.- scaled
character string determining if/how the the interaction function should be scaled. Possible choices are:
- "intercept":
multiplication by the epidemic intercept.
- "standardized":
division by the value at 0 distance such that the function starts at 1.
- "no":
no scaling.
The first one is the default and required for the comparison of estimated interaction functions from different models. For backward compatibility,
scaledcan also be a boolean, whereTRUErefers to"intercept"scaling andFALSEto"no"scaling.- truncated
logical indicating if the plotted interaction function should take the maximum range of interaction (
eps.t/eps.s) into account, i.e., drop to zero at that point (if it is finite after all). If there is no common range of interaction, arugindicating the various ranges will be added to the plot iftruncated=TRUE. Iftruncatedis a scalar, this value is used as the pointepswhere the function drops to 0.- log
a character string passed to
plot.defaultindicating which axes should be logarithmic. Ifadd=TRUE,logis set according topar("xlog")andpar("ylog").- conf.type
type of confidence interval to produce.
Ifconf.type="MC"(or"bootstrap"),conf.Bparameter vectors are sampled from the asymptotic (multivariate) normal distribution of the ML estimate of the interaction function parameters; the interaction function is then evaluated on thexgrid(i.e. temporal or spatial distances from the host) for each parameter realization to obtain aconf.levelconfidence interval at each point of thexgrid(or to plot the interaction functions of all Monte-Carlo samples ifconf.level=NA). Note that the resulting plot is.Random.seed-dependent for the Monte-Carlo type of confidence interval.
Ifconf.type="parbounds", theconf.levelWald confidence intervals for the interaction function parameters are calculated and the interaction function is evaluated on thexgrid(distances from the host) for all combinations of the bounds of the parameters and the point-wise extremes of those functions are plotted. This type of confidence interval is only valid in case of a single parameter, i.e.scaled + nsiafpars == 1, but could also be used as a rough indication if the Monte-Carlo approach takes too long. A warning is thrown if the"parbounds"type is used for multiple parameters.
Ifconf.type="none"orNAorNULL, no confidence interval will be calculated.- conf.level
the confidence level required. For
conf.type = "MC"it may also be specified asNA, in which case allconf.Bsampled functions will be plotted with transparency value given byalpha.B.- conf.B
number of samples for the
"MC"(Monte Carlo) confidence interval.- xgrid
either a numeric vector of x-values (distances from the host) where to evaluate
which, or a scalar representing the desired number of evaluation points in the intervalc(0,xlim[2]).
If the interaction function is a step function (siaf.steportiaf.step),xgridis ignored and internally set toc(0, knots).- col.estimate
vector of colours to use for the function point estimates of the different
types.- col.conf
vector of colours to use for the confidence intervals of the different
types.- alpha.B
alpha transparency value (as relative opacity) used for the
conf.Bsampled interaction functions in caseconf.level = NA- lwd, lty
numeric vectors of length two specifying the line width and type of point estimates (first element) and confidence limits (second element), respectively.
- verticals,do.points
graphical settings for step function kernels. These can be logical (as in
plot.stepfun) or lists of graphical parameters.- add
add to an existing plot?
- xlim, ylim
vectors of length two containing the x- and y-axis limit of the plot. The default y-axis range (
ylim=NULL) is from 0 to the value of the (scaled) interaction function at \(x = 0\). The default x-axis (xlim=NULL) starts at 0, and the upper limit is determined as follows (in decreasing order of precedence):If
xgridis a vector of evaluation points,xlim[2]is set tomax(xgrid).eps.t/eps.sif it is unique and finite.If the interaction function is a step function with
maxRange<Inf, i.e. it drops to 0 atmaxRange,xlim[2]is set tomaxRange.Otherwise, it is set to the length of the observation period (
which="tiaf") or the diagonal length of the bounding box of the observation region (which="siaf"), respectively.
- xlab, ylab
labels for the axes with
NULLproviding sensible defaults.- legend
logical indicating if a legend for the
typesshould be added. It can also be a list of arguments passed tolegendto tweak the default settings.- ...
additional arguments passed to the default
plotmethod.
Value
A plot is created – see e.g. Figure 3(b) in Meyer et al. (2012).
The function invisibly returns a matrix of the plotted values of the
interaction function (evaluated on xgrid, by type). The first
column of the matrix contains the distance \(x\), and the remaining
length(types) columns contain the (scaled) function values for
each type.
The pointwise confidence intervals of the interaction functions are
returned in similar matrices as attributes: if
length(types)==1, there is a single attribute "CI",
whereas for multiple types, the attributes are named
paste0("CI.",typeNames) (where the typeNames are
retrieved from object$qmatrix).
References
Meyer, S., Elias, J. and Höhle, M. (2012): A space-time conditional intensity model for invasive meningococcal disease occurrence. Biometrics, 68, 607-616. doi:10.1111/j.1541-0420.2011.01684.x
Meyer, S., Held, L. and Höhle, M. (2017): Spatio-temporal analysis of epidemic phenomena using the R package surveillance. Journal of Statistical Software, 77 (11), 1-55. doi:10.18637/jss.v077.i11
See also
plot.twinstim, which calls this function.
Examples
data("imdepifit")
iafplot(imdepifit, "tiaf", scaled=FALSE) # tiaf.constant(), not very exciting
iafplot(imdepifit, "siaf", scaled=FALSE)
# scaled version uses a Monte-Carlo-CI
set.seed(1) # result depends on .Random.seed
iafplot(imdepifit, "siaf", scaled=TRUE, conf.type="MC", conf.B=199,
col.conf=gray(0.4), conf.level=NA) # show MC samples