The Hierarchical Strauss Hard Core Point Process Model

Creates an instance of the hierarchical Strauss-hard core point process model which can then be fitted to point pattern data.

models, spatial
HierStraussHard(iradii, hradii=NULL, types=NULL, archy=NULL)

Matrix of interaction radii


Optional matrix of hard core distances


Optional; vector of all possible types (i.e. the possible levels of the marks variable in the data)


Optional: the hierarchical order. See Details.


This is a hierarchical point process model for a multitype point pattern (Hogmander and Sarkka, 1999; Grabarnik and Sarkka, 2009). It is appropriate for analysing multitype point pattern data in which the types are ordered so that the points of type \(j\) depend on the points of type \(1,2,\ldots,j-1\).

The hierarchical version of the (stationary) Strauss hard core process with \(m\) types, with interaction radii \(r_{ij}\), hard core distances \(h_{ij}\) and parameters \(\beta_j\) and \(\gamma_{ij}\) is a point process in which each point of type \(j\) contributes a factor \(\beta_j\) to the probability density of the point pattern, and a pair of points of types \(i\) and \(j\) closer than \(r_{ij}\) units apart contributes a factor \(\gamma_{ij}\) to the density provided \(i \le j\). If any pair of points of types \(i\) and \(j\) lies closer than \(h_{ij}\) units apart, the configuration of points is impossible (probability density zero).

The nonstationary hierarchical Strauss hard core process is similar except that the contribution of each individual point \(x_i\) is a function \(\beta(x_i)\) of location and type, rather than a constant beta.

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 hierarchical Strauss hard core process pairwise interaction is yielded by the function HierStraussHard(). See the examples below.

The argument types need not be specified in normal use. It will be determined automatically from the point pattern data set to which the HierStraussHard interaction is applied, when the user calls ppm. However, the user should be confident that the ordering of types in the dataset corresponds to the ordering of rows and columns in the matrix radii.

The argument archy can be used to specify a hierarchical ordering of the types. It can be either a vector of integers or a character vector matching the possible types. The default is the sequence \(1,2, \ldots, m\) meaning that type \(j\) depends on types \(1,2, \ldots, j-1\).

The matrices iradii and hradii must be square, with entries which are either positive numbers or zero or NA. A value of zero or NA indicates that no interaction term should be included for this combination of types.

Note that only the interaction radii and hard core distances are specified in HierStraussHard. The canonical parameters \(\log(\beta_j)\) and \(\log(\gamma_{ij})\) are estimated by ppm(), not fixed in HierStraussHard().


An object of class "interact" describing the interpoint interaction structure of the hierarchical Strauss-hard core process with interaction radii \(iradii[i,j]\) and hard core distances \(hradii[i,j]\).


Grabarnik, P. and Sarkka, A. (2009) Modelling the spatial structure of forest stands by multivariate point processes with hierarchical interactions. Ecological Modelling 220, 1232--1240.

Hogmander, H. and Sarkka, A. (1999) Multitype spatial point patterns with hierarchical interactions. Biometrics 55, 1051--1058.

See Also

MultiStraussHard for the corresponding symmetrical interaction.

HierHard, HierStrauss.

  • HierStraussHard
   r <- matrix(c(30, NA, 40, 30), nrow=2,ncol=2)
   h <- matrix(c(4, NA, 10, 15), 2, 2)
   HierStraussHard(r, h)
   # prints a sensible description of itself
   ppm(ants ~1, HierStraussHard(r, h))
   # fit the stationary hierarchical Strauss-hard core process to ants data
# }
Documentation reproduced from package spatstat, version 1.63-0, License: GPL (>= 2)

Community examples

Looks like there are no examples yet.