This session covers tools for investigating dependence between points.
The swedishpines
dataset was recorded in a study plot in a large
forest. We shall assume the pattern is stationary.
Calculate the estimate of the
-function using
Kest
.
Plot the estimate of against
Plot the estimate of against
(Hint: look at the
fmla
argument in plot.fv
).
Calculate and plot an estimate of the pair correlation function
using pcf
.
Draw tentative conclusions from these plots about interpoint interaction in the data.
The command rThomas
generates simulated realisations of the Thomas
model (‘modified Thomas cluster process’).
Read the help file.
Type plot(rThomas(10, 0.05, 8))
a few times, and interpret the
results.
Experiment with the arguments of rThomas
to obtain point patterns
that
Read the help file for kppm
.
Fit the Thomas model to the redwood
data by the method of minimum
contrast:
fit <- kppm(redwood ~ 1, clusters="Thomas")
fit
plot(fit)
Read off the parameters of the fitted model, and generate a
simulated realisation of the fitted model using rThomas
.
Type plot(simulate(fit))
to generate a simulated realisation of
the fitted model automatically.
Try the command
fit2 <- kppm(redwood ~ 1, clusters="Thomas", startpar=c(kappa=10, scale=0.1))
and briefly explore the fitting algorithm’s sensitivity to the
initial guesses at the parameter values kappa
and scale
.
Generate and plot several simulated realisations of the fitted model, to assess whether it is plausible.
Extract and plot the fitted pair correlation function by
pcffit <- pcfmodel(fit)
plot(pcffit, xlim = c(0, 0.3))
Type plot(envelope(fit, Lest, nsim=39))
to generate simulation
envelopes of the
function from this fitted model. Do they suggest the model is
plausible?
Fit a Matern cluster process to the redwood
data.
Use vcov
to estimate the covariance matrix of the parameter
estimates.
Compare with the covariance matrix obtained when fitting a homogeneous Poisson model.
In this question we fit a Strauss point process model to the
swedishpines
data.
We need a guess at the interaction distance . Compute and plot the -function of the dataset and choose the value which maximises the discrepancy .
Fit the stationary Strauss model with the chosen interaction distance using
ppm(swedishpines ~ 1, Strauss(R))
where R
is your chosen value.
Interpret the printout: how strong is the interaction?
Plot the fitted pairwise interaction function using
plot(fitin(fit))
.
In Question 5 we guesstimated the Strauss interaction distance parameter. Alternatively this parameter could be estimated by profile pseudolikelihood.
Look again at the plot of the
-function of
swedishpines
and determine a plausible range of possible values
for the interaction distance.
Generate a sequence of values equally spaced across this range, for example, if your range of plausible values was , then type
rvals <- seq(5, 12, by=0.5)
Construct a data frame, with one column named r
(matching the
argument name of Strauss
), containing these values. For example
D <- data.frame(r = rvals)
Execute
fitp <- profilepl(D, Strauss, swedishpines ~ 1)
to find the maximum profile pseudolikelihood fit.
Print and plot the object fitp
.
Compare the computed estimate of interaction distance with your guesstimate. Compare the corresponding estimates of the Strauss interaction parameter .
Extract the fitted Gibbs point process model from the object fitp
as
bestfit <- as.ppm(fitp)
Modify Question 5 by using the Huang-Ogata approximate maximum
likelihood algorithm (method="ho"
) instead of maximum pseudolikelihood
(the default, method="mpl"
).
Repeat Question 6 for the inhomogeneous Strauss process with
log-quadratic trend. The corresponding call to profilepl
is
fitp <- profilepl(D, Strauss, swedishpines ~ polynom(x,y,2))