spatstat (version 1.64-1)

MultiStraussHard: The Multitype/Hard Core Strauss Point Process Model


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


MultiStraussHard(iradii, hradii, types=NULL)



Matrix of interaction radii


Matrix of hard core radii


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


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


In order that ppm can fit the multitype/hard core Strauss model correctly to a point pattern X, this pattern must be marked, with markformat equal to vector and the mark vector marks(X) must be a factor. If the argument types is specified it is interpreted as a set of factor levels and this set must equal levels(marks(X)).

Changed Syntax

Before spatstat version 1.37-0, the syntax of this function was different: MultiStraussHard(types=NULL, iradii, hradii). The new code attempts to handle the old syntax as well.


This is a hybrid of the multitype Strauss process (see MultiStrauss) and the hard core process (case \(\gamma=0\) of the Strauss process). A pair of points of types \(i\) and \(j\) must not lie closer than \(h_{ij}\) units apart; if the pair lies more than \(h_{ij}\) and less than \(r_{ij}\) units apart, it contributes a factor \(\gamma_{ij}\) to the probability density.

The argument types need not be specified in normal use. It will be determined automatically from the point pattern data set to which the MultiStraussHard 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 matrices iradii and hradii.

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

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

See Also

ppm,, ppm.object, MultiStrauss, MultiHard, Strauss


   r <- matrix(3, nrow=2,ncol=2)
   h <- matrix(c(1,2,2,1), nrow=2,ncol=2)
   # prints a sensible description of itself
   r <- 0.04 * matrix(c(1,2,2,1), nrow=2,ncol=2)
   h <- 0.02 * matrix(c(1,NA,NA,1), nrow=2,ncol=2)
   X <- amacrine
# }
   fit <- ppm(X ~1, MultiStraussHard(r,h))
   # fit stationary multitype hardcore Strauss process to `amacrine'
# }