spatstat (version 1.64-1)

eem: Exponential Energy Marks


Given a point process model fitted to a point pattern, compute the Stoyan-Grabarnik diagnostic ``exponential energy marks'' for the data points.


eem(fit, check=TRUE)



The fitted point process model. An object of class "ppm".


Logical value indicating whether to check the internal format of fit. If there is any possibility that this object has been restored from a dump file, or has otherwise lost track of the environment where it was originally computed, set check=TRUE.


A vector containing the values of the exponential energy mark for each point in the pattern.


Stoyan and Grabarnik (1991) proposed a diagnostic tool for point process models fitted to spatial point pattern data. Each point \(x_i\) of the data pattern \(X\) is given a `mark' or `weight' $$m_i = \frac 1 {\hat\lambda(x_i,X)}$$ where \(\hat\lambda(x_i,X)\) is the conditional intensity of the fitted model. If the fitted model is correct, then the sum of these marks for all points in a region \(B\) has expected value equal to the area of \(B\).

The argument fit must be a fitted point process model (object of class "ppm"). Such objects are produced by the maximum pseudolikelihood fitting algorithm ppm). This fitted model object contains complete information about the original data pattern and the model that was fitted to it.

The value returned by eem is the vector of weights \(m[i]\) associated with the points \(x[i]\) of the original data pattern. The original data pattern (in corresponding order) can be extracted from fit using data.ppm.

The function diagnose.ppm produces a set of sensible diagnostic plots based on these weights.


Stoyan, D. and Grabarnik, P. (1991) Second-order characteristics for stochastic structures connected with Gibbs point processes. Mathematische Nachrichten, 151:95--100.

See Also

diagnose.ppm, ppm.object, data.ppm, residuals.ppm, ppm


    fit <- ppm(cells, ~x, Strauss(r=0.15))
    ee <- eem(fit)
    sum(ee)/area(Window(cells)) # should be about 1 if model is correct
    Y <- setmarks(cells, ee)
    plot(Y, main="Cells data\n Exponential energy marks")
# }