spatstat.core (version 2.1-2)

MultiStrauss: The Multitype Strauss Point Process Model


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


MultiStrauss(radii, types=NULL)



Matrix of interaction 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 Strauss process with interaction radii \(radii[i,j]\).


In order that ppm can fit the multitype 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: MultiStrauss(types=NULL, radii). The new code attempts to handle the old syntax as well.


The (stationary) multitype Strauss process with \(m\) types, with interaction radii \(r_{ij}\) and parameters \(\beta_j\) and \(\gamma_{ij}\) is the pairwise interaction 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.

The nonstationary multitype Strauss 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 multitype Strauss process pairwise interaction is yielded by the function MultiStrauss(). 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 MultiStrauss 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 matrix radii 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 are specified in MultiStrauss. The canonical parameters \(\log(\beta_j)\) and \(\log(\gamma_{ij})\) are estimated by ppm(), not fixed in MultiStrauss().

See Also

ppm,, ppm.object, Strauss, MultiHard


   r <- matrix(c(1,2,2,1), nrow=2,ncol=2)
   # prints a sensible description of itself
   r <- 0.03 * matrix(c(1,2,2,1), nrow=2,ncol=2)
   X <- amacrine
# }
   ppm(X ~1, MultiStrauss(r))
   # fit the stationary multitype Strauss process to `amacrine'

   # ppm(X ~polynom(x,y,3), MultiStrauss(r, c("off","on")))
   # fit a nonstationary multitype Strauss process with log-cubic trend
# }