tolerance  R Documentation 
Calculates a pvalue surface based on asymptotic theory or MonteCarlo (MC) permutations describing the extremity of risk given a fixed or adaptive kernelsmoothed densityratio, allowing the drawing of tolerance contours.
tolerance(
rs,
method = c("ASY", "MC"),
ref.density = NULL,
beta = 0.025,
ITER = 100,
parallelise = NULL,
verbose = TRUE,
...
)
rs 
An object of class 
method 
A character string specifying the method of calculation.

ref.density 
Required if 
beta 
A numeric value 
ITER 
Number of iterations for the MonteCarlo permutations. Ignored
if 
parallelise 
Numeric argument to invoke parallel processing, giving
the number of CPU cores to use when 
verbose 
Logical value indicating whether to print function progress during execution. 
... 
Additional arguments to be passed to 
This function implements developments in Hazelton and Davies (2009) (fixed) and Davies and Hazelton (2010) (adaptive) to compute pointwise pvalue surfaces based on asymptotic theory of kernelsmoothed relative risk surfaces. Alternatively, the user may elect to calculate the pvalue surfaces using MonteCarlo methods (see Kelsall and Diggle, 1995). Superimposition upon a plot of the risk surface contours of these pvalues at given significance levels (i.e. “tolerance contours”) can be an informative way of exploring the statistical significance of the extremity of risk across the defined study region.
Implementation of the MonteCarlo method simply involves random allocation of case/control marks and
reestimation of the risk surface ITER
times, against which the
original estimate is compared. While not dependent on asymptotic theory, it is
computationally expensive, and it has been suggested that it might have some
undesirable practical consequences in certain settings (Hazelton and Davies,
2009). When performing the MC simulations, the same global (and pilot, if
necessary) bandwidths and edgecorrection regimens are employed as were used
in the initial density estimates of the observed data. With regard to
arguments to be passed to internal calls of risk
, the user
should take care to use ...
to set the epsilon
value to match
that which was used in creation of the object passed to rs
(if this
was set to a nondefault value). Furthermore, if performing MC simulations
for the adaptive relative risk function, the function borrows the value of
the beta
argument to speed things up via partitioning, and the user
should additionally access ...
to set the same pilot.symmetry
value as was used for creation of the object passed to rs
, in the
same way as for any nondefault use of epsilon
. This will ensure the
simulations are all performed under the same conditions as were used to estimate the original risk
function.
A pixel im
age of the estimated
pvalue surface.
The returned pvalues are geared so that “smallness”
corresponds to statistical significance of elevated risk, that is, an
uppertailed test. The complement of the pvalues will yeild
significance of reduced risk; a lowertailed test. When using
tol.contour
, the user can control what type of contours to
display.
T. M. Davies
Davies, T.M. and Baddeley A. (2018), Fast computation of spatially adaptive kernel estimates, Statistics and Computing, 28(4), 937956.
Davies, T.M. and Hazelton, M.L. (2010), Adaptive kernel estimation of spatial relative risk, Statistics in Medicine, 29(23) 24232437.
Davies, T.M., Jones, K. and Hazelton, M.L. (2016), Symmetric adaptive smoothing regimens for estimation of the spatial relative risk function, Computational Statistics & Data Analysis, 101, 1228.
Hazelton, M.L. and Davies, T.M. (2009), Inference based on kernel estimates of the relative risk function in geographical epidemiology, Biometrical Journal, 51(1), 98109.
Kelsall, J.E. and Diggle, P.J. (1995), Kernel estimation of relative risk, Bernoulli, 1, 316.
data(pbc)
h0 < LSCV.risk(pbc,method="hazelton");h0
pbccas < split(pbc)[[1]]
pbccon < split(pbc)[[2]]
# ASY
riskfix < risk(pbc,h0=h0)
fixtol1 < tolerance(riskfix,ref.density=density(pbc,OS(pbc)))
riskada < risk(pbc,h0=h0,adapt=TRUE,hp=NS(pbc),pilot.symmetry="pooled",davies.baddeley=0.025)
adatol1 < tolerance(riskada)
oldpar < par(mfrow=c(1,2))
plot(riskfix)
tol.contour(fixtol1,levels=c(0.1,0.05,0.01),lty=3:1,add=TRUE)
plot(riskada)
tol.contour(adatol1,levels=c(0.1,0.05,0.01),lty=3:1,add=TRUE)
par(oldpar)
# MC
fixtol2 < tolerance(riskfix,method="MC",ITER=200)
adatol2 < tolerance(riskada,method="MC",ITER=200,parallelise=2) # ~90secs with parallelisation
oldpar < par(mfrow=c(1,2))
plot(riskfix)
tol.contour(fixtol2,levels=c(0.1,0.05,0.01),lty=3:1,add=TRUE)
plot(riskada)
tol.contour(adatol2,levels=c(0.1,0.05,0.01),lty=3:1,add=TRUE)
par(oldpar)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.