Fit Point Process Model to Several Point Patterns

Fits a Gibbs point process model to several point patterns simultaneously.

models, spatial
mppm(formula, data, interaction=Poisson(), ...,
        use.gam = FALSE)
A formula describing the systematic part of the model. Variables in the formula are names of columns in data.
A hyperframe (object of class "hyperframe", see hyperframe) containing the point pattern responses and the explanatory variables.
Interpoint interaction(s) appearing in the model. Either an object of class "interact" describing the point process interaction structure, or a hyperframe (with the same number of rows as data) whose entries are o
Arguments passed to ppm controlling the fitting procedure.
Optional. A formula (with no left hand side) describing the interaction to be applied to each case. Each variable name in the formula should either be the name of a column in the hyperframe interaction, or the name of a column
Logical flag indicating whether to fit the model using gam or glm.

This function fits a common point process model to a dataset containing several different point patterns. It extends the capabilities of the function ppm to deal with data such as

  • replicated observations of spatial point patterns
  • two groups of spatial point patterns
  • a designed experiment in which the response from each unit is a point pattern.
The syntax of this function is similar to that of standard Rmodel-fitting functions like lm and glm. The first argument formula is an Rformula describing the systematic part of the model. The second argument data contains the responses and the explanatory variables. Other arguments determine the stochastic structure of the model.

Schematically, the data are regarded as the results of a designed experiment involving $n$ experimental units. Each unit has a response, and optionally some explanatory variables (covariates) describing the experimental conditions for that unit. In this context, the response from each unit is a point pattern. The value of a particular covariate for each unit can be either a single value (numerical, logical or factor), or a spatial covariate. A spatial covariate is a quantity that depends on spatial location, for example, the soil acidity or altitude at each location. For the purposes of mppm, a spatial covariate must be stored as a pixel image (object of class "im") which gives the values of the covariate at a fine grid of locations.

The argument data is a hyperframe (a generalisation of a data frame, see hyperframe). This is like a data frame except that the entries can be objects of any class. The hyperframe has one row for each experimental unit, and one column for each variable (response or explanatory variable).

The formula should be an Rformula. The left hand side of formula determines the response variable. This should be a single name, which should correspond to a column in data.

The right hand side of formula determines the spatial trend of the model. It specifies the linear predictor, and effectively represents the logarithm of the spatial trend. Variables in the formula must be the names of columns of data, or one of the reserved names [object Object],[object Object],[object Object]

The column of responses in data must consist of point patterns (objects of class "ppp"). The individual point pattern responses can be defined in different spatial windows. If some of the point patterns are marked, then they must all be marked, and must have the same type of marks.

The scope of models that can be fitted to each pattern is the same as the scope of ppm, that is, Gibbs point processes with interaction terms that belong to a specified list, including for example the Poisson process, Strauss process, Geyer's saturation model, and piecewise constant pairwise interaction models. The stochastic part of the model is determined by the arguments interaction and (optionally) iformula.

  • In the simplest case,interactionis an object of class"interact", determining the interpoint interaction structure of the point process model, for all experimental units.
  • Alternatively,interactionmay be a hyperframe, whose entries are objects of class"interact". It should have the same number of rows asdata.
    • Ifinteractionconsists of only one column, then the entry in rowiis taken to be the interpoint interaction for theith experimental unit (corresponding to theith row ofdata).
    • Ifinteractionhas more than one column, then the argumentiformulais also required. Each row ofinteractiondetermines several interpoint interaction structures that might be applied to the corresponding row ofdata. The choice of interaction is determined byiformula; this should be anRformula, without a left hand side. For example ifinteractionhas two columns calledAandBtheniformula = ~Bindicates that the interpoint interactions are taken from the second column.
Variables in iformula typically refer to column names of interaction. They can also be names of columns in data, but only for columns of numeric, logical or factor values. For example iformula = ~B * group (where group is a column of data that contains a factor) causes the model with interpoint interaction B to be fitted with different interaction parameters for each level of group.


  • An object of class "mppm" representing the fitted model.

    There are methods for print, summary and coef for this class.


Baddeley, A. and Turner, R. Practical maximum pseudolikelihood for spatial point patterns. Australian and New Zealand Journal of Statistics 42 (2000) 283--322. Baddeley, A., Bischof, L., Sintorn, I.-M., Haggarty, S., Bell, M. and Turner, R. Analysis of a designed experiment where the response is a spatial point pattern. In preparation.

See Also

ppm, print.mppm, summary.mppm, coef.mppm,

  • mppm
# Waterstriders data
 H <- hyperframe(Y = waterstriders)
 mppm(Y ~ 1,  data=H)
 mppm(Y ~ 1,  data=H, Strauss(7))
 mppm(Y ~ id, data=H)
 mppm(Y ~ x,  data=H)

# Synthetic data from known model
n <- 10
H <- hyperframe(V=1:n,
                U=runif(n, min=-1, max=1),
                M=factor(letters[1 + (1:n) %% 3]))
H$Z <- setcov(square(1))
H$U <- with(H,, as.rectangle(Z)))
H$Y <- with(H, rpoispp(*Z)), win=as.rectangle(Z)))

fit <- mppm(Y ~Z + U + V, data=H)
Documentation reproduced from package spatstat, version 1.36-0, License: GPL (>= 2)

Community examples

Looks like there are no examples yet.