spatstat.core (version 2.1-2)

SatPiece: Piecewise Constant Saturated Pairwise Interaction Point Process Model


Creates an instance of a saturated pairwise interaction point process model with piecewise constant potential function. The model can then be fitted to point pattern data.


SatPiece(r, sat)



vector of jump points for the potential function


vector of saturation values, or a single saturation value


An object of class "interact" describing the interpoint interaction structure of a point process.


This is a generalisation of the Geyer saturation point process model, described in Geyer, to the case of multiple interaction distances. It can also be described as the saturated analogue of a pairwise interaction process with piecewise-constant pair potential, described in PairPiece.

The saturated point process with interaction radii \(r_1,\ldots,r_k\), saturation thresholds \(s_1,\ldots,s_k\), intensity parameter \(\beta\) and interaction parameters \(\gamma_1,\ldots,gamma_k\), is the point process in which each point \(x_i\) in the pattern \(X\) contributes a factor $$ \beta \gamma_1^{v_1(x_i, X)} \ldots gamma_k^{v_k(x_i,X)} $$ to the probability density of the point pattern, where $$ v_j(x_i, X) = \min( s_j, t_j(x_i,X) ) $$ where \(t_j(x_i, X)\) denotes the number of points in the pattern \(X\) which lie at a distance between \(r_{j-1}\) and \(r_j\) from the point \(x_i\). We take \(r_0 = 0\) so that \(t_1(x_i,X)\) is the number of points of \(X\) that lie within a distance \(r_1\) of the point \(x_i\).

SatPiece is used to fit this model to data. The function ppm(), which fits point process models to point pattern data, requires an argument of class "interact" describing the interpoint interaction structure of the model to be fitted. The appropriate description of the piecewise constant Saturated pairwise interaction is yielded by the function SatPiece(). See the examples below.

Simulation of this point process model is not yet implemented. This model is not locally stable (the conditional intensity is unbounded).

The argument r specifies the vector of interaction distances. The entries of r must be strictly increasing, positive numbers.

The argument sat specifies the vector of saturation parameters. It should be a vector of the same length as r, and its entries should be nonnegative numbers. Thus sat[1] corresponds to the distance range from 0 to r[1], and sat[2] to the distance range from r[1] to r[2], etc. Alternatively sat may be a single number, and this saturation value will be applied to every distance range.

Infinite values of the saturation parameters are also permitted; in this case \(v_j(x_i,X) = t_j(x_i,X)\) and there is effectively no `saturation' for the distance range in question. If all the saturation parameters are set to Inf then the model is effectively a pairwise interaction process, equivalent to PairPiece (however the interaction parameters \(\gamma\) obtained from SatPiece are the square roots of the parameters \(\gamma\) obtained from PairPiece).

If r is a single number, this model is virtually equivalent to the Geyer process, see Geyer.

See Also

ppm,, Geyer, PairPiece, BadGey.


   SatPiece(c(0.1,0.2), c(1,1))
   # prints a sensible description of itself
   SatPiece(c(0.1,0.2), 1)

   ppm(cells ~1, SatPiece(c(0.07, 0.1, 0.13), 2))
   # fit a stationary piecewise constant Saturated pairwise interaction process

   # ppm(cells ~polynom(x,y,3), SatPiece(c(0.07, 0.1, 0.13), 2))
   # nonstationary process with log-cubic polynomial trend
# }