mppm(formula, data, interaction=Poisson(), ...,
            iformula=NULL,
        use.gam = FALSE)data."hyperframe",
    see hyperframe) containing the
    point pattern responses and the explanatory variables."interact"
    describing the point process interaction
    structure, or a hyperframe (with the same number of
    rows as data) whose entries are oppm controlling
    the fitting procedure.interaction, or the name of a column
   "mppm" representing the
  fitted model.  There are methods for
  print, summary and coef for this class.
ppm
  to deal with data such as
  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
  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 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.
  
interactionis 
    an object of class"interact",
    determining the interpoint interaction structure of the point
    process model, for all experimental units.interactionmay be a hyperframe,
    whose entries are objects of class"interact".
    It should have the same number of rows asdata.interactionconsists of only one column,
      then the entry in rowiis taken to be the
      interpoint interaction for theith experimental unit
      (corresponding to theith row ofdata).interactionhas 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.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.ppm,
  print.mppm,
  summary.mppm,
  coef.mppm,# Waterstriders data
 data(waterstriders)
 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.im(U, as.rectangle(Z)))
H$Y <- with(H, rpoispp(eval.im(exp(2+3*Z)), win=as.rectangle(Z)))
fit <- mppm(Y ~Z + U + V, data=H)Run the code above in your browser using DataLab